What the sign-in page needs before anyone is signed in: whether email codes and GitHub sign-in work on this deployment, and the Cloudflare Turnstile site key and action to render the widget with before an email sign-in start (`POST /v1/auth/email/start` takes the widget's token as `turnstile_token`). `email.turnstile` is null and `email.enabled` false when the deployment has no Turnstile keys, and `email.enabled` is false when it has no mail service; a start then answers 503. Read it when the sign-in page loads; it is never cached.
GET/v1/auth/config
What the sign-in page needs before anyone is signed in: whether email codes and GitHub sign-in work on this
deployment, and the Cloudflare Turnstile site key and action to render the widget with before an email
sign-in start (`POST /v1/auth/email/start` takes the widget's token as `turnstile_token`). `email.turnstile` is
null and `email.enabled` false when the deployment has no Turnstile keys, and `email.enabled` is false when it
has no mail service; a start then answers 503. Read it when the sign-in page loads; it is never cached.
Responses
200The sign-in options of this deployment.
application/json
objectstringREQUIRED
Enum: auth_config
emailobjectREQUIRED
Email code sign-in (`POST /v1/auth/email/start`).
enabledbooleanREQUIRED
The deployment has a mail service and Turnstile keys, so a start can send a code.
turnstileobject | nullREQUIRED
What to render the Turnstile widget with before a start; null when the deployment has no Turnstile keys.
site_keystringREQUIRED
The widget's public site key (`sitekey` in `turnstile.render`).
actionstringREQUIRED
The widget's `action`; the edge refuses tokens issued for any other.
Enum: email_sign_in
githubobjectREQUIRED
GitHub sign-in (`GET /v1/auth/github`).
enabledbooleanREQUIRED
The deployment has a GitHub OAuth app; when false, `GET /v1/auth/github` answers 501.
429A rate, concurrency or quota limit applies (`rate_limited`, `concurrency_limited`, `quota_exceeded`).
application/problem+json
typestring (uri)REQUIRED
`https://docs.beta.b3os.org/errors#<code>`.
titlestringREQUIRED
Short summary of the problem type.
statusintegerREQUIRED
The HTTP status code, repeated for convenience.
codestringREQUIRED
Stable machine-readable error code from the errors catalog.
detailstringREQUIRED
Explanation of this occurrence. Never contains secrets.
instancestring
The request ID (`req_…`) of the request that failed. Include it when you contact support.
errorsobject[]
Validation problems, one per field (`invalid_request` and the other codes that list `errors`).
Array of:
pointerstringREQUIRED
Where the problem is: a JSON pointer into the request body (`/url`, `/steps/0/uses`), or `#query/<name>`,
`#path/<name>` or `#header/<name>` for parameters.
detailstringREQUIRED
What is wrong there.
reasonstring
Finer-grained cause for codes that document one (`unauthorized`, `forbidden`, `egress_denied`, `upstream_unreachable`, …).
required_scopestring
The scope that was missing (`forbidden` with `reason: scope`).
retry_after_sinteger
Same value as the `Retry-After` header, for clients that only read the body.
limitobject
The limit an error refers to. IDs and current values are listed by `GET /v1/limits`.
idstringREQUIRED
Limit ID, such as `vision.scrape.rpm` or `sandboxes.concurrent`.
limitnumberREQUIRED
The limit's value.
unitstringREQUIRED
What the limit counts, such as `requests`, `sandboxes`, `vcpu` or `MiB`.
window_sinteger
Window length in seconds for rate limits and quotas.
currentnumber
Current usage against the limit, when known.
current_statusstring
The object's current status, for state conflicts such as `sandbox_not_running`.
upstream_statusinteger
The HTTP status the upstream returned (`upstream_error`, `action_output_invalid`).
stepstring
The failed step, as a step ID (routines), an index (`act`) or a path such as `beats/2/do/0` (render).
pack_errorobject
The error a pack's error mapping chose (`upstream_error` from pack actions).
codestringREQUIRED
messagestringREQUIRED
retryablebooleanREQUIRED
500Something failed inside B3OS (`internal`). Retry with backoff.
application/problem+json
typestring (uri)REQUIRED
`https://docs.beta.b3os.org/errors#<code>`.
titlestringREQUIRED
Short summary of the problem type.
statusintegerREQUIRED
The HTTP status code, repeated for convenience.
codestringREQUIRED
Stable machine-readable error code from the errors catalog.
detailstringREQUIRED
Explanation of this occurrence. Never contains secrets.
instancestring
The request ID (`req_…`) of the request that failed. Include it when you contact support.
errorsobject[]
Validation problems, one per field (`invalid_request` and the other codes that list `errors`).
Array of:
pointerstringREQUIRED
Where the problem is: a JSON pointer into the request body (`/url`, `/steps/0/uses`), or `#query/<name>`,
`#path/<name>` or `#header/<name>` for parameters.
detailstringREQUIRED
What is wrong there.
reasonstring
Finer-grained cause for codes that document one (`unauthorized`, `forbidden`, `egress_denied`, `upstream_unreachable`, …).
required_scopestring
The scope that was missing (`forbidden` with `reason: scope`).
retry_after_sinteger
Same value as the `Retry-After` header, for clients that only read the body.
limitobject
The limit an error refers to. IDs and current values are listed by `GET /v1/limits`.
idstringREQUIRED
Limit ID, such as `vision.scrape.rpm` or `sandboxes.concurrent`.
limitnumberREQUIRED
The limit's value.
unitstringREQUIRED
What the limit counts, such as `requests`, `sandboxes`, `vcpu` or `MiB`.
window_sinteger
Window length in seconds for rate limits and quotas.
currentnumber
Current usage against the limit, when known.
current_statusstring
The object's current status, for state conflicts such as `sandbox_not_running`.
upstream_statusinteger
The HTTP status the upstream returned (`upstream_error`, `action_output_invalid`).
stepstring
The failed step, as a step ID (routines), an index (`act`) or a path such as `beats/2/do/0` (render).
pack_errorobject
The error a pack's error mapping chose (`upstream_error` from pack actions).
codestringREQUIRED
messagestringREQUIRED
retryablebooleanREQUIRED
503The node or the product is not available right now (`node_unavailable`, `product_unavailable`, `capacity_unavailable`).
application/problem+json
typestring (uri)REQUIRED
`https://docs.beta.b3os.org/errors#<code>`.
titlestringREQUIRED
Short summary of the problem type.
statusintegerREQUIRED
The HTTP status code, repeated for convenience.
codestringREQUIRED
Stable machine-readable error code from the errors catalog.
detailstringREQUIRED
Explanation of this occurrence. Never contains secrets.
instancestring
The request ID (`req_…`) of the request that failed. Include it when you contact support.
errorsobject[]
Validation problems, one per field (`invalid_request` and the other codes that list `errors`).
Array of:
pointerstringREQUIRED
Where the problem is: a JSON pointer into the request body (`/url`, `/steps/0/uses`), or `#query/<name>`,
`#path/<name>` or `#header/<name>` for parameters.
detailstringREQUIRED
What is wrong there.
reasonstring
Finer-grained cause for codes that document one (`unauthorized`, `forbidden`, `egress_denied`, `upstream_unreachable`, …).
required_scopestring
The scope that was missing (`forbidden` with `reason: scope`).
retry_after_sinteger
Same value as the `Retry-After` header, for clients that only read the body.
limitobject
The limit an error refers to. IDs and current values are listed by `GET /v1/limits`.
idstringREQUIRED
Limit ID, such as `vision.scrape.rpm` or `sandboxes.concurrent`.
limitnumberREQUIRED
The limit's value.
unitstringREQUIRED
What the limit counts, such as `requests`, `sandboxes`, `vcpu` or `MiB`.
window_sinteger
Window length in seconds for rate limits and quotas.
currentnumber
Current usage against the limit, when known.
current_statusstring
The object's current status, for state conflicts such as `sandbox_not_running`.
upstream_statusinteger
The HTTP status the upstream returned (`upstream_error`, `action_output_invalid`).
stepstring
The failed step, as a step ID (routines), an index (`act`) or a path such as `beats/2/do/0` (render).
pack_errorobject
The error a pack's error mapping chose (`upstream_error` from pack actions).
codestringREQUIRED
messagestringREQUIRED
retryablebooleanREQUIRED
curl -X GET 'https://beta.b3os.org/v1/auth/config' \ -H 'Authorization: Bearer YOUR_API_TOKEN'