Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/buckybuild-com:buckybuild-com-credentials-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Bucky Public Credentials API
version: 1.2.0
description: 'Public, developer-facing subset of the Bucky API. Curated via the default-deny allowlist in scripts/generate-openapi.ts (BUC-1216).
## Versioning and deprecation
Versions live in the URL path. Every public operation sits under an explicit
version prefix (`/api/v1`, `/api/marketplace/v2`); there is no unversioned
public surface, and no version is selected by header or query parameter.
Within a version we only make additive changes: new endpoints, new optional
request fields, and new response fields. Removing a field, narrowing a type,
tightening validation, or changing an error `code` requires a new version
prefix.
Retirement is signalled on the response, not only in release notes. A
deprecated operation returns `Deprecation` (RFC 9745) with the date the
deprecation took effect, and `Sunset` (RFC 8594) with the date it stops
answering. `Link: ; rel="deprecation"` points at the migration note.
Removal dates are operation-specific. Read the Sunset header and migration note.
`X-Bucky-API-Version` on every response reports the deployed API version.'
servers:
- url: https://buckybuild.com
description: Production
- url: http://localhost:3000
description: Local development
security:
- bearerAuth: []
tags:
- name: Credentials
description: Operations under `credentials`.
paths:
/api/v1/credentials/self:
get:
summary: Describe this credential and its billing effects
operationId: GetApiV1CredentialsSelf
tags:
- Credentials
description: Free, unmetered capability discovery. Returns the credential's scopes, each key-eligible route with whether the credential may call it, whether it is free or priced, and its rate limit, plus the site-check charge rules (what is charged, what is not, dedupe window, Idempotency-Key) and the spend bound. A key's own spend cap and this window's spend are reported when one is set; without one, the prepaid balance is the only bound. Requires a session, user JWT or any valid developer API key. Never returns owner identity or other keys.
security:
- apiKeyAuth: []
- bearerAuth: []
responses:
'200':
description: This credential's scopes, the routes it may call with their billing effect and rate limit, and the site-check charge rules. Free. Never includes owner identity.
headers:
RateLimit:
description: Current quota state as structured fields, e.g. `"public_read";r=29;t=54` — `r` is requests remaining, `t` is seconds until the window resets.
schema:
type: string
RateLimit-Policy:
description: The quota and window for this bucket, e.g. `"public_read";q=30;w=60` — `q` requests per `w` seconds.
schema:
type: string
RateLimit-Limit:
description: Requests permitted in the current window.
schema:
type: integer
RateLimit-Remaining:
description: Requests left in the current window.
schema:
type: integer
RateLimit-Reset:
description: Seconds until the window resets. Delta-seconds, not a timestamp.
schema:
type: integer
X-Bucky-API-Version:
description: Deployed build version; the URL fixes the contract major.
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/CredentialSelf'
'400':
description: Validation or client error.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
headers:
RateLimit:
description: Current quota state as structured fields, e.g. `"public_read";r=29;t=54` — `r` is requests remaining, `t` is seconds until the window resets.
schema:
type: string
RateLimit-Policy:
description: The quota and window for this bucket, e.g. `"public_read";q=30;w=60` — `q` requests per `w` seconds.
schema:
type: string
RateLimit-Limit:
description: Requests permitted in the current window.
schema:
type: integer
RateLimit-Remaining:
description: Requests left in the current window.
schema:
type: integer
RateLimit-Reset:
description: Seconds until the window resets. Delta-seconds, not a timestamp.
schema:
type: integer
X-Bucky-API-Version:
description: Deployed build version; the URL fixes the contract major.
schema:
type: string
'401':
description: Authentication required.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
headers:
RateLimit:
description: Current quota state as structured fields, e.g. `"public_read";r=29;t=54` — `r` is requests remaining, `t` is seconds until the window resets.
schema:
type: string
RateLimit-Policy:
description: The quota and window for this bucket, e.g. `"public_read";q=30;w=60` — `q` requests per `w` seconds.
schema:
type: string
RateLimit-Limit:
description: Requests permitted in the current window.
schema:
type: integer
RateLimit-Remaining:
description: Requests left in the current window.
schema:
type: integer
RateLimit-Reset:
description: Seconds until the window resets. Delta-seconds, not a timestamp.
schema:
type: integer
X-Bucky-API-Version:
description: Deployed build version; the URL fixes the contract major.
schema:
type: string
'403':
description: Insufficient permissions.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
headers:
RateLimit:
description: Current quota state as structured fields, e.g. `"public_read";r=29;t=54` — `r` is requests remaining, `t` is seconds until the window resets.
schema:
type: string
RateLimit-Policy:
description: The quota and window for this bucket, e.g. `"public_read";q=30;w=60` — `q` requests per `w` seconds.
schema:
type: string
RateLimit-Limit:
description: Requests permitted in the current window.
schema:
type: integer
RateLimit-Remaining:
description: Requests left in the current window.
schema:
type: integer
RateLimit-Reset:
description: Seconds until the window resets. Delta-seconds, not a timestamp.
schema:
type: integer
X-Bucky-API-Version:
description: Deployed build version; the URL fixes the contract major.
schema:
type: string
'404':
description: No such resource, or no such route under this version prefix.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
headers:
RateLimit:
description: Current quota state as structured fields, e.g. `"public_read";r=29;t=54` — `r` is requests remaining, `t` is seconds until the window resets.
schema:
type: string
RateLimit-Policy:
description: The quota and window for this bucket, e.g. `"public_read";q=30;w=60` — `q` requests per `w` seconds.
schema:
type: string
RateLimit-Limit:
description: Requests permitted in the current window.
schema:
type: integer
RateLimit-Remaining:
description: Requests left in the current window.
schema:
type: integer
RateLimit-Reset:
description: Seconds until the window resets. Delta-seconds, not a timestamp.
schema:
type: integer
X-Bucky-API-Version:
description: Deployed build version; the URL fixes the contract major.
schema:
type: string
'429':
description: 'Rate limit exceeded (`code: RATE_LIMIT_EXCEEDED`, `retryable: true`). Honour `Retry-After` (seconds). `details.retry_after_ms` is the retry delay in milliseconds; `details.bucket` identifies the bucket.'
headers:
RateLimit:
description: Current quota state as structured fields, e.g. `"public_read";r=29;t=54` — `r` is requests remaining, `t` is seconds until the window resets.
schema:
type: string
RateLimit-Policy:
description: The quota and window for this bucket, e.g. `"public_read";q=30;w=60` — `q` requests per `w` seconds.
schema:
type: string
RateLimit-Limit:
description: Requests permitted in the current window.
schema:
type: integer
RateLimit-Remaining:
description: Requests left in the current window.
schema:
type: integer
RateLimit-Reset:
description: Seconds until the window resets. Delta-seconds, not a timestamp.
schema:
type: integer
X-Bucky-API-Version:
description: Deployed build version; the URL fixes the contract major.
schema:
type: string
Retry-After:
description: Seconds to wait before retrying.
schema:
type: integer
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: Unexpected server error.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
headers:
RateLimit:
description: Current quota state as structured fields, e.g. `"public_read";r=29;t=54` — `r` is requests remaining, `t` is seconds until the window resets.
schema:
type: string
RateLimit-Policy:
description: The quota and window for this bucket, e.g. `"public_read";q=30;w=60` — `q` requests per `w` seconds.
schema:
type: string
RateLimit-Limit:
description: Requests permitted in the current window.
schema:
type: integer
RateLimit-Remaining:
description: Requests left in the current window.
schema:
type: integer
RateLimit-Reset:
description: Seconds until the window resets. Delta-seconds, not a timestamp.
schema:
type: integer
X-Bucky-API-Version:
description: Deployed build version; the URL fixes the contract major.
schema:
type: string
components:
schemas:
ErrorResponse:
type: object
title: ErrorResponse
required:
- error
- code
- category
- status
- retryable
- requestId
- supportId
properties:
error:
type: string
description: Human readable error message.
code:
type: string
description: Stable machine readable error code. Match on this, never on the message text.
examples:
- AUTH_REQUIRED
- INVALID_REQUEST
- NOT_FOUND
- RATE_LIMIT_EXCEEDED
- ANALYSIS_FAILED
- INTERNAL_ERROR
category:
type: string
description: Coarse class of failure, for routing and metrics.
enum:
- AUTHENTICATION
- AUTHORIZATION
- VALIDATION
- NOT_FOUND
- RATE_LIMIT
- CONFLICT
- NETWORK
- SERVER
- UNKNOWN
status:
type: integer
description: HTTP status, repeated in the body for transport-agnostic clients.
retryable:
type: boolean
description: Whether retrying the identical request can succeed. `false` means fix the request; do not back off and retry.
userMessageKey:
type: string
description: i18n key for a message safe to show an end user.
supportId:
type: string
description: Short reference to quote to support, e.g. `SUP-B1F8ACF9`.
requestId:
type: string
minLength: 1
description: Correlates this response with our server logs.
details:
description: Optional structured error details.
oneOf:
- type: string
- type: object
additionalProperties: true
- type: array
items: {}
- type: 'null'
CredentialSelf:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
credential:
type: object
properties:
kind:
type: string
enum:
- api_key
- session
keyId:
type:
- string
- 'null'
name:
type:
- string
- 'null'
keyPrefix:
type:
- string
- 'null'
environment:
type:
- string
- 'null'
scopes:
type: array
items:
type: string
expiresAt:
type:
- string
- 'null'
lastUsedAt:
type:
- string
- 'null'
required:
- kind
- keyId
- name
- keyPrefix
- environment
- scopes
- expiresAt
- lastUsedAt
additionalProperties: false
capabilities:
type: array
items:
type: object
properties:
method:
type: string
enum:
- GET
- POST
path:
type: string
scope:
type: string
allowed:
type: boolean
billing:
type: string
enum:
- free
- priced
rateLimit:
type: object
properties:
policy:
type: string
limit:
type: integer
minimum: -9007199254740991
maximum: 9007199254740991
windowSeconds:
type: number
required:
- policy
- limit
- windowSeconds
additionalProperties: false
required:
- method
- path
- scope
- allowed
- billing
- rateLimit
additionalProperties: false
unsupported:
type: object
properties:
reason:
type: string
alternative:
type: string
required:
- reason
- alternative
additionalProperties: false
billing:
type: object
properties:
currency:
type: string
const: USD
spendBound:
type: string
const: prepaid_balance
perKeySpendCap:
anyOf:
- type: object
properties:
capMicroUsd:
type: integer
minimum: -9007199254740991
maximum: 9007199254740991
period:
type: string
enum:
- day
- month
spentMicroUsd:
type: integer
minimum: -9007199254740991
maximum: 9007199254740991
resetsAt:
type: string
required:
- capMicroUsd
- period
- spentMicroUsd
- resetsAt
additionalProperties: false
- type: 'null'
siteCheck:
type: object
properties:
priceMicroUsd:
type: integer
minimum: -9007199254740991
maximum: 9007199254740991
charged:
type: string
notCharged:
type: array
items:
type: string
dedupeWindow:
type: string
idempotencyKeyHeader:
type: string
receipt:
type: string
required:
- priceMicroUsd
- charged
- notCharged
- dedupeWindow
- idempotencyKeyHeader
- receipt
additionalProperties: false
required:
- currency
- spendBound
- perKeySpendCap
- siteCheck
additionalProperties: false
required:
- credential
- capabilities
- unsupported
- billing
additionalProperties: false
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: 'Supabase-issued user JWT: a signed-in session, or one an agent with no browser gets from https://buckybuild.com/auth.md (exchange without `resource`).'
apiKeyAuth:
type: http
scheme: bearer
bearerFormat: API key
description: Developer API key (`bk_live_…` / `bk_test_…`) minted at `/settings/developer`. Scoped; ignored on any path that is not allowlisted. See https://buckybuild.com/auth.md.