Download OpenAPI specification:
Welcome to the Disrupting Insights Public API. This API provides access to startup and investment data including companies, people, investment rounds, investment houses, and universities.
Authorization headerThe API uses JWT-based authentication. You must obtain an access token before making requests to protected endpoints.
Obtain an access token by sending your credentials to the login endpoint.
Request:
curl -X POST https://db.disruptinginsights.com/auth/login \
-H "Content-Type: application/json" \
-d '{
"email": "your-email@example.com",
"password": "your-password"
}'
Response:
{
"data": {
"access_token": "eyJhbGciOiJIUzI1NiIs...",
"expires": 900000,
"refresh_token": "your-refresh-token"
}
}
Include the access token in the Authorization header for all API requests:
curl https://db.disruptinginsights.com/items/companies \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Access tokens expire. Use the refresh token to obtain a new access token without re-authenticating:
curl -X POST https://db.disruptinginsights.com/auth/refresh \
-H "Content-Type: application/json" \
-d '{
"refresh_token": "your-refresh-token"
}'
Use the filter query parameter to filter results. Filters use a JSON object structure:
# Get companies in the "Technology" industry
curl 'https://db.disruptinginsights.com/items/companies?filter={"industry":{"_eq":"Technology"}}'
| Operator | Description |
|---|---|
_eq |
Equal to |
_neq |
Not equal to |
_contains |
Contains (string) |
_in |
In array |
_nin |
Not in array |
_gt |
Greater than |
_gte |
Greater than or equal |
_lt |
Less than |
_lte |
Less than or equal |
_null |
Is null |
_nnull |
Is not null |
Use the sort parameter to order results:
# Sort by company name ascending
/items/companies?sort=company_name
# Sort by company name descending
/items/companies?sort=-company_name
Use limit and offset for pagination:
# Get 10 results, starting from the 20th record
/items/companies?limit=10&offset=20
Use the fields parameter to request specific fields:
# Only return id and company_name
/items/companies?fields=id,company_name
Use dot notation in fields to include related data:
# Include founder details
/items/companies?fields=id,company_name,founders.first_name,founders.last_name
Company records contain information about startups and businesses.
Endpoint: /items/companies
Available Fields:
id - Unique identifierstatus - Record statuscompany_name - Name of the companywebsite_url - Company websitelinkedin_url - LinkedIn profile URLlogo - Company logocity - City locationactive_market - Primary marketindustry - Industry classificationfounders - Related people records (founders)investment_rounds - Related investment roundsExample:
curl 'https://db.disruptinginsights.com/items/companies?fields=id,company_name,industry,city&limit=5' \
-H "Authorization: Bearer YOUR_TOKEN"
People records contain information about founders, executives, and other individuals.
Endpoint: /items/people
Available Fields:
id - Unique identifierstatus - Record statusfirst_name - First namelast_name - Last namefull_name - Full namemiddle_name - Middle nameprofile_picture - Profile imagelinkedin_url - LinkedIn profile URLcompanies - Related company recordsuniversities_attended - Related university recordsExample:
curl 'https://db.disruptinginsights.com/items/people?fields=id,full_name,linkedin_url&limit=5' \
-H "Authorization: Bearer YOUR_TOKEN"
Investment round records track funding events.
Endpoint: /items/investment_rounds
Available Fields:
id - Unique identifierstatus - Record statusamount_raised - Funding amountannounced_date - Date announcedcompany_id - Related companyinvestment_houses - Participating investorsExample:
curl 'https://db.disruptinginsights.com/items/investment_rounds?fields=id,amount_raised,announced_date&limit=5' \
-H "Authorization: Bearer YOUR_TOKEN"
Investment house records contain information about VCs and investment firms.
Endpoint: /items/investment_houses
Available Fields:
id - Unique identifierstatus - Record statusinvestment_house_name - Name of the firmwebsite_url - Firm websitelinkedin_url - LinkedIn profile URLlogo - Firm logocity - City locationlegal_jurisdiction - Jurisdictioninvestment_rounds - Related investment roundsExample:
curl 'https://db.disruptinginsights.com/items/investment_houses?fields=id,investment_house_name,city&limit=5' \
-H "Authorization: Bearer YOUR_TOKEN"
University records contain information about educational institutions.
Endpoint: /items/universities
Available Fields:
id - Unique identifierstatus - Record statusname - University namewebsite_url - University websitelinkedin_url - LinkedIn profile URLlogo - University logocity - City locationcountry - Countryalumni - Related people recordsExample:
curl 'https://db.disruptinginsights.com/items/universities?fields=id,name,city,country&limit=5' \
-H "Authorization: Bearer YOUR_TOKEN"
The API returns standard HTTP status codes:
| Code | Description |
|---|---|
| 200 | Success |
| 400 | Bad request - check your query parameters |
| 401 | Unauthorized - invalid or expired token |
| 403 | Forbidden - insufficient permissions |
| 404 | Not found - resource doesn't exist |
| 500 | Server error |
Error Response Format:
{
"errors": [
{
"message": "You don't have permission to access this.",
"extensions": {
"code": "FORBIDDEN"
}
}
]
}
Please be mindful of rate limits. If you receive a 429 Too Many Requests response, back off and retry after a delay.
Recommended practices:
All data within the platform is private by default. The public role can be configured to expose data without authentication, or you can pass an access token to the API to access private data.
Retrieve a Temporary Access Token
| email required | string Email address of the user you're retrieving the access token for. |
| password required | string <password> Password of the user. |
| mode | string Default: "json" Enum: "json" "cookie" "session" Whether to retrieve the refresh token in the JSON response, or in a httpOnly cookie. |
| otp | string The user's one-time-password (if MFA is enabled). |
{- "email": "admin@example.com",
- "password": "password",
- "mode": "json",
- "otp": "string"
}{- "data": {
- "access_token": "eyJhbGciOiJI...",
- "expires": 900,
- "refresh_token": "yuOJkjdPXMd..."
}
}Refresh a Temporary Access Token.
| refresh_token | string JWT access token you want to refresh. This token can't be expired. |
| mode | string Default: "json" Enum: "json" "cookie" "session" Whether to submit and retrieve the refresh token in the JSON response, or in a httpOnly cookie. |
{- "refresh_token": "eyJ0eXAiOiJKV...",
- "mode": "json"
}{- "data": {
- "access_token": "eyJhbGciOiJI...",
- "expires": 900,
- "refresh_token": "Gy-caJMpmGTA..."
}
}Log Out
| refresh_token | string The refresh token to invalidate. If you have the refresh token in a cookie through /auth/login, you don't have to submit it here. |
| mode | string Enum: "json" "cookie" "session" Whether the refresh token is submitted in the JSON response, or in a httpOnly cookie. |
{- "refresh_token": "eyJ0eXAiOiJKV...",
- "mode": "json"
}List the people items.
| fields | Array of strings Control what fields are being returned in the object. |
| limit | integer A limit on the number of objects that are returned. |
| meta | string What metadata to return in the response. |
| offset | integer How many items to skip when fetching data. |
| sort | Array of strings How to sort the returned items. |
| filter | object Example: filter={"<field>":{"<operator>":"<value>"}} Select items in collection by given conditions. |
| search | string Filter by items that contain the given search query in one of their fields. |
{- "data": [
- {
- "id": 0,
- "status": "string",
- "first_name": "string",
- "full_name": "string",
- "last_name": "string",
- "middle_name": "string",
- "profile_picture": "e25e816b-2248-4aeb-9d95-3516dc336925",
- "linkedin_url": "string",
- "companies": [
- 0
], - "universities_attended": [
- 0
]
}
], - "meta": {
- "total_count": 0,
- "filter_count": 0
}
}Retrieve a single people item by unique identifier.
required | integer or string Index of the item. |
| fields | Array of strings Control what fields are being returned in the object. |
| meta | string What metadata to return in the response. |
| version | string Retrieve an item's state from a specific Content Version. The value corresponds to the "key" of the Content Version. |
{- "data": {
- "id": 0,
- "status": "string",
- "first_name": "string",
- "full_name": "string",
- "last_name": "string",
- "middle_name": "string",
- "profile_picture": "e25e816b-2248-4aeb-9d95-3516dc336925",
- "linkedin_url": "string",
- "companies": [
- 0
], - "universities_attended": [
- 0
]
}
}List the companies items.
| fields | Array of strings Control what fields are being returned in the object. |
| limit | integer A limit on the number of objects that are returned. |
| meta | string What metadata to return in the response. |
| offset | integer How many items to skip when fetching data. |
| sort | Array of strings How to sort the returned items. |
| filter | object Example: filter={"<field>":{"<operator>":"<value>"}} Select items in collection by given conditions. |
| search | string Filter by items that contain the given search query in one of their fields. |
{- "data": [
- {
- "id": 0,
- "status": "string",
- "active_market": "string",
- "city": "string",
- "company_name": "string",
- "industry": [
- "string"
], - "logo": "3c06f846-1ab1-40a9-8645-a19a9fdeae85",
- "linkedin_url": "string",
- "website_url": "string",
- "founders": [
- 0
], - "investment_rounds": [
- 0
]
}
], - "meta": {
- "total_count": 0,
- "filter_count": 0
}
}Retrieve a single companies item by unique identifier.
required | integer or string Index of the item. |
| fields | Array of strings Control what fields are being returned in the object. |
| meta | string What metadata to return in the response. |
| version | string Retrieve an item's state from a specific Content Version. The value corresponds to the "key" of the Content Version. |
{- "data": {
- "id": 0,
- "status": "string",
- "active_market": "string",
- "city": "string",
- "company_name": "string",
- "industry": [
- "string"
], - "logo": "3c06f846-1ab1-40a9-8645-a19a9fdeae85",
- "linkedin_url": "string",
- "website_url": "string",
- "founders": [
- 0
], - "investment_rounds": [
- 0
]
}
}List the investment_houses items.
| fields | Array of strings Control what fields are being returned in the object. |
| limit | integer A limit on the number of objects that are returned. |
| meta | string What metadata to return in the response. |
| offset | integer How many items to skip when fetching data. |
| sort | Array of strings How to sort the returned items. |
| filter | object Example: filter={"<field>":{"<operator>":"<value>"}} Select items in collection by given conditions. |
| search | string Filter by items that contain the given search query in one of their fields. |
{- "data": [
- {
- "id": 0,
- "status": "string",
- "city": "string",
- "investment_house_name": "string",
- "legal_jurisdiction": "string",
- "logo": "3c06f846-1ab1-40a9-8645-a19a9fdeae85",
- "linkedin_url": "string",
- "website_url": "string",
- "investment_rounds": [
- 0
]
}
], - "meta": {
- "total_count": 0,
- "filter_count": 0
}
}Retrieve a single investment_houses item by unique identifier.
required | integer or string Index of the item. |
| fields | Array of strings Control what fields are being returned in the object. |
| meta | string What metadata to return in the response. |
| version | string Retrieve an item's state from a specific Content Version. The value corresponds to the "key" of the Content Version. |
{- "data": {
- "id": 0,
- "status": "string",
- "city": "string",
- "investment_house_name": "string",
- "legal_jurisdiction": "string",
- "logo": "3c06f846-1ab1-40a9-8645-a19a9fdeae85",
- "linkedin_url": "string",
- "website_url": "string",
- "investment_rounds": [
- 0
]
}
}List the investment_rounds items.
| fields | Array of strings Control what fields are being returned in the object. |
| limit | integer A limit on the number of objects that are returned. |
| meta | string What metadata to return in the response. |
| offset | integer How many items to skip when fetching data. |
| sort | Array of strings How to sort the returned items. |
| filter | object Example: filter={"<field>":{"<operator>":"<value>"}} Select items in collection by given conditions. |
| search | string Filter by items that contain the given search query in one of their fields. |
{- "data": [
- {
- "id": 0,
- "status": "string",
- "amount_raised": 0,
- "announced_date": "2019-08-24",
- "company_id": 0,
- "investment_houses": [
- 0
]
}
], - "meta": {
- "total_count": 0,
- "filter_count": 0
}
}Retrieve a single investment_rounds item by unique identifier.
required | integer or string Index of the item. |
| fields | Array of strings Control what fields are being returned in the object. |
| meta | string What metadata to return in the response. |
| version | string Retrieve an item's state from a specific Content Version. The value corresponds to the "key" of the Content Version. |
{- "data": {
- "id": 0,
- "status": "string",
- "amount_raised": 0,
- "announced_date": "2019-08-24",
- "company_id": 0,
- "investment_houses": [
- 0
]
}
}List the universities items.
| fields | Array of strings Control what fields are being returned in the object. |
| limit | integer A limit on the number of objects that are returned. |
| meta | string What metadata to return in the response. |
| offset | integer How many items to skip when fetching data. |
| sort | Array of strings How to sort the returned items. |
| filter | object Example: filter={"<field>":{"<operator>":"<value>"}} Select items in collection by given conditions. |
| search | string Filter by items that contain the given search query in one of their fields. |
{- "data": [
- {
- "id": 0,
- "status": "string",
- "city": "string",
- "country": "string",
- "logo": "3c06f846-1ab1-40a9-8645-a19a9fdeae85",
- "name": "string",
- "linkedin_url": "string",
- "website_url": "string",
- "alumni": [
- 0
]
}
], - "meta": {
- "total_count": 0,
- "filter_count": 0
}
}Retrieve a single universities item by unique identifier.
required | integer or string Index of the item. |
| fields | Array of strings Control what fields are being returned in the object. |
| meta | string What metadata to return in the response. |
| version | string Retrieve an item's state from a specific Content Version. The value corresponds to the "key" of the Content Version. |
{- "data": {
- "id": 0,
- "status": "string",
- "city": "string",
- "country": "string",
- "logo": "3c06f846-1ab1-40a9-8645-a19a9fdeae85",
- "name": "string",
- "linkedin_url": "string",
- "website_url": "string",
- "alumni": [
- 0
]
}
}List the companies items.
| fields | Array of strings Control what fields are being returned in the object. |
| limit | integer A limit on the number of objects that are returned. |
| meta | string What metadata to return in the response. |
| offset | integer How many items to skip when fetching data. |
| sort | Array of strings How to sort the returned items. |
| filter | object Example: filter={"<field>":{"<operator>":"<value>"}} Select items in collection by given conditions. |
| search | string Filter by items that contain the given search query in one of their fields. |
{- "data": [
- {
- "id": 0,
- "status": "string",
- "active_market": "string",
- "city": "string",
- "company_name": "string",
- "industry": [
- "string"
], - "logo": "3c06f846-1ab1-40a9-8645-a19a9fdeae85",
- "linkedin_url": "string",
- "website_url": "string",
- "founders": [
- 0
], - "investment_rounds": [
- 0
]
}
], - "meta": {
- "total_count": 0,
- "filter_count": 0
}
}Retrieve a single companies item by unique identifier.
required | integer or string Index of the item. |
| fields | Array of strings Control what fields are being returned in the object. |
| meta | string What metadata to return in the response. |
| version | string Retrieve an item's state from a specific Content Version. The value corresponds to the "key" of the Content Version. |
{- "data": {
- "id": 0,
- "status": "string",
- "active_market": "string",
- "city": "string",
- "company_name": "string",
- "industry": [
- "string"
], - "logo": "3c06f846-1ab1-40a9-8645-a19a9fdeae85",
- "linkedin_url": "string",
- "website_url": "string",
- "founders": [
- 0
], - "investment_rounds": [
- 0
]
}
}List the people items.
| fields | Array of strings Control what fields are being returned in the object. |
| limit | integer A limit on the number of objects that are returned. |
| meta | string What metadata to return in the response. |
| offset | integer How many items to skip when fetching data. |
| sort | Array of strings How to sort the returned items. |
| filter | object Example: filter={"<field>":{"<operator>":"<value>"}} Select items in collection by given conditions. |
| search | string Filter by items that contain the given search query in one of their fields. |
{- "data": [
- {
- "id": 0,
- "status": "string",
- "first_name": "string",
- "full_name": "string",
- "last_name": "string",
- "middle_name": "string",
- "profile_picture": "e25e816b-2248-4aeb-9d95-3516dc336925",
- "linkedin_url": "string",
- "companies": [
- 0
], - "universities_attended": [
- 0
]
}
], - "meta": {
- "total_count": 0,
- "filter_count": 0
}
}Retrieve a single people item by unique identifier.
required | integer or string Index of the item. |
| fields | Array of strings Control what fields are being returned in the object. |
| meta | string What metadata to return in the response. |
| version | string Retrieve an item's state from a specific Content Version. The value corresponds to the "key" of the Content Version. |
{- "data": {
- "id": 0,
- "status": "string",
- "first_name": "string",
- "full_name": "string",
- "last_name": "string",
- "middle_name": "string",
- "profile_picture": "e25e816b-2248-4aeb-9d95-3516dc336925",
- "linkedin_url": "string",
- "companies": [
- 0
], - "universities_attended": [
- 0
]
}
}List the investment_rounds items.
| fields | Array of strings Control what fields are being returned in the object. |
| limit | integer A limit on the number of objects that are returned. |
| meta | string What metadata to return in the response. |
| offset | integer How many items to skip when fetching data. |
| sort | Array of strings How to sort the returned items. |
| filter | object Example: filter={"<field>":{"<operator>":"<value>"}} Select items in collection by given conditions. |
| search | string Filter by items that contain the given search query in one of their fields. |
{- "data": [
- {
- "id": 0,
- "status": "string",
- "amount_raised": 0,
- "announced_date": "2019-08-24",
- "company_id": 0,
- "investment_houses": [
- 0
]
}
], - "meta": {
- "total_count": 0,
- "filter_count": 0
}
}Retrieve a single investment_rounds item by unique identifier.
required | integer or string Index of the item. |
| fields | Array of strings Control what fields are being returned in the object. |
| meta | string What metadata to return in the response. |
| version | string Retrieve an item's state from a specific Content Version. The value corresponds to the "key" of the Content Version. |
{- "data": {
- "id": 0,
- "status": "string",
- "amount_raised": 0,
- "announced_date": "2019-08-24",
- "company_id": 0,
- "investment_houses": [
- 0
]
}
}List the investment_houses items.
| fields | Array of strings Control what fields are being returned in the object. |
| limit | integer A limit on the number of objects that are returned. |
| meta | string What metadata to return in the response. |
| offset | integer How many items to skip when fetching data. |
| sort | Array of strings How to sort the returned items. |
| filter | object Example: filter={"<field>":{"<operator>":"<value>"}} Select items in collection by given conditions. |
| search | string Filter by items that contain the given search query in one of their fields. |
{- "data": [
- {
- "id": 0,
- "status": "string",
- "city": "string",
- "investment_house_name": "string",
- "legal_jurisdiction": "string",
- "logo": "3c06f846-1ab1-40a9-8645-a19a9fdeae85",
- "linkedin_url": "string",
- "website_url": "string",
- "investment_rounds": [
- 0
]
}
], - "meta": {
- "total_count": 0,
- "filter_count": 0
}
}Retrieve a single investment_houses item by unique identifier.
required | integer or string Index of the item. |
| fields | Array of strings Control what fields are being returned in the object. |
| meta | string What metadata to return in the response. |
| version | string Retrieve an item's state from a specific Content Version. The value corresponds to the "key" of the Content Version. |
{- "data": {
- "id": 0,
- "status": "string",
- "city": "string",
- "investment_house_name": "string",
- "legal_jurisdiction": "string",
- "logo": "3c06f846-1ab1-40a9-8645-a19a9fdeae85",
- "linkedin_url": "string",
- "website_url": "string",
- "investment_rounds": [
- 0
]
}
}List the universities items.
| fields | Array of strings Control what fields are being returned in the object. |
| limit | integer A limit on the number of objects that are returned. |
| meta | string What metadata to return in the response. |
| offset | integer How many items to skip when fetching data. |
| sort | Array of strings How to sort the returned items. |
| filter | object Example: filter={"<field>":{"<operator>":"<value>"}} Select items in collection by given conditions. |
| search | string Filter by items that contain the given search query in one of their fields. |
{- "data": [
- {
- "id": 0,
- "status": "string",
- "city": "string",
- "country": "string",
- "logo": "3c06f846-1ab1-40a9-8645-a19a9fdeae85",
- "name": "string",
- "linkedin_url": "string",
- "website_url": "string",
- "alumni": [
- 0
]
}
], - "meta": {
- "total_count": 0,
- "filter_count": 0
}
}Retrieve a single universities item by unique identifier.
required | integer or string Index of the item. |
| fields | Array of strings Control what fields are being returned in the object. |
| meta | string What metadata to return in the response. |
| version | string Retrieve an item's state from a specific Content Version. The value corresponds to the "key" of the Content Version. |
{- "data": {
- "id": 0,
- "status": "string",
- "city": "string",
- "country": "string",
- "logo": "3c06f846-1ab1-40a9-8645-a19a9fdeae85",
- "name": "string",
- "linkedin_url": "string",
- "website_url": "string",
- "alumni": [
- 0
]
}
}