Skip to content
Dashboard
Developers

Brainpercent API

Programmatically generate articles, social media content, and manage your SEO projects.

Use it from Claude Code (MCP)

Brainpercent hosts an MCP server at https://www.brainpercent.app/api/mcp (Streamable HTTP, JSON-RPC 2.0). Add it to Claude Code with one command and skip writing HTTP calls entirely:

claude mcp add --transport http brainpercent https://www.brainpercent.app/api/mcp --header "Authorization: Bearer bp_your_key"

Full setup, tool list, and troubleshooting live in the Claude / MCP guide.

Base URL

https://www.brainpercent.app/api/v1

Always use the www host. The apex domain https://brainpercent.app answers with a 307 redirect, and most HTTP clients drop the POST body when they follow it, so your request arrives empty.

Authentication

Every request carries a bearer token. Keys are prefixed bp_ followed by 64 hex characters.

curl https://www.brainpercent.app/api/v1/projects \
  -H "Authorization: Bearer bp_your_key"

Create and revoke keys in the dashboard at brainpercent.app/chat/developers. Key management is a browser-session surface, so keys cannot be created programmatically with another key.

Endpoints

This is the complete v1 surface. Everything is read or generate: there are no PUT, PATCH, or DELETE routes, and projects are created in the app rather than over the API.

MethodPathWhat it does
GET/articlesList articles (paginated, filterable)
GET/articles/{id}Fetch one article with its body
POST/articles/generateStart an article job (async, returns 202)
GET/articles/{id}/statusPoll job progress and completion
GET/social/contentList social posts (paginated, filterable)
GET/social/content/{id}Fetch one post with all platform variants
POST/social/generateTurn a URL into posts (async, returns 202)
POST/social/publishPublish now or schedule to connected accounts
GET/projectsList projects and their business context
GET/projects/{id}Fetch one project
GET/user/creditsCurrent credit balance and plan
GET/user/usageUsage history
GET/api/v1/openapi.jsonMachine-readable spec (no auth required)

Both generate endpoints are asynchronous: they return 202 with a poll_url. There is no webhook callback yet. See Async Jobs and Polling.

Features

  • Article generation. Long-form SEO articles written from a topic plus your project's business context. 1.5 credits each.
  • Social content. One request turns a URL into tailored captions for up to 10 platforms. 0.6 credits per platform.
  • Publishing. Push finished posts to your connected accounts immediately or on a schedule.
  • Projects and credits. Read your projects, business context, balance, and usage history. One balance covers every content type.

Response Format

All responses follow a consistent JSON structure:

200Success response
{
  "success": true,
  "data": {
    "id": "uuid",
    "title": "Example Article",
    "status": "cms"
  },
  "meta": {
    "request_id": "req_abc123",
    "timestamp": "2026-02-01T00:00:00Z"
  }
}

List endpoints add a pagination object next to the data array. See Pagination.

401Error response
{
  "success": false,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Missing or invalid Authorization header"
  },
  "meta": {
    "request_id": "req_abc123",
    "timestamp": "2026-02-01T00:00:00Z"
  }
}

Rate Limits

PlanRequests/MinRequests/Day
Free1005,000
Paid (Starter, Plus, Pro, Business)1,00050,000
Enterprise10,000Unlimited (reported as -1)

Rate limits are enforced per API key. When you exceed the limit, requests return HTTP 429 with a Retry-After header indicating how many seconds to wait.

Every authenticated response carries X-Request-Id, X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset, plus X-RateLimit-Daily-Limit and X-RateLimit-Daily-Remaining when the daily limit is finite.