Home / Docs / Authentication

Authentication

How to authenticate with the Plushcap public API using API keys.

Authentication

The public API is read-only. Some discovery endpoints can be used anonymously, while data endpoints require either a logged-in browser session or a Plushcap API key.

Sending Your API Key

Send the key in the X-API-Key HTTP header:

X-API-Key: your-api-key-here

MCP clients can also use the API key as a bearer token when connecting to the Plushcap MCP server.

Read-Only Access

All public API endpoints allow only safe HTTP methods:

Method Supported
GET Yes
HEAD Yes
OPTIONS Yes

Write methods such as POST, PUT, PATCH, and DELETE are not supported by the public API.

Public Discovery Endpoints

These endpoints do not require an API key:

Endpoint Description
GET /api/v1/companies/ List companies
GET /api/v1/companies/<slug>/ Get company details
GET /api/v1/trends/topics/ List active trend topics

API Key Endpoints

All other public API endpoints require an API key or an authenticated browser session. Free accounts have a small per-endpoint hourly allowance. Paid plans have higher access according to account tier.

When a free-plan endpoint limit is reached, Plushcap returns 429 Too Many Requests with limit metadata:

{
  "detail": "Free plan limit reached for this endpoint. Upgrade to Accelerate for unlimited API and MCP access.",
  "code": "free_plan_endpoint_limit_reached",
  "limit": 2,
  "window": "hour",
  "endpoint": "blog-posts",
  "upgrade_url": "https://www.plushcap.com/manage"
}

Successful limited responses include:

X-RateLimit-Limit: 2
X-RateLimit-Remaining: 1
X-RateLimit-Reset: 1767229200

Authentication Context

GET /api/v1/auth/context/

Returns the current authenticated account context, including subscription tier and whether the request is using internal MCP access.

{
  "authenticated": true,
  "subscription": "accelerate",
  "subscription_status": "active",
  "tier": "accelerate",
  "tier_level": 2,
  "is_staff_access": false,
  "is_internal_access": false
}

Error Responses

Missing or invalid API key:

{"detail": "Authentication credentials were not provided."}

Status: 403 Forbidden

Unsupported write method:

{"detail": "Method 'POST' not allowed. This endpoint only supports read operations."}

Status: 403 Forbidden or 405 Method Not Allowed, depending on the endpoint.