veil

Return from an OAuth provider

Receive the redirect from Veil’s configured Discord or GitHub application.

GET/v1/links/callback/{platform}
Access
OAuth provider callback
Client
Local or server client

Parameters#

NameLocationMeaning
platformRequiredPathdiscord or github, as chosen when the flow started.
code, stateQueryParameters supplied by the OAuth provider. Keep them private.

Request examples#

cURL
curl -fsS 'https://veil.rip/v1/links/callback/github'

Response#

HTTP 200text/html

A callback page that completes the flow in the browser that started it. A callback alone does not publish an account link.

Response headers#

HeaderValueMeaning
Content-Typetext/htmlUse the declared media type before choosing a parser.
DateHTTP dateServer time. Compare it with your clock when signing requests.
Cache-Controlno-storeDo not persist private or temporary responses in a shared cache.
Retry-Afterinteger seconds, on rate_limited or busyWait at least this long before retrying. Other 429/503 codes do not necessarily include it.

Errors#

The OAuth callback renders an HTML return page, including when it fails. The codes below describe the failure shown on that page. Response and error guide

HTTPCodeMeaning and next step
400invalid_parameter

A path, query or body field is missing, malformed or outside its accepted range.

Correct the field named in error.message before sending again.

404not_found

The requested card, key, alias, code or resource was not found.

Check the identifier. Temporary codes and previews may already have expired or been used.

409callback_used

This OAuth sign-in already returned once.

Resume the original browser flow or start a fresh linking session.

410proof_expired

The temporary account-proof session has expired.

Start a new linking session.

422proof_failed

The provider, code or published proof did not verify.

Read error.message, correct the proof and retry while the session remains valid.

503provider_not_configured

The selected proof provider is unavailable on this server.

Read /v1/platforms for available methods.

Shared request errors
HTTPCodeMeaning and next step
429rate_limited

An anonymous, signed-request or API-key allowance was exceeded.

Wait at least Retry-After seconds. Share a queue and retry budget across your workers.

500internal_error

An unexpected server error occurred. Internal details are not returned.

Retry reads with bounded backoff. Check write results before sending a new signed operation.

503busy

The application has reached a temporary concurrency or database limit.

Wait Retry-After seconds and retry with bounded backoff.