Skip to content
bucker

API reference

meta

Liveness, readiness, metrics and edition metadata. 3 operations. Shapes are sketches of the declared schemas, bounded in depth — the authoritative document is linked from the index.

GET/edition

Edition, cloud-only features, and withheld capabilities

No declared credential scheme

Reachable without a Bucker session token. Which edition this deployment is, and which cloud-only features are off. A client must know before it can render anything.

Response 200

{
  edition: "ce" | "cloud"
  features: {
    id: string
    name: string
    enabled: boolean
    reason: string | null
    docs: string
  }[]
  withheld: {
    id: string
    name: string
    enabled: boolean
    reason: string | null
    enableWith: string
  }[]
}

Response 429 · `rate_limited` or `quota_exceeded` — over a ceiling. `Retry-After` says when to come back, and `x-ratelimit-limit` / `-remaining` / `-reset` describe the bucket.

{
  error: {
    code: "bad_request" | "conflict" | "forbidden" | "internal_error" | "mfa_required" | "not_found" | "payload_too_large" | "quota_exceeded" | … 6 more
    message: string
    details?: unknown
    requestId?: string
  }
}

Response 500 · `internal_error` — an unhandled failure on this side. The message is always generic; `requestId` is the part worth quoting.

{
  error: {
    code: "bad_request" | "conflict" | "forbidden" | "internal_error" | "mfa_required" | "not_found" | "payload_too_large" | "quota_exceeded" | … 6 more
    message: string
    details?: unknown
    requestId?: string
  }
}

Request

curl https://api.bucker.io/edition

GET/health

Liveness probe

No declared credential scheme

Reachable without a Bucker session token. Liveness. Answers without touching anything, by design.

Response 200

{
  status: "ok"
  service: "bucker-api"
}

Response 429 · `rate_limited` or `quota_exceeded` — over a ceiling. `Retry-After` says when to come back, and `x-ratelimit-limit` / `-remaining` / `-reset` describe the bucket.

{
  error: {
    code: "bad_request" | "conflict" | "forbidden" | "internal_error" | "mfa_required" | "not_found" | "payload_too_large" | "quota_exceeded" | … 6 more
    message: string
    details?: unknown
    requestId?: string
  }
}

Response 500 · `internal_error` — an unhandled failure on this side. The message is always generic; `requestId` is the part worth quoting.

{
  error: {
    code: "bad_request" | "conflict" | "forbidden" | "internal_error" | "mfa_required" | "not_found" | "payload_too_large" | "quota_exceeded" | … 6 more
    message: string
    details?: unknown
    requestId?: string
  }
}

Request

curl https://api.bucker.io/health

GET/ready

Readiness probe

No declared credential scheme

Reachable without a Bucker session token. Readiness, and the Fly http check target. A probe that needed a credential could not be a probe.

Response 200

{
  status: "ready"
  service: "bucker-api"
  database: "ok"
  latencyMs: integer
}

Response 429 · `rate_limited` or `quota_exceeded` — over a ceiling. `Retry-After` says when to come back, and `x-ratelimit-limit` / `-remaining` / `-reset` describe the bucket.

{
  error: {
    code: "bad_request" | "conflict" | "forbidden" | "internal_error" | "mfa_required" | "not_found" | "payload_too_large" | "quota_exceeded" | … 6 more
    message: string
    details?: unknown
    requestId?: string
  }
}

Response 500 · `internal_error` — an unhandled failure on this side. The message is always generic; `requestId` is the part worth quoting.

{
  error: {
    code: "bad_request" | "conflict" | "forbidden" | "internal_error" | "mfa_required" | "not_found" | "payload_too_large" | "quota_exceeded" | … 6 more
    message: string
    details?: unknown
    requestId?: string
  }
}

Response 503

{
  error: {
    code: string
    message: string
    requestId: string
  }
}

Request

curl https://api.bucker.io/ready