---
updatedAt: 2026-08-25T15:12:32.000Z
agentTools:
  projectIndex: https://docs.greynoise.io/llms.txt
---

# Reset a feed-event consumer

Return an existing consumer checkpoint to the beginning of currently
retained feed history. The next fetch can redeliver retained events that
the consumer processed previously.


# OpenAPI definition

```json
{
  "openapi": "3.0.0",
  "info": {
    "description": "GreyNoise is a cybersecurity company that collects and analyzes Internet-wide scan and attack traffic. Use GreyNoise to contextualize existing alerts, filter false-positives, identify compromised devices, and track emerging threats.",
    "version": "3.0.0",
    "title": "GreyNoise API",
    "contact": {
      "email": "hello@greynoise.io"
    },
    "license": {
      "name": "Proprietary",
      "url": "https://www.greynoise.io/terms"
    }
  },
  "tags": [
    {
      "name": "Event Feeds",
      "description": "Consume and search workspace-scoped feed events retained for approximately\n90 days.\n\nPull consumers keep their checkpoints on the server. Fetching is read-only;\nacknowledge the returned signed cursor only after processing the complete\nbatch. Event search uses a separate stateless pagination cursor and never\nchanges a pull consumer's checkpoint.\n\nSession events are webhook-only and are not retained, searchable, or\navailable through the pull API. Access depends on the workspace's Feeds and\nEvent Feed API entitlements.\n\nFor an end-to-end integration workflow, see\n[Using the Feeds API to Retrieve Events](https://docs.greynoise.io/docs/using-the-feeds-api-to-retrieve-events).\n"
    }
  ],
  "security": [
    {
      "APIKeyHeaderAuth": []
    }
  ],
  "paths": {
    "/v3/feeds/{feed_id}/consumers/{consumer}/reset": {
      "post": {
        "tags": [
          "Event Feeds"
        ],
        "operationId": "ResetEventFeedConsumer",
        "summary": "Reset a feed-event consumer",
        "description": "Return an existing consumer checkpoint to the beginning of currently\nretained feed history. The next fetch can redeliver retained events that\nthe consumer processed previously.\n",
        "parameters": [
          {
            "$ref": "#/components/parameters/eventFeedId"
          },
          {
            "$ref": "#/components/parameters/eventFeedConsumer"
          }
        ],
        "responses": {
          "200": {
            "description": "Consumer reset.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventFeedConsumer"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/EventFeedBadRequest"
          },
          "401": {
            "$ref": "#/components/responses/EventFeedUnauthorized"
          },
          "403": {
            "$ref": "#/components/responses/EventFeedForbidden"
          },
          "404": {
            "$ref": "#/components/responses/EventFeedNotFound"
          },
          "408": {
            "$ref": "#/components/responses/EventFeedRequestTimeout"
          },
          "500": {
            "$ref": "#/components/responses/EventFeedUnexpectedError"
          },
          "502": {
            "$ref": "#/components/responses/EventFeedBadGateway"
          },
          "504": {
            "$ref": "#/components/responses/EventFeedGatewayTimeout"
          }
        }
      }
    }
  },
  "servers": [
    {
      "url": "https://api.greynoise.io"
    },
    {
      "url": "http://api.greynoise.io"
    }
  ],
  "components": {
    "securitySchemes": {
      "APIKeyHeaderAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "key"
      }
    },
    "responses": {
      "EventFeedBadRequest": {
        "description": "A path parameter, query parameter, request body, filter, or cursor is invalid.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/EventFeedError"
            },
            "example": {
              "error": "bad request",
              "code": 400
            }
          }
        }
      },
      "EventFeedUnauthorized": {
        "description": "The API key or authenticated user is missing or invalid.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/EventFeedError"
            },
            "example": {
              "error": "unauthorized",
              "code": 401
            }
          }
        }
      },
      "EventFeedForbidden": {
        "description": "The caller cannot access the workspace or the required entitlement is not enabled.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/EventFeedError"
            },
            "example": {
              "error": "event feed API entitlement required",
              "code": 403
            }
          }
        }
      },
      "EventFeedNotFound": {
        "description": "The workspace-scoped feed or consumer was not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/EventFeedError"
            },
            "example": {
              "error": "not found",
              "code": 404
            }
          }
        }
      },
      "EventFeedRequestTimeout": {
        "description": "The request was canceled before it completed.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/EventFeedError"
            },
            "example": {
              "error": "request timeout",
              "code": 408
            }
          }
        }
      },
      "EventFeedUnexpectedError": {
        "description": "An unexpected error occurred while processing the request.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/EventFeedError"
            },
            "example": {
              "error": "internal server error",
              "code": 500
            }
          }
        }
      },
      "EventFeedBadGateway": {
        "description": "The Event Feed service was unavailable or returned an invalid response.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/EventFeedError"
            },
            "example": {
              "error": "bad gateway",
              "code": 502
            }
          }
        }
      },
      "EventFeedGatewayTimeout": {
        "description": "The Event Feed service did not complete the request before its deadline.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/EventFeedError"
            },
            "example": {
              "error": "gateway timeout",
              "code": 504
            }
          }
        }
      }
    },
    "parameters": {
      "eventFeedId": {
        "name": "feed_id",
        "in": "path",
        "description": "Feed UUID. The feed must belong to the authenticated workspace.",
        "required": true,
        "schema": {
          "type": "string",
          "format": "uuid"
        }
      },
      "eventFeedConsumer": {
        "name": "consumer",
        "in": "path",
        "description": "Name of the feed's independent server-held checkpoint.",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/EventFeedConsumerName"
        }
      }
    },
    "schemas": {
      "EventFeedError": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "error",
          "code"
        ],
        "properties": {
          "error": {
            "type": "string",
            "description": "Safe, human-readable error message."
          },
          "code": {
            "type": "integer",
            "description": "HTTP status code."
          },
          "recovery": {
            "$ref": "#/components/schemas/EventFeedRecovery"
          }
        }
      },
      "EventFeedRecovery": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "action"
        ],
        "properties": {
          "action": {
            "type": "string",
            "description": "Recovery action for a cursor that has fallen outside retention.",
            "enum": [
              "fetch_without_cursor",
              "restart_search"
            ]
          }
        }
      },
      "EventFeedConsumerName": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128,
        "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]*$",
        "description": "Stable consumer name beginning with an alphanumeric character and\ncontaining only alphanumerics, period, underscore, or hyphen.\n",
        "example": "scheduled-lambda"
      },
      "EventFeedConsumer": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "name",
          "has_acknowledged",
          "acknowledged_sequence",
          "acknowledged_at",
          "updated_at",
          "status",
          "approximate_lag"
        ],
        "properties": {
          "name": {
            "$ref": "#/components/schemas/EventFeedConsumerName"
          },
          "has_acknowledged": {
            "type": "boolean",
            "description": "Whether this consumer has acknowledged an event."
          },
          "acknowledged_sequence": {
            "type": "integer",
            "format": "int64",
            "minimum": 0,
            "description": "Internal monotonic sequence at the current checkpoint."
          },
          "acknowledged_at": {
            "type": "string",
            "format": "date-time",
            "description": "Creation time of the event at the current checkpoint."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "Time the checkpoint was created or last advanced."
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "idle",
              "expired"
            ]
          },
          "approximate_lag": {
            "type": "integer",
            "format": "int64",
            "minimum": 0,
            "description": "Upper-bound sequence distance from current ingestion. Interleaved\nevents for other feeds can contribute to this value.\n"
          }
        }
      }
    }
  }
}
```