Overview

Programmatic access to the Sellm GEO platform. Manage prompts, configure analysis, trigger runs, and retrieve structured results.

The Sellm API gives you full programmatic control over your Generative Engine Optimization workflow. Everything you can do in the dashboard is available through the API, making it straightforward to build integrations, automate reporting, or embed Sellm data into your own tools.

What you can do

How these docs are organized

The documentation is split into two sections:

Core concepts

Before diving into the endpoints, it helps to understand a few terms that appear throughout the API.

Projects — A project represents a brand or product you want to monitor across AI search engines. Each API key is scoped to exactly one project.

Prompts — The search queries your project tracks (for example, "best CRM for startups"). Each prompt is analyzed across one or more providers on a recurring schedule.

Providers — The AI surfaces Sellm queries on your behalf. Supported provider IDs are chatgpt, perplexity, gemini, grok, and google_aio.

Analysis Runs — A run is a single execution of all active prompts across their configured providers. Runs can be triggered manually via the API or automatically on a weekly schedule.

Analysis Results — Each result captures the structured output for one prompt/provider pair within a run, including brand mention status, sentiment breakdown, competitor mentions, citations, and recommendation data.

Pagination

The API uses two pagination strategies:

Cursor-based — Used by the prompt list endpoint. Responses include a nextCursor field. Pass it as the cursor query parameter to fetch the next page. When nextCursor is null, you have reached the end.

Offset-based — Used by run and result list endpoints. Responses accept limit and offset query parameters. Use offset to skip previously fetched records.

Rate limiting

All authenticated endpoints are rate-limited to 60 requests per minute per API key. Every response includes rate limit headers:

HeaderDescription
X-RateLimit-LimitMaximum requests allowed per window (60)
X-RateLimit-RemainingRequests remaining in the current window
X-RateLimit-ResetUnix timestamp (seconds) when the window resets

When the limit is exceeded, the API returns a 429 status with the error code RATE_LIMITED and a Retry-After header indicating how many seconds to wait.

Manual analysis runs have an additional limit of 1 run per 7-day window per project. The POST /analysis/trigger endpoint returns its own rate limit headers specific to that constraint.

Error handling

All error responses follow a consistent envelope:

{
  "error": {
    "code": "BAD_REQUEST",
    "message": "Human-readable description of the problem."
  },
  "details": {
    "fieldErrors": {
      "name": "String must contain at least 1 character"
    }
  }
}

The details field is only present for validation errors.

Common error codes:

Next steps

1. Quickstart — Make your first API call.

2. Authentication — Understand how keys work and how to handle them securely.

3. API Reference — Explore every endpoint in detail.

CodeStatusMeaning
BAD_REQUEST400Request body or query parameters failed validation
NOT_FOUND404The requested resource does not exist or is not accessible
INVALID_PROVIDER400An unrecognized provider ID was supplied
PROMPT_LIMIT_EXCEEDED403The project has reached its prompt limit for the current plan
CONFLICT409A resource with the same unique constraint already exists
RATE_LIMITED429Rate limit exceeded (per-minute or manual run)
INTERNAL_ERROR500An unexpected server error occurred