REST API
Introduction

Introduction

The FeedHive Public API lets you work with FeedHive data programmatically using authenticated HTTPS requests.

Use an API key in the Authorization header for every authenticated request.

API endpoint

Public API requests are sent to:

https://api.feedhive.com

Bearer token

All authenticated public API routes require a valid bearer token in the Authorization request header. To create or copy an API key, follow the steps in Get started.

The examples below show the common authentication pattern used for public API requests.

curl --request GET \
  --url https://api.feedhive.com/posts \
  --header 'accept: application/json' \
  --header 'Authorization: Bearer [YOUR_API_KEY]'

If the token is missing or invalid, the request will not be authenticated.

Pagination

List endpoints use cursor-based pagination.

  • Use limit to control how many items are returned per request. The default is 20, and the maximum is 100.
  • Omit cursor on the first request.
  • If the response returns has_more: true, pass the returned next_cursor value as the cursor parameter on the next request.

Items are ordered by created_at descending and then by id descending, so you can keep requesting the next page until has_more becomes false. If you send an invalid cursor, the API returns 400 Bad Request.

The examples below show the first page of a paginated request.

curl --request GET \
  --url 'https://api.feedhive.com/posts?limit=2' \
  --header 'accept: application/json' \
  --header 'Authorization: Bearer [YOUR_API_KEY]'

Example response:

{
  "success": true,
  "data": {
    "items": [
      {
        "id": "57aa8c37-9a4b-4f5d-b6f1-8c4fe4d4af3f",
        "status": "draft",
        "text": "Launch checklist ready",
        "created_at": "2026-04-09T08:00:00.000Z"
      },
      {
        "id": "d3f9a2e1-6f7c-4a44-9d65-0f7a5d6e21b8",
        "status": "scheduled",
        "text": "Weekly recap",
        "created_at": "2026-04-08T14:30:00.000Z"
      }
    ],
    "total": 42,
    "has_more": true,
    "next_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyNi0w"
  }
}

To fetch the next page, send the same request again and pass the returned next_cursor value in the cursor query parameter.

Example request

curl --request GET \
  --url 'https://api.feedhive.com/posts?limit=2&cursor=eyJjcmVhdGVkX2F0IjoiMjAyNi0w' \
  --header 'accept: application/json' \
  --header 'Authorization: Bearer [YOUR_API_KEY]'

When there are no more results, the response returns has_more as false and next_cursor as null.

Response format

All responses are returned in JSON format.

Successful responses include a success field with the value true and a data field containing the response payload.

Example response:

{
  "success": true,
  "data": {
    "...": "..."
  }
}

If a request fails, the success field is false and the response includes a message field describing the error.

Example response:

{
  "success": false,
  "message": "Reason for failure"
}