DOCS
Developers

Build on PromptedBrand

Pull AI visibility, citations and opportunities into your own dashboards, BI tools and workflows. One REST API, JSON everywhere.

API referenceapi.promptedbrand.com/v1

Quickstart

From zero to your first visibility number in about five minutes.

  1. 1Create an API keyIn the app, open Settings › API keys and create a key (you need API access: admins have it, others get it from an admin in Settings › Team). Keys start with pb_live_. Agencies create keys in Agency settings; one key reads every client.Create API key
  2. 2Make your first requestSend the key as a Bearer token. Every response is JSON; lists are paginated with a cursor.
  3. 3Or try it without a keySigned in with API access? Every reference page has a Try it panel that runs real requests on your own data.
Request
curl https://api.promptedbrand.com/v1/brands \
  -H "Authorization: Bearer $PB_API_KEY"
Response · 200 OK
{
  "object": "list",
  "data": [
    {
      "id": "brd_8f2kq1d9a0e44b6c9a1f0e2d3c4b5a69",
      "object": "brand",
      "name": "Northwind",
      "domain": "northwind.com",
      "engines": [
        "chatgpt",
        "perplexity",
        "gemini"
      ],
      "markets": [
        "US"
      ],
      "created": "2026-09-19T16:52:37Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Explore the API

Base URL https://api.promptedbrand.com/v1. All endpoints return JSON, use ISO 8601 dates and are versioned by date. Ids are prefixed by type: brd_, prm_, ans_, scn_.

Authentication

Send your secret key in the Authorization header on every request. Keep it on your server. Keys are read-only and can be revoked in Settings › API keys at any time.

Header
Authorization: Bearer pb_live_••••••••••••3f9a

A workspace key reads that brand. An agency key reads every active client; pass brand_id to choose one (list them with GET /v1/brands).

Errors

Errors use standard HTTP codes and a JSON body with a machine-readable code, a message and a request_id to quote if you contact us.

StatusCodeMeaning
400invalid_requestA parameter is missing or malformed.
401unauthorizedThe API key is missing, revoked or wrong.
403forbiddenYour role or the key doesn’t include this.
404not_foundThe resource doesn’t exist, or the key can’t see it.
429rate_limitedToo many requests. Retry after the seconds in Retry-After.
Example
{
  "error": {
    "type": "authentication_error",
    "code": "unauthorized",
    "message": "No valid API key provided.",
    "request_id": "req_9Qm2xA1b"
  }
}

Rate limits

60 requests a minute per key (and per person trying the API signed in), on every plan for now. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset (seconds). A 429 includes Retry-After.

Pagination

Lists return { object: "list", data, has_more, next_cursor }. Pass limit (1 to 100) and, for the next page, cursor=next_cursor. Prompts, answers and scans use cursors; shorter lists come in one page.

Versioning

The API is v1, dated 2026-10-01 (sent back in the PromptedBrand-Version header). We only add fields and endpoints within a version; anything that would break your code gets a new version and notice in the changelog. The full spec is at /v1/openapi.json (OpenAPI 3.1).

Coming soon

  • Create and update prompts
  • Run scans
  • Webhooks
  • Content briefs
  • Reports
  • Official Node.js and Python SDKs

Webhooks will be signed with an HMAC SHA-256 PB-Signature header, for events like a finished scan, a competitor overtaking you and a new opportunity.

Changelog

v1 · 2026-10-01First public version: brands, visibility, prompts, answers, citations, competitors, opportunities and scans (read-only).