Skip to main content
The Dealroom API supports two types of API keys:
  • Programmatic (M2M) keys — for server-side integrations using the OAuth2 client credentials grant. Each key has a client_id and client_secret.
  • Browser app (application) keys — for single-page apps (SPAs) using Authorization Code + PKCE. No client_secret; read-only permissions only. These are not self-servecontact us and we will provision one for you.

Creating an API key

Programmatic keys are self-serve from the Dealroom dashboard. Browser app keys are provisioned by us on request.

From the Dealroom dashboard

Go to Settings > API in your Dealroom dashboard:
Dealroom API Keys settings page
  1. Click + Create key.
  2. Enter a descriptive name (e.g. Production — Data Pipeline). This is a label for you; it is not sent to the API.
  3. Select the scopes the key should carry. You can only grant scopes your own account holds, and at least one is required. Scopes cannot be changed later — to change them, revoke the key and create another.
  4. Click Create key.
  5. Copy the client_secret immediately. It is shown once and cannot be retrieved afterwards. The client_id stays visible on the key’s page.
There is no key-type choice in the dialog: the dashboard creates Programmatic (M2M) keys. For a browser app key, contact us.

Quick start

Install the dependencies for your language and start making API calls in under a minute. The SDKs handle token exchange, caching, and automatic refresh — you just provide your credentials.
bash npm install simple-oauth2 axios
bash pip install authlib requests

Obtaining a Bearer token

If you prefer to handle token management yourself, exchange your credentials at the Auth0 token endpoint:
Tokens are valid for expires_in seconds (typically 24h). Cache and reuse them. Requesting a new token per API call is unnecessary and adds latency.
The audience value (https://api-next.beta.dealroom.co) is an OAuth2 identifier, not a URL you call — it deliberately differs from the API base URL (https://api.beta.dealroom.app). Use both exactly as written; “fixing” the audience to match the base URL makes the token exchange fail.

Making authenticated requests

Every request must include two headers:

Why two headers?

  • Authorization — authenticates the request via JWT.
  • X-Client-Id — cross-checked against the token’s sub claim as an extra authenticity guard. Must match the client_id used to obtain the token.

Error responses

Missing or invalid headers return 400 Bad Request:

Permissions

API keys support fine-grained scopes. You can only grant permissions that you already hold. Common permissions:

Usage dashboard

After making API requests, the dashboard Settings > API page shows:
  • Total requests — aggregated request count over time
  • Endpoint breakdown — which endpoints are being called and how often
  • Last used — when each key was last active
Usage data may take up to 60 seconds to appear after requests are made.

Best practices

  • Principle of least privilege — only grant permissions your integration needs.
  • Rotate regularly — revoke and recreate API keys periodically.
  • Never commit secrets — use environment variables or a secrets manager.
  • Cache tokens — reuse the access token for its full lifetime before refreshing.