Sumble organizations API
The organizations API from Sumble — 3 operation(s) for organizations.
The organizations API from Sumble — 3 operation(s) for organizations.
openapi: 3.1.0
info:
title: Sumble contact-lists organizations API
description: The official Sumble API for programmatic enrichment.
contact:
name: Sumble
email: support@sumble.com
version: v9
servers:
- url: https://api.sumble.com
tags:
- name: organizations
paths:
/v9/organizations:
post:
tags:
- organizations
summary: Unified organizations endpoint
operationId: enrich_organizations_unified__api_version__organizations_post
security:
- api_token: []
parameters: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/EnrichOrganizationsRequest'
examples:
by_id:
summary: Lookup by Sumble id (no attributes requested)
value:
organizations:
- id: 1726684
select: {}
by_filter:
summary: Filter (advanced query) instead of a list
value:
filter:
query: technology EQ 'react'
limit: 5
order_by_column: employee_count
order_by_direction: DESC
select:
attributes:
- id
- name
- url
entities:
- type: technology
term: kubernetes
metrics: all
by_filter_concentration_sort:
summary: Filter sorted by a job function's people concentration (no source_data_url)
value:
filter:
query: technology EQ 'react'
limit: 5
order_by_column: people_concentration
order_by_direction: DESC
order_by_job_function: Data Engineer
select:
attributes:
- id
- name
- url
entities:
- type: job_function
term: Data Engineer
metrics:
- people_count
- people_concentration
by_filter_aq_concentration_sort:
summary: Filter sorted by an advanced query's job post concentration (no source_data_url)
value:
filter:
query: employee_count EQ '1000-'
limit: 5
order_by_column: job_post_concentration
order_by_direction: DESC
order_by_advanced_query: technology EQ 'react' AND job_function EQ 'Data Engineer'
select:
attributes:
- id
- name
- url
entities:
- type: advanced_query
term: technology EQ 'react' AND job_function EQ 'Data Engineer'
metrics:
- job_post_count
- job_post_concentration
by_name_url_with_attrs:
summary: Match by name/URL, request attributes
value:
organizations:
- name: Sumble
url: sumble.com
- name: Google
location: US
select:
attributes:
- id
- slug
- name
- url
- employee_count
- industry
- jobs_count
- teams_count
- headquarters_country
- sumble_score
- sumble_url
- parent_id
- subsidiary_ids
- tags
entities:
- type: technology
term: kubernetes
metrics:
- job_post_count
- people_count
- job_post_count_growth_1y
- type: technology
term: react
metrics:
- job_post_count
- team_count
since: '2026-02-01'
- type: job_function
term: Data Engineer
metrics: all
- type: advanced_query
term: technology EQ 'react'
metrics:
- job_post_count
- team_count
- people_count
- job_post_concentration
- type: technology_category
term: logging-observability-monitoring
granularity: aggregate
metrics: all
- type: technology_category
term: logging-observability-monitoring
granularity: exploded
metrics:
- job_post_count
since: '2026-02-01'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/EnrichOrganizationsResponse'
example:
id: 019d06c6-9d55-75a4-bf7f-2bde9b85b772
credits_used: 73
credits_remaining: 98927
organizations:
- input:
name: Sumble
url: sumble.com
attributes:
id: 1726684
slug: sumble
name: Sumble
url: sumble.com
employee_count: 120
industry: Information
jobs_count: 42
teams_count: 8
headquarters_country: US
sumble_score: 82.5
sumble_url: https://sumble.com/l/org/TH2y9mGkRr1q
subsidiary_ids: []
tags:
- digital_native
- b2b
- is_ai_native
- is_venture_backed
entities:
- type: technology
term: kubernetes
job_post_count: 3
job_post_count_url: https://sumble.com/l/org/TH2y9mGkRr1q/jobs
people_count: 2
people_count_url: https://sumble.com/l/org/TH2y9mGkRr1q/people
job_post_count_growth_1y: 51.9
job_post_count_growth_1y_url: https://sumble.com/l/org/TH2y9mGkRr1q/trends/technologies
- type: job_function
term: Data Engineer
job_post_count: 1
job_post_count_url: https://sumble.com/l/org/TH2y9mGkRr1q/jobs
team_count: 1
team_count_url: https://sumble.com/l/org/TH2y9mGkRr1q/teams
people_count: 0
people_count_url: https://sumble.com/l/org/TH2y9mGkRr1q/people
people_concentration: 0.0
people_count_growth_1y: 0.25
people_count_growth_1y_url: https://sumble.com/l/org/TH2y9mGkRr1q/trends/job_functions_people
- type: advanced_query
term: technology EQ 'react'
job_post_count: 2
job_post_count_url: https://sumble.com/l/org/TH2y9mGkRr1q/jobs
team_count: 1
team_count_url: https://sumble.com/l/org/TH2y9mGkRr1q/teams
people_count: 1
people_count_url: https://sumble.com/l/org/TH2y9mGkRr1q/people
job_post_concentration: 0.0476
- type: technology_category
term: logging-observability-monitoring
granularity: aggregate
job_post_count: 4
job_post_count_url: https://sumble.com/l/org/TH2y9mGkRr1q/jobs
team_count: 2
team_count_url: https://sumble.com/l/org/TH2y9mGkRr1q/teams
people_count: 3
people_count_url: https://sumble.com/l/org/TH2y9mGkRr1q/people
- type: technology_category
term: logging-observability-monitoring
granularity: exploded
components:
- type: technology
term: datadog
job_post_count: 3
job_post_count_url: https://sumble.com/l/org/TH2y9mGkRr1q/jobs
- type: technology
term: prometheus
job_post_count: 1
job_post_count_url: https://sumble.com/l/org/TH2y9mGkRr1q/jobs
- input:
name: Nonexistent
url: nonexistent.example
attributes: {}
entities: []
matched_count: 1
total: 2
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v9/organizations/{organization_id}/intelligence-brief:
get:
tags:
- organizations
summary: Retrieve the intelligence brief for an organization
operationId: get_intelligence_brief__api_version__organizations__organization_id__intelligence_brief_get
security:
- api_token: []
parameters:
- name: organization_id
in: path
required: true
schema:
type: integer
title: Organization Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/IntelligenceBriefResponse'
- $ref: '#/components/schemas/IntelligenceBriefPendingResponse'
title: Response Get Intelligence Brief Api Version Organizations Organization Id Intelligence Brief Get
example:
id: 019d25ba-90e8-7a3c-a008-7f0bf41ac79a
credits_used: 50
credits_remaining: 9900
organization_id: 1726684
organization_slug: vanta
title: Vanta intelligence brief for Sumble
body: 'Vanta intelligence brief for Sumble
This brief is also [available on Sumble.com](https://sumble.com/l/org/MIkfQDbGSbraK/overview?intelligence_brief=1)
## What''s the Angle
Vanta is hiring into teams...
## Who To Contact First
Prioritize engineering leaders...'
sumble_url: https://sumble.com/l/org/MIkfQDbGSbraK/overview?intelligence_brief=1
'422':
description: The organization/domain does not have enough data to generate an intelligence brief. No credits are consumed.
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
example:
detail: Unfortunately, we don't have enough information for Vanta to generate an intelligence brief.
'202':
description: The brief is being generated. Retry the same URL after the `Retry-After` header. No credits are consumed.
headers:
Retry-After:
description: Suggested seconds to wait before retrying the same URL
schema:
type: integer
example: 20
content:
application/json:
example:
status: pending
organization_id: 1726684
organization_slug: vanta
message: The intelligence brief is being generated. Retry the same URL after the `Retry-After` time. No credits are consumed for this response.
/v9/organizations/{organization_id}/signals:
get:
tags:
- organizations
summary: Get organization signals
operationId: get_organization_signals__api_version__organizations__organization_id__signals_get
security:
- api_token: []
parameters:
- name: organization_id
in: path
required: true
schema:
type: integer
title: Organization Id
- name: technology_slugs
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
- type: 'null'
description: Technology slugs to filter signals by. Repeat this query parameter to filter by multiple technologies. Use POST /technologies/lookup to resolve technology names, slugs, or aliases to canonical slugs; use POST /technologies/find to search for matching technologies.
title: Technology Slugs
description: Technology slugs to filter signals by. Repeat this query parameter to filter by multiple technologies. Use POST /technologies/lookup to resolve technology names, slugs, or aliases to canonical slugs; use POST /technologies/find to search for matching technologies.
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/SignalsResponse'
example:
id: 019c2a87-11f0-78b3-b82d-cdd178cf4018
credits_used: 1
credits_remaining: 998
signals:
- title: Amazon hired Jane Doe
subtitle: Started Jun 2026
explanation: Jane Doe joined the platform team.
sales_angle: The team is expanding Kubernetes.
date: '2026-06-17T12:00:00Z'
sumble_url: https://sumble.com/orgs/amazon/signals/s/123
display_type: New hire using Kubernetes
type: technology_recent_hires
organization_name: Amazon
organization_id: 1
job_post_id: 789
person_id: 456
linkedin_url: https://www.linkedin.com/in/jane-doe
location: Seattle, WA
job_function: Engineering
priority: high
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
EnrichOrganizationsRequest:
properties:
organizations:
anyOf:
- items:
$ref: '#/components/schemas/MatchOrganizationInput'
type: array
maxItems: 1000
minItems: 1
- type: 'null'
title: Organizations
description: List of organizations to resolve and enrich. Mutually exclusive with `filter`.
filter:
anyOf:
- $ref: '#/components/schemas/Query'
- type: 'null'
description: Advanced query selecting the organizations to return. Mutually exclusive with `organizations`.
select:
$ref: '#/components/schemas/Select'
description: Dictates exactly which columns are returned.
limit:
type: integer
maximum: 200.0
minimum: 1.0
title: Limit
description: Maximum number of results to return.
default: 10
offset:
type: integer
maximum: 10000.0
minimum: 0.0
title: Offset
description: Number of results to skip.
default: 0
order_by_column:
anyOf:
- type: string
enum:
- industry
- employee_count
- employee_count_int
- first_activity_time
- last_activity_time
- jobs_count
- teams_count
- people_count
- jobs_count_growth_6mo
- cloud_spend_estimate_millions_usd
- account_score
- type: string
enum:
- people_concentration
- people_count_growth_1y
- type: string
const: job_post_concentration
- type: 'null'
title: Order By Column
description: 'Column to order by (filter mode only). Parameterized sorts (this endpoint only): `people_concentration` and `people_count_growth_1y` sort by the named job function''s people metrics — the all-time fraction of the org''s tracked people in it, and its current YoY people growth % (latest month vs. one year earlier; orgs without growth data sort last) respectively — and require `order_by_job_function`. `job_post_concentration` sorts by the all-time fraction of the org''s job posts matching `order_by_advanced_query`, which it requires. `source_data_url` is omitted for all three, since the listing page cannot reproduce their ordering.'
order_by_direction:
anyOf:
- type: string
enum:
- ASC
- DESC
- type: 'null'
title: Order By Direction
description: Direction to order by (filter mode only).
order_by_job_function:
anyOf:
- type: string
- type: 'null'
title: Order By Job Function
description: Job function whose people metrics drive the sort. Required with (and only valid with) `order_by_column="people_concentration"` or `order_by_column="people_count_growth_1y"`.
order_by_advanced_query:
anyOf:
- type: string
- type: 'null'
title: Order By Advanced Query
description: 'Advanced query whose matching job posts form the sort numerator. Required with (and only valid with) `order_by_column="job_post_concentration"`. Allowed fields: technology, technology_category, job_function, project, job_level, country. Both the matching and total job counts are all-time.'
additionalProperties: false
type: object
required:
- select
title: EnrichOrganizationsRequest
EnrichOrganizationsResponse:
properties:
id:
type: string
format: uuid
title: Id
credits_used:
type: integer
title: Credits Used
credits_remaining:
type: integer
title: Credits Remaining
organizations:
items:
$ref: '#/components/schemas/ResultRow'
type: array
title: Organizations
matched_count:
anyOf:
- type: integer
- type: 'null'
title: Matched Count
total:
type: integer
title: Total
source_data_url:
anyOf:
- type: string
maxLength: 2083
minLength: 1
format: uri
- type: 'null'
title: Source Data Url
type: object
required:
- id
- credits_used
- credits_remaining
- organizations
- total
title: EnrichOrganizationsResponse
Query:
properties:
query:
type: string
title: Query
type: object
required:
- query
title: Query
SuggestedContact:
properties:
person_id:
anyOf:
- type: integer
- type: 'null'
title: Person Id
name:
anyOf:
- type: string
- type: 'null'
title: Name
title:
anyOf:
- type: string
- type: 'null'
title: Title
linkedin_url:
anyOf:
- type: string
- type: 'null'
title: Linkedin Url
score:
anyOf:
- type: number
- type: 'null'
title: Score
type: object
title: SuggestedContact
IntelligenceBriefPendingResponse:
properties:
status:
type: string
title: Status
description: Always 'pending' for 202 responses
default: pending
organization_id:
type: integer
title: Organization Id
organization_slug:
type: string
title: Organization Slug
message:
type: string
title: Message
type: object
required:
- organization_id
- organization_slug
- message
title: IntelligenceBriefPendingResponse
description: 'Returned with HTTP 202 when the brief is being generated.
The caller should retry the same URL after the `Retry-After` header. No
credits are consumed for 202 responses.'
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
Signal:
properties:
signal_id:
anyOf:
- type: integer
- type: 'null'
title: Signal Id
title:
type: string
title: Title
subtitle:
anyOf:
- type: string
- type: 'null'
title: Subtitle
explanation:
anyOf:
- type: string
- type: 'null'
title: Explanation
sales_angle:
anyOf:
- type: string
- type: 'null'
title: Sales Angle
date:
type: string
format: date-time
title: Date
sumble_url:
anyOf:
- type: string
- type: 'null'
title: Sumble Url
display_type:
type: string
title: Display Type
type:
anyOf:
- type: string
- type: 'null'
title: Type
matched_technologies:
anyOf:
- items:
$ref: '#/components/schemas/SignalTechnology'
type: array
- type: 'null'
title: Matched Technologies
organization_name:
anyOf:
- type: string
- type: 'null'
title: Organization Name
organization_id:
anyOf:
- type: integer
- type: 'null'
title: Organization Id
job_post_id:
anyOf:
- type: integer
- type: 'null'
title: Job Post Id
person_id:
anyOf:
- type: integer
- type: 'null'
title: Person Id
linkedin_url:
anyOf:
- type: string
- type: 'null'
title: Linkedin Url
location:
anyOf:
- type: string
- type: 'null'
title: Location
job_function:
anyOf:
- type: string
- type: 'null'
title: Job Function
priority:
anyOf:
- type: string
- type: 'null'
title: Priority
suggested_contacts:
anyOf:
- $ref: '#/components/schemas/SuggestedContacts'
- type: 'null'
account_status:
anyOf:
- type: string
enum:
- customer
- prospect
- not_in_crm
- type: 'null'
title: Account Status
description: 'CRM relationship between the signal''s organization and the calling account: ''customer'' (a customer account in the calling account''s CRM), ''prospect'' (tracked in CRM but not a customer), or ''not_in_crm'' (no CRM record). Only populated when the calling account has a linked CRM seat (Salesforce or HubSpot); omitted otherwise, even when requested.'
type: object
required:
- title
- date
- display_type
title: Signal
IntelligenceBriefResponse:
properties:
id:
type: string
format: uuid
title: Id
credits_used:
type: integer
title: Credits Used
credits_remaining:
type: integer
title: Credits Remaining
organization_id:
type: integer
title: Organization Id
organization_slug:
type: string
title: Organization Slug
title:
type: string
title: Title
body:
type: string
title: Body
sumble_url:
type: string
maxLength: 2083
minLength: 1
format: uri
title: Sumble Url
type: object
required:
- id
- credits_used
- credits_remaining
- organization_id
- organization_slug
- title
- body
- sumble_url
title: IntelligenceBriefResponse
ResultRow:
properties:
input:
anyOf:
- $ref: '#/components/schemas/MatchOrganizationInput'
- type: 'null'
attributes:
anyOf:
- $ref: '#/components/schemas/Attributes'
- type: 'null'
entities:
items:
$ref: '#/components/schemas/EntityResult'
type: array
title: Entities
default: []
type: object
title: ResultRow
Attributes:
properties:
id:
anyOf:
- type: integer
- type: 'null'
title: Id
slug:
anyOf:
- type: string
- type: 'null'
title: Slug
name:
anyOf:
- type: string
- type: 'null'
title: Name
url:
anyOf:
- type: string
- type: 'null'
title: Url
employee_count:
anyOf:
- type: integer
- type: 'null'
title: Employee Count
industry:
anyOf:
- type: string
- type: 'null'
title: Industry
jobs_count:
anyOf:
- type: integer
- type: 'null'
title: Jobs Count
teams_count:
anyOf:
- type: integer
- type: 'null'
title: Teams Count
headquarters_country:
anyOf:
- type: string
- type: 'null'
title: Headquarters Country
sumble_score:
anyOf:
- type: number
- type: 'null'
title: Sumble Score
sumble_url:
anyOf:
- type: string
- type: 'null'
title: Sumble Url
parent_id:
anyOf:
- type: integer
- type: 'null'
title: Parent Id
subsidiary_ids:
anyOf:
- items:
type: integer
type: array
- type: 'null'
title: Subsidiary Ids
tags:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Tags
account_status:
anyOf:
- type: string
enum:
- customer
- prospect
- not_in_crm
- type: 'null'
title: Account Status
description: 'CRM relationship between the org and the user''s account: ''customer'' (a customer account in the user''s CRM), ''prospect'' (tracked in CRM but not a customer), or ''not_in_crm'' (no CRM record). Free (no credit cost). Only populated when the user''s account has a linked CRM seat; omitted for other users even if requested.'
funding_total_raised:
anyOf:
- type: integer
- type: 'null'
title: Funding Total Raised
description: Total funding raised across all rounds, in whole USD. LLM-extracted from SEC filings and web search; approximate, and may be unconverted for non-USD rounds.
funding_valuation:
anyOf:
- type: integer
- type: 'null'
title: Funding Valuation
description: Most recent post-money valuation, in whole USD. LLM-extracted; approximate.
funding_last_round_raised:
anyOf:
- type: integer
- type: 'null'
title: Funding Last Round Raised
description: Amount raised in the latest funding round, in whole USD. LLM-extracted; approximate.
funding_last_round_type:
anyOf:
- type: string
- type: 'null'
title: Funding Last Round Type
description: Latest funding round type, e.g. seed, series_a, private_equity.
funding_last_round_date:
anyOf:
- type: string
format: date
- type: 'null'
title: Funding Last Round Date
description: Date of the latest funding round (ISO YYYY-MM-DD).
cloud_spend_estimate_millions_usd:
anyOf:
- type: number
- type: 'null'
title: Cloud Spend Estimate Millions Usd
type: object
title: Attributes
MatchOrganizationInput:
properties:
name:
anyOf:
- type: string
- type: 'null'
title: Name
description: Organization name
url:
anyOf:
- type: string
- type: 'null'
title: Url
description: Organization website URL or domain
location:
anyOf:
- type: string
- type: 'null'
title: Location
description: Organization location (country name or code)
id:
anyOf:
- type: integer
- type: 'null'
title: Id
description: Organization Id on Sumble. When set, the row identifies a Sumble org directly and bypasses matching; name/url/location are not required.
slug:
anyOf:
- type: string
- type: 'null'
title: Slug
description: Organization slug on Sumble. When set, the row identifies a Sumble org directly and bypasses matching; name/url/location are not required.
additionalProperties: false
type: object
title: MatchOrganizationInput
SignalTechnology:
properties:
name:
type: string
title: Name
slug:
type: string
title: Slug
label:
anyOf:
- type: string
- type: 'null'
title: Label
type: object
required:
- name
- slug
title: SignalTechnology
Select:
properties:
attributes:
items:
type: string
enum:
- id
- slug
- name
- url
- employee_count
- industry
- jobs_count
- teams_count
- headquarters_country
- sumble_score
- sumble_url
- parent_id
- subsidiary_ids
- tags
- account_status
- funding_total_raised
- funding_valuation
- funding_last_round_raised
- funding_last_round_type
- funding_last_round_date
type: array
title: Attributes
description: Baseline company attributes to include. Off by default.
default: []
entities:
items:
$ref: '#/components/schemas/EntitySelection'
type: array
title: Entities
description: Per-entity metric selections.
default: []
additionalProperties: false
type: object
title: Select
SuggestedContacts:
properties:
people:
items:
$ref: '#/components/schemas/SuggestedContact'
type: array
title: People
sumble_url:
anyOf:
- type: string
- type: 'null'
# --- truncated at 32 KB (37 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/sumble/refs/heads/main/openapi/sumble-organizations-api-openapi.yml