Skip to content
Screaming Data
Documentation menu

Guide

Authentication

Send your API login and an API key with every request, using HTTP Basic authentication — the scheme every HTTP client supports out of the box. Only access requests and the public reference endpoints (marketplaces, status and status codes) work without a key.

HTTP Basic

Join your login and key with a colon, encode the result as Base64 and send it in the Authorization header:

Header
Authorization: Basic base64("<login>:<api_key>")

Most tools do this for you: curl --user login:key, requests.get(url, auth=(login, key)) in Python, or a manually built header in JavaScript. To build the header yourself in a shell (the tr step matters: GNU base64 on Linux wraps its output after 76 characters, which would put a line break into the header):

Shell
AUTH=$(printf '%s' "$API_LOGIN:$API_KEY" | base64 | tr -d '\n')
curl --header "Authorization: Basic $AUTH" https://api.screamingdata.dev/v1/appendix/user_data

Bearer key

The API key alone also identifies your account. If your client prefers bearer tokens, send the key without the login:

Header
Authorization: Bearer sd_live_…your key…

API keys

  • Keys look like sd_live_ followed by 40 URL-safe characters.
  • The full key is shown once, when it is created. Only a hash of it is stored, so a lost key cannot be recovered — create a new one and revoke the old one.
  • An account can have up to 20 active keys. Use one per environment or service so you can rotate them independently.
  • Create keys with POST /v1/appendix/keys, list them (prefix and last four characters only) with user_data, and revoke them with DELETE /v1/appendix/keys/{key_id} — or do all of it in the dashboard.
  • A revoked key stops working immediately.

Authentication errors

Authentication problems are reported at the request level with HTTP 401 and one of these codes in status_code:

CodeMessageHTTPWhen
40100Authentication failed.401The Authorization header is missing or malformed, or the login and API key do not match.
40101API key revoked.401The API key was revoked. Use another active key or create a new one.
40102Account disabled.401The account is disabled. Contact support.

Keeping keys safe

  • Call the API from your server. Never ship a key in browser JavaScript, a mobile app or a public repository.
  • Store keys in environment variables or a secret manager, not in source code.
  • Rotate keys regularly: create a new key, deploy it, then revoke the old one.
  • Revoke a key immediately if it may have leaked, then check recent usage in the dashboard.
  • Always use HTTPS so credentials are never sent in clear text.

Suspect a leaked key?

Revoke it in the dashboard and write to [email protected].