Works with all AI agents

Connect your AI agent

Choose your AI agent and connect in seconds.

Add to Claude

Works on every Claude plan, including free. Full Claude guide

  1. 1

    Add to Claude

    One click from Claude’s connector directory.

  2. 2

    Sign up or sign in

    Takes seconds, then you’re sent straight back.

  3. 3

    Ask Claude

    “Plan and schedule my posts for next week.”

PostEverywhere Pagination Reference

How to paginate through PostEverywhere API results. Offset-based pagination with limit and offset parameters.

List endpoints return paginated results using offset-based pagination. You control the page size with limit and skip results with offset.

The limit and offset parameters

Parameter Type Default Description
limit integer 20 (50 on /v1/campaigns) Number of items to return. Minimum 1, maximum 100.
offset integer 0 Number of items to skip before returning results.

A paginated request, end to end

Fetch the second page of 10 posts:

curl "https://app.posteverywhere.ai/api/v1/posts?limit=10&offset=10" \
  -H "Authorization: Bearer pe_live_abc123..."

What a paginated response contains

Paginated endpoints include a pagination object alongside the results:

{
  "data": {
    "posts": [
      { "post_id": "9f3c4d12-...", "content": "..." },
      { "post_id": "a81e7b50-...", "content": "..." }
    ],
    "pagination": {
      "limit": 10,
      "offset": 10
    }
  },
  "error": null,
  "meta": {
    "request_id": "a1b2c3d4",
    "timestamp": "2026-03-01T12:00:00Z"
  }
}

The pagination object contains:

Field Type Description
limit integer The limit value used for this request.
offset integer The offset value used for this request.
total integer (Since 2026-06-11 on /v1/posts + /v1/campaigns) The total matching count: lets you know if there are more pages without fetching.
has_more boolean (Since 2026-06-11 on /v1/posts + /v1/campaigns) true if more pages exist beyond this one.

Looping through every page of results

The recommended pattern (using has_more):

import { PostEverywhere } from '@posteverywhere/sdk';

const client = new PostEverywhere({ apiKey: process.env.POSTEVERYWHERE_API_KEY });

async function fetchAllPosts() {
  const allPosts = [];
  const limit = 50;
  let offset = 0;

  while (true) {
    const { posts, pagination } = await client.posts.list({ limit, offset });
    allPosts.push(...posts);
    if (!pagination.has_more) break;
    offset += limit;
  }
  return allPosts;
}

The older pattern (fallback for endpoints that don't yet return has_more): keep iterating until the response returns fewer items than the requested limit:

import { PostEverywhere } from '@posteverywhere/sdk';

const client = new PostEverywhere({
  apiKey: process.env.POSTEVERYWHERE_API_KEY,
});

async function fetchAllPosts() {
  const allPosts = [];
  const limit = 50;
  let offset = 0;

  while (true) {
    const response = await client.posts.list({ limit, offset });
    const posts = response.posts; // the SDK unwraps the { data } envelope for you

    allPosts.push(...posts);

    // If fewer results than the limit, we've reached the last page
    if (posts.length < limit) {
      break;
    }

    offset += limit;
  }

  return allPosts;
}

Which endpoints support pagination

The following list endpoints support limit and offset parameters:

Related: invalid parameter errors · campaigns list pagination · aggregate counts without paging · your first API call