GET /compat/firecrawl/v1/team/credit-usage
B3OS counts one Firecrawl credit per `vision.page`. `plan_credits` is your organization's monthly page allowance (`GET /v1/limits` lists it as `vision.pages.monthly`) and `remaining_credits` the allowance minus the pages billed this period; the period is the billing period of `GET /v1/limits` (the UTC calendar month). Both are `null` when the organization has no page allowance. The free beta reports the allowance but does not stop scraping when it reaches 0. Field names are snake_case, as in Firecrawl v1.

Authentication

Bearer Token (b3os_sk_ API key or b3os_pat_ token)

Responses

200 The credit usage.
application/json
success boolean REQUIRED
Enum: true
data object REQUIRED
remaining_credits number | null REQUIRED
plan_credits number | null REQUIRED
billing_period_start string (date-time) | null REQUIRED
billing_period_end string (date-time) | null REQUIRED
401 Missing or invalid B3OS key (`unauthorized`). Firecrawl `fc-` keys are not accepted.
429 A rate or concurrency limit applies (`rate_limited`, `concurrency_limited`).
500 Something failed inside B3OS (`internal`).
curl -X GET 'https://beta-api.b3os.org/compat/firecrawl/v1/team/credit-usage' \  -H 'Authorization: Bearer YOUR_API_TOKEN'
const response = await fetch('https://beta-api.b3os.org/compat/firecrawl/v1/team/credit-usage', {  method: 'GET',  headers: {      "Authorization": "Bearer YOUR_API_TOKEN"  }});const data = await response.json();console.log(data);
import requestsheaders = {    'Authorization': 'Bearer YOUR_API_TOKEN'}response = requests.get('https://beta-api.b3os.org/compat/firecrawl/v1/team/credit-usage', headers=headers)print(response.json())
200 Response
{  "success": true,  "data": {    "remaining_credits": 81796,    "plan_credits": 100000,    "billing_period_start": "2026-10-01T00:00:00.000Z",    "billing_period_end": "2026-11-01T00:00:00.000Z"  }}
Ask a question... ⌘I