BopbeeHelp Center

API overview

Authenticate REST requests with team API keys and manage upload projects programmatically.

The Bopbee public API lets you manage upload projects (static sites and viewer galleries) from scripts, CI, or AI assistants. GitHub-connected projects stay in the web app.

Base URL:

https://api.bopbee.com/v1

Browse the interactive API reference by resource:

The machine-readable OpenAPI contract is also available at https://api.bopbee.com/v1/openapi.json (auth required).

Fetch the raw OpenAPI JSON with the same Bearer key you use for other endpoints. Paths in the spec are prefixed with /v1/ while the server URL is https://api.bopbee.com: combine them correctly or use the base URL above with paths like /me and /projects.

Scope

  • Included: upload projects: create, update, upload files, deploy, custom domains
  • Excluded: GitHub repos, env vars, build settings, webhooks

Response field scope on GET /me is always upload_projects.

Create an API key

Open your team Settings → API (Pro or Studio plan).

Click New key and name it (for example Production CI).

Copy the key immediately. Only the prefix is stored server-side.

A key acts on one team. Keep it on your server: never in a browser or public repo. Revoke leaked keys from Settings → API.

Up to 10 active keys per team. Rename or revoke anytime. After a plan downgrade, existing keys can still be revoked but not created or renamed until you upgrade again.

Authenticate

curl https://api.bopbee.com/v1/me \
  -H "Authorization: Bearer bb_live_your_key"

GET /me returns team slug, plan, quotas, API key metadata, and request_id.

Pass an optional correlation id:

curl https://api.bopbee.com/v1/me \
  -H "Authorization: Bearer bb_live_your_key" \
  -H "X-Request-ID: my-trace-42"

The same value is echoed in the JSON body and X-Request-ID response header.

Endpoint guides

Errors

Failed requests return JSON:

{
  "error": {
    "code": "not_found",
    "message": "Project not found."
  },
  "request_id": "550e8400-e29b-41d4-a716-446655440000"
}

Common codes:

CodeHTTPMeaning
unauthorized401Missing or invalid API key
forbidden403Plan gate, paused project, quota reached
not_found404Unknown project, deployment, or domain
validation_error422Invalid JSON or query parameters
rate_limited429Too many requests: see Retry-After header
domain_exists409Hostname already in use

Quote request_id when contacting support.

Rate limits

Default limits (per rolling minute):

  • 100 requests per API key
  • 200 requests per client IP (before authentication)
  • Upload endpoints have additional per-key and per-IP limits

When limited, the API returns 429 with Retry-After (seconds).

MCP server

See MCP server to expose the same API as tools in Cursor or Claude Desktop.

On this page