Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/dealroom:dealroom-valuations-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Dealroom Valuations API
version: '2026-10-09'
description: REST API for the Dealroom platform — companies, funds, founders, investors, funding rounds, valuations, taxonomy, news, and aggregate analytics across all of them. Authentication uses Auth0 (Bearer JWT or OAuth2 client_credentials). All endpoints are versioned via the `API-Version` header (Stripe-style date-based versioning).
contact:
name: Dealroom API support
email: support@dealroom.co
url: https://dealroom.co
termsOfService: https://dealroom.co/terms
license:
name: Proprietary — Dealroom commercial license
url: https://dealroom.co/terms
servers:
- url: https://api.dealroom.app
description: Production
security:
- bearerAuth: []
- oauth2: []
tags:
- name: Valuations
description: Company valuation history, by `valued_date`.
paths:
/data/valuations:
get:
operationId: listValuations
security:
- oauth2:
- read:valuations
- bearerAuth:
- read:valuations
tags:
- Valuations
summary: List valuations
description: Returns the cross-entity valuation history. Each row is one company's recorded valuation at its `valued_date`, with the valuation source where available. Use `/data/companies/{id}/valuations` for a single-entity view.
parameters:
- schema:
type: string
description: 'Filter expression for valuations.
Examples:
- Single: date[gte]:2020
- AND: and(date[gte]:2020,value[gte]:1000000000)
Operators: eq, neq, gt, gte, lt, lte, in_any, nin_any
in_all / nin_all are available on repeated related-record filters and on the classification / roles flag sets.
Default ref: ''valuation''
'
example: and(date[gte]:2020,value[gte]:1000000000)
required: false
description: 'Filter expression for valuations.
Examples:
- Single: date[gte]:2020
- AND: and(date[gte]:2020,value[gte]:1000000000)
Operators: eq, neq, gt, gte, lt, lte, in_any, nin_any
in_all / nin_all are available on repeated related-record filters and on the classification / roles flag sets.
Default ref: ''valuation''
'
name: filter
in: query
- schema:
type: integer
format: int32
minimum: 1
maximum: 2000
default: 25
description: Number of results to return (1-2000, default 25)
example: 25
required: false
description: Number of results to return (1-2000, default 25)
name: limit
in: query
- schema:
type: string
description: Opaque cursor token from a previous response's `page.next_cursor` or `page.prev_cursor`. Round-trip it as-is — do not decode or modify.
example: eyJ2IjoxLCJkIjoibmV4dCJ9
required: false
description: Opaque cursor token from a previous response's `page.next_cursor` or `page.prev_cursor`. Round-trip it as-is — do not decode or modify.
name: cursor
in: query
- schema:
type: string
pattern: ^(?:-?\w+)?(?:,(?:-?\w+)?)*$
description: Sort by one or more keys. Prefix with `-` for descending order; comma-separated for multi-key sorts.
example: -date
required: false
description: Sort by one or more keys. Prefix with `-` for descending order; comma-separated for multi-key sorts.
name: sort
in: query
- schema:
type: boolean
description: Pass `true` to compute `page.total` (the matching record count). By default no count query runs and `page.total` is `null`.
example: true
required: false
description: Pass `true` to compute `page.total` (the matching record count). By default no count query runs and `page.total` is `null`.
name: include_total
in: query
- schema:
type: string
description: ISO 4217 currency code for monetary field conversion. Defaults to USD.
example: EUR
required: false
description: ISO 4217 currency code for monetary field conversion. Defaults to USD.
name: currency
in: query
- $ref: '#/components/parameters/ApiVersion'
responses:
'200':
description: List of valuations
content:
application/json:
schema:
$ref: '#/components/schemas/ValuationListResponse'
headers:
X-Credits-Used:
$ref: '#/components/headers/X-Credits-Used'
Deprecation:
$ref: '#/components/headers/Deprecation'
Sunset:
$ref: '#/components/headers/Sunset'
'400':
description: Invalid request parameters
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error:
code: VALIDATION_ERROR
message: The request was malformed or failed validation.
details: null
headers:
X-Credits-Used:
$ref: '#/components/headers/X-Credits-Used'
Deprecation:
$ref: '#/components/headers/Deprecation'
Sunset:
$ref: '#/components/headers/Sunset'
'401':
description: Authentication required. The `Authorization` header was missing, the bearer token was malformed, or the token failed signature / expiry validation.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error:
code: UNAUTHORIZED
message: Authentication required — provide a valid bearer token.
details: null
headers:
Deprecation:
$ref: '#/components/headers/Deprecation'
Sunset:
$ref: '#/components/headers/Sunset'
'402':
description: '`CREDITS_EXHAUSTED` — the caller''s team has no credits left, or none granted yet. Only API-key and MCP requests are capped.'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
headers:
X-Credits-Used:
$ref: '#/components/headers/X-Credits-Used'
'403':
description: Authentication succeeded but the caller's token does not include the permission required for this operation.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error:
code: FORBIDDEN
message: You do not have permission to perform this action.
details: null
headers:
X-Credits-Used:
$ref: '#/components/headers/X-Credits-Used'
Deprecation:
$ref: '#/components/headers/Deprecation'
Sunset:
$ref: '#/components/headers/Sunset'
'429':
description: Rate limit exceeded.
headers:
X-Credits-Used:
$ref: '#/components/headers/X-Credits-Used'
Deprecation:
$ref: '#/components/headers/Deprecation'
Sunset:
$ref: '#/components/headers/Sunset'
Retry-After:
schema:
type: string
description: Seconds to wait before retrying.
example: '1'
required: true
description: Seconds to wait before retrying.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error:
code: RATE_LIMITED
message: Rate limit exceeded — retry after the delay in the `Retry-After` header.
details: null
'503':
description: '`SERVICE_UNAVAILABLE` — the caller''s team credits could not be checked. Retry shortly.'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error:
code: SERVICE_UNAVAILABLE
message: The service is temporarily unavailable.
details: null
headers:
X-Credits-Used:
$ref: '#/components/headers/X-Credits-Used'
/data/valuations/{id}:
get:
operationId: getValuation
security:
- oauth2:
- read:valuations
- bearerAuth:
- read:valuations
tags:
- Valuations
summary: Get single valuation
description: Returns one valuation by its stable Dealroom id — the same row `GET /data/valuations` returns, so list and detail share one shape. Soft-deleted valuations are not found.
parameters:
- schema:
type: string
minLength: 1
example: '1234567'
description: Numeric Dealroom valuation ID.
required: true
description: Numeric Dealroom valuation ID.
name: id
in: path
- schema:
type: string
description: ISO 4217 currency code for monetary field conversion. Defaults to USD.
example: EUR
required: false
description: ISO 4217 currency code for monetary field conversion. Defaults to USD.
name: currency
in: query
- $ref: '#/components/parameters/ApiVersion'
responses:
'200':
description: Single valuation
content:
application/json:
schema:
$ref: '#/components/schemas/ValuationDetailResponse'
headers:
X-Credits-Used:
$ref: '#/components/headers/X-Credits-Used'
Deprecation:
$ref: '#/components/headers/Deprecation'
Sunset:
$ref: '#/components/headers/Sunset'
'400':
description: Invalid valuation ID
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error:
code: VALIDATION_ERROR
message: The request was malformed or failed validation.
details: null
headers:
X-Credits-Used:
$ref: '#/components/headers/X-Credits-Used'
Deprecation:
$ref: '#/components/headers/Deprecation'
Sunset:
$ref: '#/components/headers/Sunset'
'401':
description: Authentication required. The `Authorization` header was missing, the bearer token was malformed, or the token failed signature / expiry validation.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error:
code: UNAUTHORIZED
message: Authentication required — provide a valid bearer token.
details: null
headers:
Deprecation:
$ref: '#/components/headers/Deprecation'
Sunset:
$ref: '#/components/headers/Sunset'
'402':
description: '`CREDITS_EXHAUSTED` — the caller''s team has no credits left, or none granted yet. Only API-key and MCP requests are capped.'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
headers:
X-Credits-Used:
$ref: '#/components/headers/X-Credits-Used'
'403':
description: Authentication succeeded but the caller's token does not include the permission required for this operation.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error:
code: FORBIDDEN
message: You do not have permission to perform this action.
details: null
headers:
X-Credits-Used:
$ref: '#/components/headers/X-Credits-Used'
Deprecation:
$ref: '#/components/headers/Deprecation'
Sunset:
$ref: '#/components/headers/Sunset'
'404':
description: Valuation not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error:
code: NOT_FOUND
message: The requested resource was not found.
details: null
headers:
X-Credits-Used:
$ref: '#/components/headers/X-Credits-Used'
Deprecation:
$ref: '#/components/headers/Deprecation'
Sunset:
$ref: '#/components/headers/Sunset'
'429':
description: Rate limit exceeded.
headers:
X-Credits-Used:
$ref: '#/components/headers/X-Credits-Used'
Deprecation:
$ref: '#/components/headers/Deprecation'
Sunset:
$ref: '#/components/headers/Sunset'
Retry-After:
schema:
type: string
description: Seconds to wait before retrying.
example: '1'
required: true
description: Seconds to wait before retrying.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error:
code: RATE_LIMITED
message: Rate limit exceeded — retry after the delay in the `Retry-After` header.
details: null
'503':
description: '`SERVICE_UNAVAILABLE` — the caller''s team credits could not be checked. Retry shortly.'
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error:
code: SERVICE_UNAVAILABLE
message: The service is temporarily unavailable.
details: null
headers:
X-Credits-Used:
$ref: '#/components/headers/X-Credits-Used'
components:
headers:
Sunset:
description: 'Present when the request pinned a superseded version: the date the version stops working and requests begin returning `400` (`YYYY-MM-DD`).'
schema:
type: string
format: date
X-Credits-Used:
description: Credits this request consumed, under the current credit schedule. Present on every response to an API-key request under `/data`, `/analytics` and `/reference`; `0` on an error response or a free endpoint. Absent when the request was not authenticated with an API key (so never on a `401`), or on unmetered endpoints. During open beta credits are drawn from the team's balance but not billed.
schema:
type: integer
minimum: 0
example: 25
Deprecation:
description: 'Present when the request pinned a superseded version: the date that version was deprecated (`YYYY-MM-DD`).'
schema:
type: string
format: date
schemas:
CappedPaginationPage:
type: object
properties:
total:
type:
- number
- 'null'
limit:
type: number
offset:
type: number
next_cursor:
type:
- string
- 'null'
description: Opaque cursor for the next page. Null when no further pages exist.
prev_cursor:
type:
- string
- 'null'
description: Opaque cursor for the previous page. Null when on the first page.
capped:
type: boolean
description: True when the requested page size was reduced to the per-tier/ecosystem row cap.
tier:
$ref: '#/components/schemas/AccessTier'
ecosystem:
type:
- string
- 'null'
description: Slug of the active ecosystem subdomain, or null when none is in scope.
required:
- total
- limit
- offset
- next_cursor
- prev_cursor
- capped
- tier
- ecosystem
Valuation:
type: object
properties:
id:
type: number
description: Stable Dealroom valuation id.
example: 1234567
value:
type:
- number
- 'null'
description: Valuation amount, in the response `currency` (default USD). Null when the source amount is unknown.
example: 92000000
valued_date:
anyOf:
- $ref: '#/components/schemas/PartialDate'
- type: 'null'
description: When the valuation applies, at source precision.
example: 2024-03
is_estimate:
type:
- boolean
- 'null'
description: Whether the value is a Dealroom estimate rather than a reported figure.
example: false
entity:
$ref: '#/components/schemas/EntityRef'
deleted_at:
type:
- string
- 'null'
format: date-time
description: ISO 8601 timestamp when this record was soft-deleted (null = active)
example: null
required:
- id
- value
- valued_date
- is_estimate
- entity
- deleted_at
PartialDate:
type: string
pattern: ^\d{4}(-\d{2}(-\d{2})?)?$
description: 'A date at the precision the source knows it. The value''s length is its precision: `YYYY` when only the year is known, `YYYY-MM` for the month, `YYYY-MM-DD` for the day. Never padded: an unknown month or day shortens the value rather than defaulting to `01`. Deliberately not `format: date`, which requires a full day.'
example: 2024-03
OrganizationSubtype:
type: string
enum:
- company
- university
- gov_ngo
- investor
description: 'The kind of organization: company, university, gov_ngo or investor.'
AccessTier:
type: string
enum:
- anonymous
- free
- premium
description: 'The access tier applied to this request (anonymous, free, premium). API-key callers report premium: they receive the full field set and are not page-capped.'
ValuationListResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Valuation'
page:
$ref: '#/components/schemas/CappedPaginationPage'
currency:
type: string
required:
- data
- page
- currency
EntityType:
type: string
enum:
- organization
- person
description: 'Top-level entity type: `organization` or `person`.'
ValuationDetailResponse:
type: object
properties:
data:
$ref: '#/components/schemas/Valuation'
currency:
type: string
required:
- data
- currency
EntityRef:
type: object
properties:
uuid:
type: string
description: Stable UUID of the entity.
type:
$ref: '#/components/schemas/EntityType'
subtype:
anyOf:
- $ref: '#/components/schemas/OrganizationSubtype'
- type: 'null'
description: Organization subtype; always null for a person.
name:
type: string
description: Display name.
image:
type:
- string
- 'null'
description: Absolute image URL; null when none.
dealroom_url:
type:
- string
- 'null'
description: Canonical profile URL on app.dealroom.co.
required:
- uuid
- type
- subtype
- name
- image
- dealroom_url
description: 'The identity of an entity embedded in another entity''s response. Closed: richer detail lives on the sub-resource, where tier redaction can reach it.'
ErrorResponse:
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- VALIDATION_ERROR
- NOT_FOUND
- UNAUTHORIZED
- DATABASE_ERROR
- UNKNOWN_FILTER
- FILTER_VALIDATION_ERROR
- UNSUPPORTED_OPERATOR
- FILTER_PARSE_ERROR
- QUERY_TIMEOUT
- INTERNAL_SERVER_ERROR
- INVALID_ENTITY_ID
- PAGINATION_DEPTH_EXCEEDED
- SCHEMA_ERROR
- FORBIDDEN
- EXTERNAL_SERVICE_ERROR
- ACCOUNT_REQUIRED
- INSTANCE_ACCESS_REQUIRED
- SERVICE_UNAVAILABLE
- RATE_LIMITED
- CREDITS_EXHAUSTED
- LIST_LOCKED
- PATH_RENAMED
- ENDPOINT_REMOVED
description: Stable machine-readable error code.
message:
type: string
details:
anyOf:
- type: array
items:
type: object
properties:
path:
type: string
message:
type: string
required:
- path
- message
- type: object
additionalProperties:
anyOf:
- type: string
- type: number
- type: boolean
- type: 'null'
required:
- code
- message
- details
required:
- error
parameters:
ApiVersion:
name: API-Version
in: header
required: false
schema:
type: string
format: date
example: '2026-10-09'
description: Pin a Stripe-style date-based API version (`YYYY-MM-DD`). Omit to use the latest version (`2026-10-09`). A pinned version is supported for 30 days after it is superseded, after which it returns `400`.
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: Auth0 JWT access token. Paste a token obtained from your preferred OAuth2 flow. For machine-to-machine use, the OAuth2 client_credentials scheme below can mint a token directly from your `client_id` / `client_secret` inside the Swagger UI Authorize dialog.
oauth2:
type: oauth2
description: OAuth2 client-credentials flow against the Dealroom Auth0 tenant. Use the `client_id` / `client_secret` from a Programmatic API key. Tokens are valid for 24h — Swagger UI will reuse the same token across operations. Revoking or deactivating a key rejects it on the next request (within a ≤5-minute server-side cache window), not at token expiry.
flows:
clientCredentials:
tokenUrl: https://accounts.dealroom.co/oauth/token
scopes:
read:entities: Grant the read:entities permission
read:transactions: Grant the read:transactions permission
read:valuations: Grant the read:valuations permission
read:investors: Grant the read:investors permission
read:founders: Grant the read:founders permission
read:dimensions: Grant the read:dimensions permission
read:timeseries: Grant the read:timeseries permission
read:aggregate: Grant the read:aggregate permission
read:news: Grant the read:news permission
read:jobs: Grant the read:jobs permission
read:people: Grant the read:people permission
read:search: Grant the read:search permission
x-tagGroups:
- name: Data
tags:
- Entities
- Companies
- Universities
- Government & NGO
- Transactions
- Valuations
- Investors
- Funds
- People
- Founders
- News
- Jobs
- Search
- name: Analytics
tags:
- Aggregate
- Timeseries
- name: Reference
tags:
- Discovery
- Filters
x-public-contract: true