Skip to main content
Use the Glean Feed REST API to build custom feedback workflows, automations, reports, and interfaces. This quickstart takes you from a workspace to one successful request that lists recent customer feedback.

Prerequisites

Before you make the request, confirm that you have:
  • An Owner or Admin role in the workspace, which is required to create an API key.
  • A key created under Settings → API Tokens with the feedback:read scope.
  • The production base URL: https://app.gleanfeed.com/api/v1.
API keys are server credentials. Do not put one in browser code, a mobile app, source control, or a screenshot.

List recent feedback

1

Copy your API key

Create the key in Settings → API Tokens, select feedback:read, and copy the value when it appears. Glean Feed shows the full key once.Save it in your current terminal session:
2

Send the request

Request the most recent feedback item:
The key determines which workspace the API reads. You do not pass a workspace ID or slug.
3

Check the response

A workspace with feedback returns a data array and pagination details:
A workspace with no requests returns "data": []. That is also a successful response.
You are connected when the request returns HTTP 200, a data array, and a pagination object. Any items in data come only from the workspace attached to your key.

How access is limited

Every credential is attached to one workspace and a set of scopes. This request needs feedback:read; a key without that scope receives 403 forbidden. A resource ID from another workspace returns 404, just like an ID that does not exist, so the API does not reveal data across workspaces. Grant only the scopes your integration needs. See Authentication for key storage, OAuth, rotation, and revocation, and Scopes for the complete catalog.

Continue building

https://mintcdn.com/gleanfeed/XujswKjVl9A7LyQN/icons/rocket.svg?fit=max&auto=format&n=XujswKjVl9A7LyQN&q=85&s=1dfbf3c65c490009d6014cfb2bd08963

Try more requests

Filter feedback, follow pagination, and create a request from your server.
https://mintcdn.com/gleanfeed/XujswKjVl9A7LyQN/icons/code.svg?fit=max&auto=format&n=XujswKjVl9A7LyQN&q=85&s=15116d3d5d15173f6794d19222b5cd17

Browse endpoints

Find supported feedback, roadmap, changelog, tag, and workspace operations.
https://mintcdn.com/gleanfeed/XujswKjVl9A7LyQN/icons/key.svg?fit=max&auto=format&n=XujswKjVl9A7LyQN&q=85&s=bef0e09f655d6e92652b5049ef64ab72

Choose scopes

Grant the least access required for each operation.
https://mintcdn.com/gleanfeed/XujswKjVl9A7LyQN/icons/link.svg?fit=max&auto=format&n=XujswKjVl9A7LyQN&q=85&s=75ae28db135b545c47854a349f085815

Connect over MCP

Give an AI assistant approved access to supported workspace operations.

Reference essentials

Base URL

All REST paths start with:

Versioning

The version is part of the path. The machine-readable OpenAPI 3.1 contract is available at https://app.gleanfeed.com/api/v1/openapi.json.

Response envelope

Successful requests return their result in data. List requests also return a pagination object. Create requests return the new resource in data and use HTTP 201.

Pagination

List endpoints accept limit (default 25, maximum 100) and an opaque cursor. When pagination.hasMore is true, send the previous response’s pagination.nextCursor as the next request’s cursor. Do not parse or modify the cursor.

Errors

Errors include an HTTP status and a stable error.code. Branch on the code rather than the human-readable message.

Limits

REST requests are limited to 120 requests per minute for each API key and 600 requests per minute across all keys in a workspace. The API returns 429 rate_limited with a Retry-After header when either limit is reached. Write request bodies are limited to 1 MB. Individual fields have narrower limits; for example, feedback titles allow 1–200 characters, descriptions allow up to 10,000 characters, source URLs allow up to 2,048 characters, and metadata allows up to 10 keys. The endpoint catalog and OpenAPI contract define the fields for each operation.

Idempotency

Create operations accept an Idempotency-Key header. Reusing the same key for the same operation returns the original result instead of creating a duplicate. If the original request is still running, the API returns 409 in_progress with a Retry-After header; retry the same key after that delay. See the server-side creation example.