Download OpenAPI specification:
Welcome to the Reo.dev API Documentation.
Reo.dev APIs let you access and integrate data from your Reo workspace with your existing systems and workflows. They give you access to accounts, developers, buyers, activities and lists, so you can build integrations for your own use cases.
Reo.dev provides two types of APIs:
| Type | What it gives you | Pricing | Availability |
|---|---|---|---|
| Workspace APIs | Data tied to your own Reo workspace: your segments, lists and audiences | Free, included in the default plan | Available now |
| Enrichment APIs | Open data from across Reo's dataset, not limited to your workspace | Chargeable | Coming soon |
Workspace APIs are split into Read APIs and Write APIs. Each has its own API key:
| Type | What it does | Base URL | Where to find the key |
|---|---|---|---|
| Read APIs | Retrieve data from Reo and use it in your external systems | https://integration.reo.dev |
Settings → Configurations → API Keys → Product Export & Zapier Integration |
| Write APIs | Send or import data into Reo | https://ingest.reo.dev |
Settings → Configurations → API Keys → Product Usage API |
You can copy a key directly from the API Keys page with the Copy button. Only Admins can see API keys.
Important: Read APIs and Write APIs use separate API keys, and the keys are not interchangeable. A Read key on the write host returns 401, and a Write key on the read host returns 403.
Every API uses the same layout: overview, endpoint, authentication, parameters, response, examples, error codes, enums and things to note. Enums and error codes are repeated in full under each API on purpose, so every section stands on its own. All sample data is masked: names, IDs, domains, emails and keys are placeholders.
page query parameter (defaults to 1) and return page_no, page_size and total_pages. Activity APIs return has_more instead.first_activity, latest_activity and latest_activity_time are epoch milliseconds. *_date fields are YYYY-MM-DD. Audience timestamps are ISO 8601 UTC. Ingest event_at is Unix seconds.tags and agent_tags are comma-separated strings. Unknown text fields usually come back as an empty string "".X-API-KEY.Every request needs an API key in the X-API-KEY request header. Reo.dev has two keys, one for each API type.
| Key | Used for | Location in Reo |
|---|---|---|
| Read API key | All Workspace APIs — Read endpoints on https://integration.reo.dev |
Settings → Configurations → API Keys → Product Export & Zapier Integration |
| Write API key | All Workspace APIs — Write endpoints on https://ingest.reo.dev (Lists and Ingest Data) |
Settings → Configurations → API Keys → Product Usage API |
Copy a key with the Copy button on the API Keys page. Only Admins can see API keys. If you need a key and aren't an Admin, ask your workspace Admin or contact contact@reo.dev.
| Header | Required | Applies to | Value |
|---|---|---|---|
X-API-KEY |
Yes | All APIs | Your Read or Write API key |
user |
Yes | Create a List, Add to a List | Email of the Reo workspace user making the call |
Content-Type |
Yes | All Write APIs | application/json |
| Mistake | Result |
|---|---|
X-API-KEY missing or empty on a Read API |
400 {"error":"Missing API Key"} |
| Invalid key, or a Write key, on a Read API | 403 {"error":"Invalid API Key."} |
| Missing key, or a Read key, on Create a List / Add to a List | 401 with an empty body |
| Wrong or missing key on an Ingest Data API | 400 {"response_code":400,"response":"Authentication Failure","status":"failure"} |
curl --request GET \
--url https://integration.reo.dev/segments \
--header 'X-API-KEY: <your-read-api-key>'
Returns all segments configured in your Reo workspace, including each segment's ID, name, type and owner. Use this endpoint first to discover segment IDs, then pass a segment ID into Get Accounts in a Segment or Get Developers in a Segment or Get Buyers in a Segment to pull the records inside it.
| Name | Type | Required | Description |
|---|---|---|---|
X-API-KEY |
string | Yes | Your Read API key. Find it under Settings → Configurations → API Keys → Product Export & Zapier Integration. |
None.
| Code | When it happens | Response body |
|---|---|---|
| 301 | Trailing slash in the URL (/segments/) |
Moved Permanently |
| 400 | X-API-KEY header missing or empty |
{"error":"Missing API Key"} |
| 403 | Invalid API key, or a write API key used on this host | {"error":"Invalid API Key."} |
| 404 | Wrong HTTP method (POST, DELETE) | 404 page not found |
| Field | Value | Meaning |
|---|---|---|
| type | ACCOUNT |
Segment of accounts. Use with Get Accounts in a Segment. |
| type | DEVELOPER |
Segment of developers. Use with Get Developers in a Segment. |
| type | BUYER |
Segment of buyers. Use with Get Buyers in a Segment. |
page query parameter is accepted but ignored.id is the segment ID. Pass it as segment_id to Get Accounts, Get Developers and Get Buyers in a Segment.data. There is no page_no, page_size, total_pages or request_id.owner is the email of the segment's owner.segment_tag is an empty string when no tag is set.| X-API-KEY required | string Example: <your-read-api-key> Your Read API key. Find it under Settings → Configurations → API Keys → Product Export & Zapier Integration. |
curl --request GET \ --url https://integration.reo.dev/segments \ --header 'X-API-KEY: <your-read-api-key>'
{- "data": [
- {
- "id": "7c2e4f1a-3b8d-4e6f-9a12-5d3c8b7e1f40",
- "name": "High Intent Accounts",
- "type": "ACCOUNT",
- "owner": "jane.doe@reo.dev",
- "segment_tag": "high_intent_acct_ind"
}
]
}Returns the list of accounts belonging to a specific segment in your Reo workspace, with data (firmographics, activity, tags). Use the segment ID from List Segments to scope this call.
| Name | Type | Required | Description |
|---|---|---|---|
X-API-KEY |
string | Yes | Your Read API key. Find it under Settings → Configurations → API Keys → Product Export & Zapier Integration. |
| Name | Type | Required | Description |
|---|---|---|---|
segment_id |
string (UUID) | Yes | ID of an ACCOUNT-type segment, from List Segments |
| Code | When it happens | Response body |
|---|---|---|
| 400 | X-API-KEY header missing or empty |
{"error":"Missing API Key"} |
| 403 | Invalid API key, or a write API key used on this host · Segment ID doesn't exist · Segment isn't ACCOUNT type · Segment ID is malformed or empty | Bad key: {"error":"Invalid API Key."} · Unknown or wrong-type segment: {"error":"Invalid Segment"} · Malformed or empty ID: {"error":"Invalid Segment Id."} |
| Field | Value | Meaning |
|---|---|---|
| developer_activity | HIGH |
activity_score_numeric 60–100. Strong engagement, high activity levels |
| developer_activity | MEDIUM |
activity_score_numeric 20–60. Moderate engagement, requires nurturing |
| developer_activity | LOW |
activity_score_numeric 0–20. Minimal activity, potential drop-off risk |
| customer_fit | STRONG |
Strong match to your ideal customer profile |
| customer_fit | MODERATE |
Partial match to your ideal customer profile |
| customer_fit | WEAK |
Weak match to your ideal customer profile |
| employee_count_range | 1-10, 11-50, 51-250, 251-1K, 1K-5K, 5K-10K, 10K-50K, 50K-100K, 100K+ |
Company headcount band |
| agent_data | Dynamic | All the AI columns generated via agents corresponding to the accounts within the segment will be available in this field |
id is the account ID. It is the same value as orgId in reo_account_link and account_id in Get Account Activities and Get Deanonymised Developers.page_no, page_size and total_pages."data": null, not []. This happens on a page past the last one, and on page 1 of an empty segment. page_size then reports 0. Example past the last page: {"data":null,"page_no":99999,"page_size":0,"total_pages":1}.first_activity and latest_activity are epoch milliseconds. first_activity_date and last_activity_date are YYYY-MM-DD.tags and agent_tags are comma-separated strings. tech_stack is an array.| segment_id required | string <uuid> Example: 7c2e4f1a-3b8d-4e6f-9a12-5d3c8b7e1f40 ID of an ACCOUNT-type segment, from List Segments. |
| page | integer Default: 1 Example: page=1 Page number. Defaults to 1. |
| X-API-KEY required | string Example: <your-read-api-key> Your Read API key. Find it under Settings → Configurations → API Keys → Product Export & Zapier Integration. |
curl --request GET \ --url 'https://integration.reo.dev/segment/7c2e4f1a-3b8d-4e6f-9a12-5d3c8b7e1f40/accounts?page=1' \ --header 'X-API-KEY: <your-read-api-key>'
{- "data": [
- {
- "id": "b5d1a9e2-6c4f-4a3b-8e7d-2f9c1a0b3e55",
- "country": "United States",
- "account_name": "Acme Corp",
- "account_domain": "acme.com",
- "active_developers_count": 12,
- "developer_activity": "LOW",
- "customer_fit": "STRONG",
- "first_activity_date": "2026-08-23",
- "last_activity_date": "2026-09-30",
- "first_activity": 1787497631211,
- "latest_activity": 1790745600000,
- "tags": "website views,Trial",
- "annual_revenue": "2B",
- "industry": "Computer Software",
- "tech_functions_count": {
- "ai_ml_count": 25,
- "backend_engineering_count": 304,
- "cloud_infrastructure_count": 47,
- "data_analytics_count": 404,
- "devops_platform_reliability_count": 38,
- "engineering_count": 0,
- "engineering_leadership_count": 35,
- "frontend_engineering_count": 67,
- "full_stack_count": 96,
- "gtm_ops_corporate_count": 229,
- "infrastructure_it_ops_count": 71,
- "innovation_rd_emerging_count": 9,
- "mobile_engineering_count": 4,
- "product_design_ux_count": 145,
- "program_delivery_agile_count": 146,
- "qa_automation_testing_count": 153,
- "security_compliance_count": 62,
- "total_tech_employees": 1552,
- "unclassified_count": 0
}, - "city": "San Francisco",
- "state": "California",
- "employee_count_range": "1K-5K",
- "activity_score_numeric": 2,
- "segment_id": "7c2e4f1a-3b8d-4e6f-9a12-5d3c8b7e1f40",
- "segment_name": "High Intent Accounts",
- "developer_funnel": "Exploring",
- "preferred_technology": "Python, JavaScript, Airflow, React",
- "agent_tags": "Platform Engineering Headcount",
- "founded_year": "1991",
- "funding": {
- "total_investment_usd": "",
- "last_round_amount_usd": "",
- "last_fundraise_date": "",
- "last_round_type": "",
- "total_funding_rounds": ""
}, - "agent_data": {
- "AI Scaling Score": {
- "value": "Strong Surge",
- "reason": "The account is showing a strong surge in AI Scaling, indicating increased activity and intent around expanding AI workloads. Recent signals suggest the company may be actively evaluating AI infrastructure, deployment, or optimization solutions"
}, - "Cloud Security Tech Stack": {
- "value": "Yes",
- "reason": "The company runs workloads on AWS/Azure/GCP and uses IAM, WAF, SIEM, and CSPM to secure data, access, and compliance."
}
}, - "tech_stack": [
- "Nginx",
- "Angular JS v1",
- "Bootstrap Framework"
]
}
], - "page_no": 1,
- "page_size": 10,
- "total_pages": 1
}Returns the list of developers belonging to a specific DEVELOPER-type segment, including contact details (LinkedIn, GitHub, business email), location and activity score. Use the segment ID from List Segments to scope this call.
| Name | Type | Required | Description |
|---|---|---|---|
X-API-KEY |
string | Yes | Your Read API key. Find it under Settings → Configurations → API Keys → Product Export & Zapier Integration. |
| Name | Type | Required | Description |
|---|---|---|---|
segment_id |
string (UUID) | Yes | ID of a DEVELOPER-type segment, from List Segments |
| Code | When it happens | Response body |
|---|---|---|
| 400 | X-API-KEY header missing or empty |
{"error":"Missing API Key"} |
| 403 | Invalid API key, or a write API key used on this host · Segment ID doesn't exist · Segment isn't DEVELOPER type · Segment ID is malformed or empty | Bad key: {"error":"Invalid API Key."} · Unknown or wrong-type segment: {"error":"Invalid Segment"} · Malformed or empty ID: {"error":"Invalid Segment Id."} |
| Field | Value | Meaning |
|---|---|---|
| activity_score | HIGH |
activity_score_numeric 60–100. Strong engagement, high activity levels |
| activity_score | MEDIUM |
activity_score_numeric 20–60. Moderate engagement, requires nurturing |
| activity_score | LOW |
activity_score_numeric 0–20. Minimal activity, potential drop-off risk |
| seniority | Entry Level, Architect, Director, VP, CXO, Founder |
Seniority of the developer's current role |
| employee_count_range | 1-10, 11-50, 51-250, 251-1K, 1K-5K, 5K-10K, 10K-50K, 50K-100K, 100K+ |
Headcount band of the developer's company |
id is the developer ID. Pass it as developer_id to Get Developer Activities. org_id is the account ID of the developer's company.page_no, page_size and total_pages.page=abc, page=0 and page=-1 don't error. They are treated as page 1 and return 200.latest_activity_time here, not latest_activity as on account APIs. Both are epoch milliseconds.developer_github and other contact fields are an empty string when unknown.tags and agent_tags are comma-separated strings.| segment_id required | string <uuid> Example: 2e8f6b3c-9a1d-4c7e-b5f2-8d4a6c0e9b17 ID of a DEVELOPER-type segment, from List Segments. |
| page | integer Default: 1 Example: page=1 Page number. Defaults to 1. |
| X-API-KEY required | string Example: <your-read-api-key> Your Read API key. Find it under Settings → Configurations → API Keys → Product Export & Zapier Integration. |
curl --request GET \ --url 'https://integration.reo.dev/segment/2e8f6b3c-9a1d-4c7e-b5f2-8d4a6c0e9b17/developers?page=1' \ --header 'X-API-KEY: <your-read-api-key>'
{- "data": [
- {
- "id": "d3f7a1c5-8b2e-4d6a-9c0f-1e5b7a3d9c22",
- "org_id": "b5d1a9e2-6c4f-4a3b-8e7d-2f9c1a0b3e55",
- "developer_name": "John Doe",
- "developer_first_name": "John",
- "developer_last_name": "Doe",
- "developer_github": "",
- "developer_business_email": "john.doe@acme.com",
- "first_activity_date": "2024-10-01",
- "last_activity_date": "2026-09-29",
- "first_activity": 1727747019460,
- "latest_activity_time": 1790648908163,
- "tags": "buyer engaged,Product Login",
- "city": "Austin",
- "state": "Texas",
- "country": "United States",
- "designation": "Chief Executive Officer",
- "seniority": "CXO",
- "activity_score": "HIGH",
- "activity_score_numeric": 100,
- "segment_id": "2e8f6b3c-9a1d-4c7e-b5f2-8d4a6c0e9b17",
- "segment_name": "Highly Active Developers",
- "agent_tags": "",
- "employee_count_range": "11-50",
- "reo_developer_link": "https://web.reo.dev/dashboard/developers?devId=d3f7a1c5-8b2e-4d6a-9c0f-1e5b7a3d9c22"
}
], - "page_no": 1,
- "page_size": 100,
- "total_pages": 5
}Returns the list of buyers (contacts) belonging to a specific BUYER-type segment, with contact and profile details. Use the segment ID from List Segments to scope this call.
| Name | Type | Required | Description |
|---|---|---|---|
X-API-KEY |
string | Yes | Your Read API key. Find it under Settings → Configurations → API Keys → Product Export & Zapier Integration. |
| Name | Type | Required | Description |
|---|---|---|---|
segment_id |
string (UUID) | Yes | ID of a BUYER-type segment, from List Segments |
| Code | When it happens | Response body |
|---|---|---|
| 400 | X-API-KEY header missing or empty |
{"error":"Missing API Key"} |
| 403 | Invalid API key, or a write API key used on this host · Segment ID doesn't exist · Segment isn't BUYER type · Segment ID is malformed or empty | Bad key: {"error":"Invalid API Key."} · Unknown or wrong-type segment: {"error":"Invalid Segment"} · Malformed or empty ID: {"error":"Invalid Segment Id."} |
| Field | Value | Meaning |
|---|---|---|
| activity_score | HIGH |
activity_score_numeric 60–100. Strong engagement, high activity levels |
| activity_score | MEDIUM |
activity_score_numeric 20–60. Moderate engagement, requires nurturing |
| activity_score | LOW |
activity_score_numeric 0–20. Minimal activity, potential drop-off risk |
| seniority | Entry Level, Architect, Director, VP, CXO, Founder |
Seniority of the buyer's current role |
| employee_count_range | 1-10, 11-50, 51-250, 251-1K, 1K-5K, 5K-10K, 10K-50K, 50K-100K, 100K+ |
Headcount band of the buyer's company |
developer_ prefix even though each record is a buyer.id is the buyer ID. org_id is the account ID of the buyer's company. reo_developer_link points to the Buyers page in Reo.page_no, page_size and total_pages.tags, agent_tags and location fields are an empty string when unknown.| segment_id required | string <uuid> Example: 9a4c2e7f-1b3d-4f8a-a6e9-3c5d7b1f0e84 ID of a BUYER-type segment, from List Segments. |
| page | integer Default: 1 Example: page=1 Page number. Defaults to 1. |
| X-API-KEY required | string Example: <your-read-api-key> Your Read API key. Find it under Settings → Configurations → API Keys → Product Export & Zapier Integration. |
curl --request GET \ --url 'https://integration.reo.dev/segment/9a4c2e7f-1b3d-4f8a-a6e9-3c5d7b1f0e84/buyers?page=1' \ --header 'X-API-KEY: <your-read-api-key>'
{- "data": [
- {
- "id": "e6a2c8f4-3d1b-4e9a-8f5c-7b0d2a4e6c13",
- "org_id": "b5d1a9e2-6c4f-4a3b-8e7d-2f9c1a0b3e55",
- "developer_name": "Jane Smith",
- "developer_first_name": "Jane",
- "developer_last_name": "Smith",
- "developer_github": "",
- "developer_business_email": "jane.smith@acme.com",
- "first_activity_date": "2025-09-23",
- "last_activity_date": "2026-10-06",
- "first_activity": 1758670137434,
- "latest_activity_time": 1791252391065,
- "tags": "",
- "city": "",
- "state": "",
- "country": "Australia",
- "designation": "Head of Sales, APAC",
- "seniority": "Entry Level",
- "activity_score": "LOW",
- "activity_score_numeric": 0,
- "segment_id": "9a4c2e7f-1b3d-4f8a-a6e9-3c5d7b1f0e84",
- "segment_name": "Active Buyers",
- "agent_tags": "",
- "employee_count_range": "51-250",
- "reo_developer_link": "https://web.reo.dev/dashboard/buyers?devId=e6a2c8f4-3d1b-4e9a-8f5c-7b0d2a4e6c13"
}
], - "page_no": 1,
- "page_size": 100,
- "total_pages": 13
}Returns all "Lists" created in your Reo workspace, along with their source and metadata. Use the list ID from here to query Get Accounts in a List or Get Developers in a List.
| Name | Type | Required | Description |
|---|---|---|---|
X-API-KEY |
string | Yes | Your Read API key. Find it under Settings → Configurations → API Keys → Product Export & Zapier Integration. |
None.
| Code | When it happens | Response body |
|---|---|---|
| 400 | X-API-KEY header missing or empty |
{"error":"Missing API Key"} |
| 403 | Invalid API key, or a write API key used on this host | {"error":"Invalid API Key."} |
| 404 | Wrong HTTP method (POST) | 404 page not found |
| Field | Value | Meaning |
|---|---|---|
| type | ACCOUNT |
List of accounts. Use with Get Accounts in a List |
| type | DEVELOPER |
List of developers. Use with Get Developers in a List |
| source | API |
List created via API |
| source | IMPORT |
List imported via CSV |
| source | CLONE |
List cloned from another list |
| source | AGENT |
List created by an Agent |
| source | CRM |
List imported from a CRM |
| source | MCP |
List created via MCP |
id is the list ID. Pass it as list_id to APIs - Get Accounts in a List, Get Developers in a List and Add to a Listcount is the number of records in the list.| X-API-KEY required | string Example: <your-read-api-key> Your Read API key. Find it under Settings → Configurations → API Keys → Product Export & Zapier Integration. |
curl --request GET \ --url https://integration.reo.dev/lists \ --header 'X-API-KEY: <your-read-api-key>'
{- "data": [
- {
- "id": "4b9e1d7c-2a6f-4c3e-9d8b-5f1a7c3e0d26",
- "name": "Companies Scaling Cloud and DevOps",
- "description": "",
- "type": "ACCOUNT",
- "count": 278,
- "source": "AGENT",
- "enriched": true
}
]
}Returns the list of accounts belonging to a specific list in your Reo workspace, with data (firmographics, technographics, funding etc). Use the list ID from List of "Lists" to scope this call.
| Name | Type | Required | Description |
|---|---|---|---|
X-API-KEY |
string | Yes | Your Read API key. Find it under Settings → Configurations → API Keys → Product Export & Zapier Integration. |
| Name | Type | Required | Description |
|---|---|---|---|
list_id |
string (UUID) | Yes | ID of an ACCOUNT-type list, from List of "Lists" |
| Code | When it happens | Response body |
|---|---|---|
| 400 | X-API-KEY header missing or empty · page isn't a positive integer (for example page=abc) |
Missing key: {"error":"Missing API Key"} · Bad page: {"error":"page must be a positive integer, got \"abc\""} |
| 403 | Invalid API key, or a write API key used on this host · List ID doesn't exist or is malformed · List isn't ACCOUNT type | Bad key: {"error":"Invalid API Key."} · Unknown or malformed list: {"error":"Invalid List Id."} · Wrong-type list: {"error":"List is not an ACCOUNT type list."} |
| Field | Value | Meaning |
|---|---|---|
| developer_activity | HIGH |
activity_score_numeric 60–100. Strong engagement, high activity levels |
| developer_activity | MEDIUM |
activity_score_numeric 20–60. Moderate engagement, requires nurturing |
| developer_activity | LOW |
activity_score_numeric 0–20. Minimal activity, potential drop-off risk |
| developer_activity | "" (empty) |
No developer activity recorded for the account |
| customer_fit | STRONG |
Strong match to your ideal customer profile |
| customer_fit | MODERATE |
Partial match to your ideal customer profile |
| customer_fit | WEAK |
Weak match to your ideal customer profile |
| employee_count_range | 1-10, 11-50, 51-250, 251-1K, 1K-5K, 5K-10K, 10K-50K, 50K-100K, 100K+ |
Company headcount band |
| agent_data | Dynamic | All the AI columns generated via agents corresponding to the accounts within the list will be available in this field |
| user_input | Dynamic | All the columns imported during List Upload or CRM Upload corresponding to the accounts within the list will be available in this field |
id is the account ID. It is the same value as orgId in reo_account_link and account_id in Get Account Activities and Get Deanonymised Developers."data": [] (an empty array, unlike segment APIs which return null) and page_size 0. Example: {"data":[],"page_no":99999,"page_size":0,"total_pages":10}.page returns 400 here instead of falling back to page 1.developer_activity as "", first_activity / latest_activity as 0, and empty activity dates.first_activity and latest_activity are epoch milliseconds. tags and agent_tags are comma-separated strings. tech_stack is an array.| list_id required | string <uuid> Example: 4b9e1d7c-2a6f-4c3e-9d8b-5f1a7c3e0d26 ID of an ACCOUNT-type list, from List of "Lists". |
| page | integer >= 1 Default: 1 Example: page=1 Page number. Defaults to 1. Must be a positive integer. |
| X-API-KEY required | string Example: <your-read-api-key> Your Read API key. Find it under Settings → Configurations → API Keys → Product Export & Zapier Integration. |
curl --request GET \ --url 'https://integration.reo.dev/list/4b9e1d7c-2a6f-4c3e-9d8b-5f1a7c3e0d26/accounts?page=1' \ --header 'X-API-KEY: <your-read-api-key>'
{- "data": [
- {
- "id": "c8e4b2a6-5f1d-4a9c-b3e7-6d2f8a0c4b91",
- "country": "United Kingdom",
- "account_name": "Globex Ltd",
- "account_domain": "globex.com",
- "active_developers_count": 0,
- "developer_activity": "",
- "customer_fit": "STRONG",
- "first_activity_date": "",
- "last_activity_date": "",
- "first_activity": 0,
- "latest_activity": 0,
- "tags": "Trial",
- "annual_revenue": "$50M-$100M",
- "industry": "Financial Services",
- "tech_functions_count": {
- "ai_ml_count": 0,
- "backend_engineering_count": 5,
- "cloud_infrastructure_count": 4,
- "data_analytics_count": 2,
- "devops_platform_reliability_count": 1,
- "engineering_count": 0,
- "engineering_leadership_count": 1,
- "frontend_engineering_count": 0,
- "full_stack_count": 0,
- "gtm_ops_corporate_count": 45,
- "infrastructure_it_ops_count": 8,
- "innovation_rd_emerging_count": 0,
- "mobile_engineering_count": 0,
- "product_design_ux_count": 3,
- "program_delivery_agile_count": 6,
- "qa_automation_testing_count": 0,
- "security_compliance_count": 4,
- "total_tech_employees": 76,
- "unclassified_count": 0
}, - "city": "London",
- "state": "Greater London",
- "employee_count_range": "251-1K",
- "activity_score_numeric": 0,
- "list_id": "4b9e1d7c-2a6f-4c3e-9d8b-5f1a7c3e0d26",
- "list_name": "Target Accounts Q4",
- "developer_funnel": "Exploring",
- "preferred_technology": "JavaScript",
- "agent_tags": "Engineer Headcount Category",
- "founded_year": "1945",
- "tech_stack": [
- "google_analytics",
- "segment",
- "mongodb",
- "salesforce",
- "postgresql",
- "atlassian_jira"
], - "funding": {
- "total_investment_usd": "null",
- "last_round_amount_usd": "",
- "last_fundraise_date": "",
- "last_round_type": "",
- "total_funding_rounds": ""
}, - "user_input": {
- "org_id": "c8e4b2a6-5f1d-4a9c-b3e7-6d2f8a0c4b91",
- "tenant_id": "tnt_7f3a2c1d9e",
- "hs_funnel_stage": "Exploring"
}, - "agent_data": {
- "DevOps Engineers Count": {
- "value": "8",
- "reason": ""
}
}
}
], - "page_no": 1,
- "page_size": 100,
- "total_pages": 10
}Returns the set of developers present in a specific List, with the same enrichment metadata returned by Get Developers in a Segment. Use the list ID from List of "Lists" to scope this call.
| Name | Type | Required | Description |
|---|---|---|---|
X-API-KEY |
string | Yes | Your Read API key. Find it under Settings → Configurations → API Keys → Product Export & Zapier Integration. |
| Name | Type | Required | Description |
|---|---|---|---|
list_id |
string (UUID) | Yes | ID of a DEVELOPER-type list, from List of "Lists" |
| Code | When it happens | Response body |
|---|---|---|
| 400 | X-API-KEY header missing or empty · page isn't a positive integer (for example page=abc) |
Missing key: {"error":"Missing API Key"} · Bad page: {"error":"page must be a positive integer, got \"abc\""} |
| 403 | Invalid API key, or a write API key used on this host · List ID doesn't exist or is malformed · List isn't DEVELOPER type | Bad key: {"error":"Invalid API Key."} · Unknown or malformed list: {"error":"Invalid List Id."} · Wrong-type list: {"error":"List is not a DEVELOPER type list."} |
| Field | Value | Meaning |
|---|---|---|
| activity_score | HIGH |
activity_score_numeric 60–100. Strong engagement, high activity levels |
| activity_score | MEDIUM |
activity_score_numeric 20–60. Moderate engagement, requires nurturing |
| activity_score | LOW |
activity_score_numeric 0–20. Minimal activity, potential drop-off risk |
| seniority | Entry Level, Architect, Director, VP, CXO, Founder |
Seniority of the developer's current role |
| employee_count_range | 1-10, 11-50, 51-250, 251-1K, 1K-5K, 5K-10K, 10K-50K, 50K-100K, 100K+ |
Headcount band of the developer's company |
id is the developer ID. Pass it as developer_id to Get Developer Activities. org_id is the account ID of the developer's company.page returns 400 here instead of falling back to page 1.latest_activity_time and first_activity are epoch milliseconds. tags and agent_tags are comma-separated strings.| list_id required | string <uuid> Example: 5c0f2e8d-3b7a-4d4f-ae9c-6a2b8d4f1e37 ID of a DEVELOPER-type list, from List of "Lists". |
| page | integer >= 1 Default: 1 Example: page=1 Page number. Defaults to 1. Must be a positive integer. |
| X-API-KEY required | string Example: <your-read-api-key> Your Read API key. Find it under Settings → Configurations → API Keys → Product Export & Zapier Integration. |
curl --request GET \ --url 'https://integration.reo.dev/list/5c0f2e8d-3b7a-4d4f-ae9c-6a2b8d4f1e37/developers?page=1' \ --header 'X-API-KEY: <your-read-api-key>'
{- "data": [
- {
- "id": "f1b5d9a3-7c2e-4b8f-a0d6-4e8c2a6b0f58",
- "org_id": "a7c3e9b1-4d5f-4e2a-9b6c-8f0d2e4a6c73",
- "developer_name": "Alex Johnson",
- "developer_first_name": "Alex",
- "developer_last_name": "Johnson",
- "developer_business_email": "alex.johnson@initech.io",
- "first_activity_date": "2025-08-05",
- "last_activity_date": "2025-11-11",
- "first_activity": 1754382618793,
- "latest_activity_time": 1762890871555,
- "tags": "Product Login",
- "city": "Stockholm",
- "state": "Stockholm County",
- "country": "Sweden",
- "designation": "Head of Developer Experience",
- "seniority": "Entry Level",
- "activity_score": "LOW",
- "activity_score_numeric": 1.81,
- "list_id": "5c0f2e8d-3b7a-4d4f-ae9c-6a2b8d4f1e37",
- "list_name": "Product Signups Q3",
- "agent_tags": "",
- "employee_count_range": "11-50",
- "reo_developer_link": "https://web.reo.dev/dashboard/developers?devId=f1b5d9a3-7c2e-4b8f-a0d6-4e8c2a6b0f58"
}
], - "page_no": 1,
- "page_size": 100,
- "total_pages": 13
}Returns all deanonymized developers present in an account, along with contact and profile metadata (LinkedIn, GitHub, business email, location, designation, activity score).
| Name | Type | Required | Description |
|---|---|---|---|
X-API-KEY |
string | Yes | Your Read API key. Find it under Settings → Configurations → API Keys → Product Export & Zapier Integration. |
| Name | Type | Required | Description |
|---|---|---|---|
account_id |
string (UUID) | Yes | Account ID (id from the account APIs) |
| Code | When it happens | Response body |
|---|---|---|
| 400 | X-API-KEY header missing or empty · page isn't a positive integer (page=abc, page=0) |
Missing key: {"error":"Missing API Key"} · Bad page: {"error":"page must be a positive integer, got \"abc\""} |
| 403 | Invalid API key, or a write API key used on this host · Account ID doesn't exist | Bad key: {"error":"Invalid API Key."} · Unknown account: {"error":"Invalid Account Id."} |
| Field | Value | Meaning |
|---|---|---|
| activity_score | HIGH |
activity_score_numeric 60–100. Strong engagement, high activity levels |
| activity_score | MEDIUM |
activity_score_numeric 20–60. Moderate engagement, requires nurturing |
| activity_score | LOW |
activity_score_numeric 0–20. Minimal activity, potential drop-off risk |
| seniority | Entry Level, Architect, Director, VP, CXO, Founder |
Seniority of the developer's current role |
| employee_count_range | 1-10, 11-50, 51-250, 251-1K, 1K-5K, 5K-10K, 10K-50K, 50K-100K, 100K+ |
Headcount band of the developer's company |
id is the developer ID. Pass it as developer_id to Get Developer Activities. org_id matches the account_id you called with.page_no, page_size and total_pages. An invalid page returns 400.first_activity and latest_activity_time are epoch milliseconds. tags and agent_tags are comma-separated strings.| account_id required | string <uuid> Example: 1a9f5c3e-7b2d-4e8a-a4c6-0d8f2b6e4a19 Account ID ( |
| page | integer >= 1 Default: 1 Example: page=1 Page number. Defaults to 1. Must be a positive integer. |
| X-API-KEY required | string Example: <your-read-api-key> Your Read API key. Find it under Settings → Configurations → API Keys → Product Export & Zapier Integration. |
curl --request GET \ --url 'https://integration.reo.dev/account/1a9f5c3e-7b2d-4e8a-a4c6-0d8f2b6e4a19/developers?page=1' \ --header 'X-API-KEY: <your-read-api-key>'
{- "data": [
- {
- "id": "d3f7a1c5-8b2e-4d6a-9c0f-1e5b7a3d9c22",
- "org_id": "1a9f5c3e-7b2d-4e8a-a4c6-0d8f2b6e4a19",
- "developer_name": "John Doe",
- "developer_first_name": "John",
- "developer_last_name": "Doe",
- "developer_business_email": "john.doe@reo.dev",
- "first_activity_date": "2026-09-11",
- "last_activity_date": "2026-10-06",
- "first_activity": 1789111415000,
- "latest_activity_time": 1791252968000,
- "tags": "Repo Visitor,Docs Reader",
- "city": "Tokyo",
- "state": "Tokyo",
- "country": "Japan",
- "designation": "Senior Software Engineer",
- "seniority": "Entry Level",
- "activity_score": "MEDIUM",
- "activity_score_numeric": 38.41,
- "agent_tags": "",
- "employee_count_range": "100K+",
- "reo_developer_link": "https://web.reo.dev/dashboard/developers?devId=d3f7a1c5-8b2e-4d6a-9c0f-1e5b7a3d9c22"
}
], - "page_no": 1,
- "page_size": 66,
- "total_pages": 1
}Returns detailed profile fields for a single account, without needing a segment ID. Identify the account by either org_id or domain.
| Name | Type | Required | Description |
|---|---|---|---|
X-API-KEY |
string | Yes | Your Read API key. Find it under Settings → Configurations → API Keys → Product Export & Zapier Integration. |
None.
| Code | When it happens | Response body |
|---|---|---|
| 400 | X-API-KEY header missing or empty · Neither org_id nor domain sent, or domain= is empty · No account matches the domain · org_id is unknown or malformed |
Missing key: {"error":"Missing API Key"} · No identifier: {"error":"Either domain or org_id query param is required."} · Unknown domain: {"error":"No account matches the given identifier."} · Bad org_id: {"error":"Invalid Account Id."} |
| 403 | Invalid API key, or a write API key used on this host | {"error":"Invalid API Key."} |
| Field | Value | Meaning |
|---|---|---|
| developer_activity | HIGH |
activity_score_numeric 60–100. Strong engagement, high activity levels |
| developer_activity | MEDIUM |
activity_score_numeric 20–60. Moderate engagement, requires nurturing |
| developer_activity | LOW |
activity_score_numeric 0–20. Minimal activity, potential drop-off risk |
| developer_activity | "" (empty) |
No developer activity recorded for the account |
| customer_fit | STRONG |
Strong match to your ideal customer profile |
| customer_fit | MODERATE |
Partial match to your ideal customer profile |
| customer_fit | WEAK |
Weak match to your ideal customer profile |
| employee_count_range | 1-10, 11-50, 51-250, 251-1K, 1K-5K, 5K-10K, 10K-50K, 50K-100K, 100K+ |
Company headcount band |
data is a single object, not an array.org_id and domain are sent, the call returns 200 and the account is resolved by org_id.id is the account ID.funding value is a string, never a number. An empty value can come back as "" or as the literal string "null".first_activity and latest_activity are epoch milliseconds. tags and agent_tags are comma-separated strings.| org_id | string <uuid> Example: org_id=1a9f5c3e-7b2d-4e8a-a4c6-0d8f2b6e4a19 Account ID. Required: One of |
| domain | string Example: domain=reo.dev Core domain of the account, for example |
| X-API-KEY required | string Example: <your-read-api-key> Your Read API key. Find it under Settings → Configurations → API Keys → Product Export & Zapier Integration. |
curl --request GET \ --url 'https://integration.reo.dev/account/details?domain=reo.dev' \ --header 'X-API-KEY: <your-read-api-key>'
{- "data": {
- "id": "1a9f5c3e-7b2d-4e8a-a4c6-0d8f2b6e4a19",
- "country": "United States",
- "account_name": "Reo.Dev",
- "account_domain": "reo.dev",
- "active_developers_count": 2,
- "developer_activity": "LOW",
- "customer_fit": "STRONG",
- "first_activity_date": "2025-11-25",
- "last_activity_date": "2026-01-23",
- "first_activity": 1764036397000,
- "latest_activity": 1769148253000,
- "tags": "Demo Page,Product Sign-up",
- "annual_revenue": "45338922400",
- "industry": "Computer Software",
- "tech_functions_count": {
- "ai_ml_count": 34,
- "backend_engineering_count": 333,
- "cloud_infrastructure_count": 52,
- "data_analytics_count": 118,
- "devops_platform_reliability_count": 41,
- "engineering_count": 0,
- "engineering_leadership_count": 27,
- "frontend_engineering_count": 88,
- "full_stack_count": 64,
- "gtm_ops_corporate_count": 910,
- "infrastructure_it_ops_count": 75,
- "innovation_rd_emerging_count": 12,
- "mobile_engineering_count": 19,
- "product_design_ux_count": 140,
- "program_delivery_agile_count": 210,
- "qa_automation_testing_count": 164,
- "security_compliance_count": 58,
- "total_tech_employees": 2986,
- "unclassified_count": 0
}, - "city": "San Francisco",
- "state": "California",
- "employee_count_range": "10K-50K",
- "activity_score_numeric": 1,
- "developer_funnel": "Building",
- "preferred_technology": "Python, JavaScript, React",
- "agent_tags": "Signaling Platform Team,IDP Readiness Assessment",
- "founded_year": "1947",
- "tech_stack": [
- "Akamai",
- "Android",
- "Apache",
- "Docker",
- "Google Analytics"
], - "funding": {
- "total_investment_usd": "49173844",
- "last_round_amount_usd": "49173844",
- "last_fundraise_date": "2022-11-09",
- "last_round_type": "Post-IPO Debt",
- "total_funding_rounds": "1"
}
}
}Get activity timelines for accounts and developers, and the valid activity sources and types to filter them by.
Master API to refer activity_type and activity_source. Returns every valid activity source and the activity types allowed for each, for use as filters in Get Account Activities and Get Developer Activities.
| Name | Type | Required | Description |
|---|---|---|---|
X-API-KEY |
string | Yes | Your Read API key. Find it under Settings → Configurations → API Keys → Product Export & Zapier Integration. |
None.
| Code | When it happens | Response body |
|---|---|---|
| 400 | X-API-KEY header missing or empty |
{"error":"Missing API Key"} |
| 403 | Invalid API key, or a write API key used on this host | {"error":"Invalid API Key."} |
| Field | Value | Meaning |
|---|---|---|
| activity_source | GITHUB |
GitHub |
| activity_source | DOCUMENT |
Documentation |
| activity_source | WEBSITE |
Website |
| activity_source | PRODUCT_JS |
Product (JS tracking) |
| activity_source | CODE_INTERACTIONS |
Code interactions |
| activity_source | SLACK |
Slack |
| activity_source | LINKEDIN |
|
| activity_source | PRODUCT_API |
Product API (usage sent through the Add Telemetry Data and Add Custom Product Data APIs) |
| activity_type (GITHUB) | FORK |
Forked repository |
| activity_type (GITHUB) | STAR |
Starred repository |
| activity_type (GITHUB) | COMMENT |
Commented |
| activity_type (GITHUB) | ISSUE_CREATION |
Created an issue |
| activity_type (GITHUB) | PULL_REQUEST |
Opened a pull request |
| activity_type (GITHUB) | WATCH |
Watched repository |
activity_types.request_id in the body as well as in the X-Request-Id header.GET /v1/activity-types. Use /activities/types.| X-API-KEY required | string Example: <your-read-api-key> Your Read API key. Find it under Settings → Configurations → API Keys → Product Export & Zapier Integration. |
curl --request GET \ --url https://integration.reo.dev/activities/types \ --header 'X-API-KEY: <your-read-api-key>'
{- "data": [
- {
- "activity_source": "GITHUB",
- "label": "GitHub",
- "activity_types": [
- {
- "activity_type": "FORK",
- "label": "Forked repository"
}, - {
- "activity_type": "STAR",
- "label": "Starred repository"
}, - {
- "activity_type": "COMMENT",
- "label": "Commented"
}, - {
- "activity_type": "ISSUE_CREATION",
- "label": "Created an issue"
}, - {
- "activity_type": "PULL_REQUEST",
- "label": "Opened a pull request"
}, - {
- "activity_type": "WATCH",
- "label": "Watched repository"
}
]
}
], - "request_id": "string"
}Returns all activities performed by a specific developer. Supports filtering by activity type and activity source.
| Name | Type | Required | Description |
|---|---|---|---|
X-API-KEY |
string | Yes | Your Read API key. Find it under Settings → Configurations → API Keys → Product Export & Zapier Integration. |
| Name | Type | Required | Description |
|---|---|---|---|
developer_id |
string (UUID) | Yes | Developer ID (id from the developer APIs, or developer_id from Get Account Activities) |
Narrow the activities returned by source, or by source and type together.
| Name | Type | Required | Description |
|---|---|---|---|
activity_source |
string | No. Required when activity_type is set |
Filter by activity source |
activity_type |
string | No | Filter by activity type. Must be valid for the activity_source sent |
How the filters work
?activity_source=GITHUB returns every GitHub activity.?activity_source=GITHUB&activity_type=STAR returns only GitHub stars.activity_type can't be sent on its own. It must come with activity_source, and it must be valid for that source, or the call returns 400.activity_source values: GITHUB, DOCUMENT, WEBSITE, PRODUCT_JS, CODE_INTERACTIONS, SLACK, LINKEDIN, PRODUCT_API.activity_type values allowed under each source, call Get Activity Types (GET https://integration.reo.dev/activities/types).GET https://integration.reo.dev/developer/<developer_id>/activities?activity_source=GITHUB&activity_type=PULL_REQUEST
| Code | When it happens | Response body |
|---|---|---|
| 400 | X-API-KEY header missing or empty · activity_type sent without activity_source · Unknown activity_source · activity_type not valid for the activity_source sent |
Missing key: {"error":"Missing API Key"} · Type without source: {"error":"activity_source is required when activity_type is set; see GET /v1/activity-types for valid pairs"} · Unknown source: {"error":"unknown activity_source \"FOOBAR\"; see GET /v1/activity-types for valid values"} · Invalid pair: {"error":"activity_type \"PAGE_VISIT\" is not valid for activity_source \"GITHUB\"; see GET /v1/activity-types for valid pairs"} |
| 403 | Invalid API key, or a write API key used on this host · Developer ID doesn't exist | Bad key: {"error":"Invalid API Key."} · Unknown developer: {"error":"Invalid Developer Id."} |
| Field | Value | Meaning |
|---|---|---|
| activity_source | GITHUB |
GitHub |
| activity_source | DOCUMENT |
Documentation |
| activity_source | WEBSITE |
Website |
| activity_source | PRODUCT_JS |
Product (JS tracking) |
| activity_source | CODE_INTERACTIONS |
Code interactions |
| activity_source | SLACK |
Slack |
| activity_source | LINKEDIN |
|
| activity_source | PRODUCT_API |
Product API (usage sent through the Add Telemetry Data and Add Custom Product Data APIs) |
| activity_type (GITHUB) | FORK |
Forked repository |
| activity_type (GITHUB) | STAR |
Starred repository |
| activity_type (GITHUB) | COMMENT |
Commented |
| activity_type (GITHUB) | ISSUE_CREATION |
Created an issue |
| activity_type (GITHUB) | PULL_REQUEST |
Opened a pull request |
| activity_type (GITHUB) | WATCH |
Watched repository |
activity_type values depend on the activity_source. Call Get Activity Types for the full list of valid pairs.GET /v1/activity-types. The live endpoint is GET https://integration.reo.dev/activities/types.data and has_more. There is no page_no, page_size or total_pages.actor, developer_id, developer_linkedin or count, and there are account_name, source_type and source_url.null (account_name, copied_text, developer_designation, country, source_type). Handle nulls on every field.activity_date is YYYY-MM-DD.| developer_id required | string <uuid> Example: d3f7a1c5-8b2e-4d6a-9c0f-1e5b7a3d9c22 Developer ID ( |
| activity_source | string Enum: "GITHUB" "DOCUMENT" "WEBSITE" "PRODUCT_JS" "CODE_INTERACTIONS" "SLACK" "LINKEDIN" "PRODUCT_API" Example: activity_source=GITHUB Filter by activity source. Required: No. Required when |
| activity_type | string Example: activity_type=COMMENT Filter by activity type. Must be valid for the |
| X-API-KEY required | string Example: <your-read-api-key> Your Read API key. Find it under Settings → Configurations → API Keys → Product Export & Zapier Integration. |
curl --request GET \ --url 'https://integration.reo.dev/developer/d3f7a1c5-8b2e-4d6a-9c0f-1e5b7a3d9c22/activities' \ --header 'X-API-KEY: <your-read-api-key>'
{- "data": [
- {
- "page": "reo-dev/sample-repo",
- "account_name": null,
- "activity_type": "COMMENT",
- "activity_source": "GITHUB",
- "copied_text": null,
- "developer_designation": null,
- "country": null,
- "activity_date": "2026-10-06",
- "source_type": null,
}
], - "has_more": false
}Returns all activities recorded for a given account, including which developer performed each activity. Supports filtering by activity type and activity source.
| Name | Type | Required | Description |
|---|---|---|---|
X-API-KEY |
string | Yes | Your Read API key. Find it under Settings → Configurations → API Keys → Product Export & Zapier Integration. |
| Name | Type | Required | Description |
|---|---|---|---|
account_id |
string (UUID) | Yes | Account ID (id from the account APIs) |
Narrow the activities returned by source, or by source and type together.
| Name | Type | Required | Description |
|---|---|---|---|
activity_source |
string | No. Required when activity_type is set |
Filter by activity source |
activity_type |
string | No | Filter by activity type. Must be valid for the activity_source sent |
How the filters work
?activity_source=GITHUB returns every GitHub activity.?activity_source=GITHUB&activity_type=STAR returns only GitHub stars.activity_type can't be sent on its own. It must come with activity_source, and it must be valid for that source, or the call returns 400.activity_source values: GITHUB, DOCUMENT, WEBSITE, PRODUCT_JS, CODE_INTERACTIONS, SLACK, LINKEDIN, PRODUCT_API.activity_type values allowed under each source, call Get Activity Types (GET https://integration.reo.dev/activities/types).GET https://integration.reo.dev/account/<account_id>/activities?activity_source=GITHUB&activity_type=PULL_REQUEST
| Code | When it happens | Response body |
|---|---|---|
| 400 | X-API-KEY header missing or empty · activity_type sent without activity_source · Unknown activity_source · activity_type not valid for the activity_source sent |
Missing key: {"error":"Missing API Key"} · Type without source: {"error":"activity_source is required when activity_type is set; see GET /v1/activity-types for valid pairs"} · Unknown source: {"error":"unknown activity_source \"FOOBAR\"; see GET /v1/activity-types for valid values"} · Invalid pair: {"error":"activity_type \"PAGE_VISIT\" is not valid for activity_source \"GITHUB\"; see GET /v1/activity-types for valid pairs"} |
| 403 | Invalid API key, or a write API key used on this host · Account ID doesn't exist | Bad key: {"error":"Invalid API Key."} · Unknown account: {"error":"Invalid Account Id."} |
| Field | Value | Meaning |
|---|---|---|
| activity_source | GITHUB |
GitHub |
| activity_source | DOCUMENT |
Documentation |
| activity_source | WEBSITE |
Website |
| activity_source | PRODUCT_JS |
Product (JS tracking) |
| activity_source | CODE_INTERACTIONS |
Code interactions |
| activity_source | SLACK |
Slack |
| activity_source | LINKEDIN |
|
| activity_source | PRODUCT_API |
Product API (usage sent through the Add Telemetry Data and Add Custom Product Data APIs) |
| activity_type (GITHUB) | FORK |
Forked repository |
| activity_type (GITHUB) | STAR |
Starred repository |
| activity_type (GITHUB) | COMMENT |
Commented |
| activity_type (GITHUB) | ISSUE_CREATION |
Created an issue |
| activity_type (GITHUB) | PULL_REQUEST |
Opened a pull request |
| activity_type (GITHUB) | WATCH |
Watched repository |
activity_type values depend on the activity_source. Call Get Activity Types for the full list of valid pairs.data and has_more. There is no page_no, page_size or total_pages.has_more: true means more activities exist beyond this response.developer_id is the ID of the developer who did the activity. Use it with Get Developer Activities.copied_text is null unless the activity copied text. activity_date is YYYY-MM-DD. count is the number of times the activity happened.| account_id required | string <uuid> Example: 1a9f5c3e-7b2d-4e8a-a4c6-0d8f2b6e4a19 Account ID ( |
| activity_source | string Enum: "GITHUB" "DOCUMENT" "WEBSITE" "PRODUCT_JS" "CODE_INTERACTIONS" "SLACK" "LINKEDIN" "PRODUCT_API" Example: activity_source=GITHUB Filter by activity source. Required: No. Required when |
| activity_type | string Example: activity_type=COMMENT Filter by activity type. Must be valid for the |
| X-API-KEY required | string Example: <your-read-api-key> Your Read API key. Find it under Settings → Configurations → API Keys → Product Export & Zapier Integration. |
curl --request GET \ --url 'https://integration.reo.dev/account/1a9f5c3e-7b2d-4e8a-a4c6-0d8f2b6e4a19/activities?activity_source=GITHUB' \ --header 'X-API-KEY: <your-read-api-key>'
{- "data": [
- {
- "actor": "John Doe",
- "page": "reo-dev/sample-repo",
- "activity_type": "COMMENT",
- "activity_source": "GITHUB",
- "copied_text": null,
- "developer_designation": "Senior Software Engineer",
- "country": "Japan",
- "activity_date": "2026-10-06",
- "developer_id": "d3f7a1c5-8b2e-4d6a-9c0f-1e5b7a3d9c22",
- "count": 1
}
], - "has_more": true
}Returns all Buyer Audiences created in your Reo workspace. Use the audience ID from here to query Get Buyers in an Audience.
| Name | Type | Required | Description |
|---|---|---|---|
X-API-KEY |
string | Yes | Your Read API key. Find it under Settings → Configurations → API Keys → Product Export & Zapier Integration. |
None.
| Code | When it happens | Response body |
|---|---|---|
| 400 | X-API-KEY header missing or empty |
{"error":"Missing API Key"} |
| 403 | Invalid API key, or a write API key used on this host | {"error":"Invalid API Key."} |
| Field | Value | Meaning |
|---|---|---|
| source | SEGMENT |
Audience built from a segment. source_id is that segment's ID |
| source | LIST |
Audience built from a list. source_id is that list's ID |
| source | COMPANY_AUDIENCE |
Audience built from a company audience |
| type | BUYER |
Audience of buyers |
id is the audience ID. Pass it as audience_id to Get Buyers in an Audience.request_id isn't in the body. It comes back as the X-Request-Id response header.count is the number of buyers in the audience. created_by is the email of the user who created it.verified_only, auto_refresh are booleans. limit, count and credits_consumed are integers.last_synced_at, created_at and updated_at are ISO 8601 timestamps in UTC.| X-API-KEY required | string Example: <your-read-api-key> Your Read API key. Find it under Settings → Configurations → API Keys → Product Export & Zapier Integration. |
curl --request GET \ --url https://integration.reo.dev/audiences \ --header 'X-API-KEY: <your-read-api-key>'
{- "data": [
- {
- "id": "8d2a6f0c-4e9b-4a1d-b7c3-9e5f1a3d7b62",
- "name": "Decision Makers at High Intent Accounts",
- "source": "SEGMENT",
- "source_id": "7c2e4f1a-3b8d-4e6f-9a12-5d3c8b7e1f40",
- "limit": 10,
- "verified_only": true,
- "count": 262,
- "credits_consumed": 491,
- "auto_refresh": false,
- "created_by": "jane.doe@reo.dev",
- "type": "BUYER",
- "last_synced_at": "2026-03-28T14:06:42.979745Z",
- "created_at": "2026-03-05T04:10:22.884463Z",
- "updated_at": "2026-06-30T16:57:39.701444Z"
}
]
}Returns all Buyers present within a specific Buyer Audience. Use the audience ID from Get List of Audiences to scope this call.
| Name | Type | Required | Description |
|---|---|---|---|
X-API-KEY |
string | Yes | Your Read API key. Find it under Settings → Configurations → API Keys → Product Export & Zapier Integration. |
| Name | Type | Required | Description |
|---|---|---|---|
audience_id |
string (UUID) | Yes | ID of the audience, from Get List of Audiences |
| Code | When it happens | Response body |
|---|---|---|
| 400 | X-API-KEY header missing or empty · page isn't a positive integer (page=abc, page=0) |
Missing key: {"error":"Missing API Key"} · Bad page: {"error":"page must be a positive integer, got \"abc\""} |
| 403 | Invalid API key, or a write API key used on this host · Audience ID doesn't exist | Bad key: {"error":"Invalid API Key."} · Unknown audience: {"error":"Invalid Audience Id."} |
| Field | Value | Meaning |
|---|---|---|
| type | BUYER |
Record is a buyer |
| source | REODB |
Buyer record comes from Reo's database |
| seniority | Entry Level, Architect, Director, VP, CXO, Founder, or "" (empty) |
Seniority of the buyer's current role. Empty when unknown |
| email_verified | true, false |
Whether the buyer's email is verified |
| isCrmSynced | true, false |
Whether the buyer has been synced to your CRM |
"data": [] and page_size 100. Example: {"data":[],"page_no":99999,"page_size":100,"total_pages":3}.reo_dev_id is the buyer's Reo person ID. org_id is the account ID of their company.isCrmSynced and crmLastSyncedTime use camelCase. Every other field uses snake_case.crmLastSyncedTime is an ISO 8601 timestamp in UTC. current_position_start_date is 0 when unknown.tech_skills is an array of strings.| audience_id required | string <uuid> Example: 8d2a6f0c-4e9b-4a1d-b7c3-9e5f1a3d7b62 ID of the audience, from Get List of Audiences. |
| page | integer >= 1 Default: 1 Example: page=1 Page number. Defaults to 1. Must be a positive integer. |
| X-API-KEY required | string Example: <your-read-api-key> Your Read API key. Find it under Settings → Configurations → API Keys → Product Export & Zapier Integration. |
curl --request GET \ --url 'https://integration.reo.dev/audiences/8d2a6f0c-4e9b-4a1d-b7c3-9e5f1a3d7b62/members?page=1' \ --header 'X-API-KEY: <your-read-api-key>'
{- "data": [
- {
- "isCrmSynced": true,
- "crmLastSyncedTime": "2026-09-25T06:04:11.472Z",
- "id": "2f6b0d4e-8a3c-4f7b-9e1d-5c7a9b3f1d84",
- "source_id": "64231786a6824e0001c47b20",
- "source": "REODB",
- "full_name": "Jane Smith",
- "designation": "Engineering Manager",
- "org_id": "b5d1a9e2-6c4f-4a3b-8e7d-2f9c1a0b3e55",
- "domain": "acme.com",
- "reo_dev_id": "e6a2c8f4-3d1b-4e9a-8f5c-7b0d2a4e6c13",
- "org_name": "Acme Corp",
- "state": "California",
- "country": "United States",
- "current_position_start_date": 0,
- "email_verified": true,
- "email": "jane.smith@acme.com",
- "type": "BUYER",
- "seniority": "",
- "company": "Acme Corp",
- "tech_skills": [
- "kubernetes",
- "airflow",
- "python"
]
}
], - "page_no": 1,
- "page_size": 100,
- "total_pages": 3
}This API endpoint creates a new list for adding accounts or developers. You will get a list ID in the response which you can use to add accounts or developers to the list based on the type of the list you created.
| Name | Type | Required | Description |
|---|---|---|---|
X-API-KEY |
string | Yes | Your Write API key. Find it under Settings → Configurations → API Keys → Product Usage API. |
user |
string | Yes | Email of the Reo workspace user making the call |
Content-Type |
string | Yes | application/json |
None.
| Code | When it happens | Response body |
|---|---|---|
| 400 | type missing · type invalid (including BUYER) · user header missing |
Missing type: {"type":"about:blank","title":"Bad Request","status":400,"detail":"Please add entity type in the Form","instance":"/api/product/list"} · Invalid type: {"title":"Bad Request","status":400,"detail":"Cannot deserialize value of type ..."} · Missing user header: {"timestamp":"...","status":400,"error":"Bad Request","path":"/api/product/list"} (no detail field) |
| 401 | API key missing, or a read API key used on this host | Empty body |
| 500 | name missing or empty · A list with the same name already exists |
{"timestamp":"...","status":500,"error":"Internal Server Error","path":"/api/product/list"} |
| Field | Value | Meaning |
|---|---|---|
| type | ACCOUNT |
List of accounts. Add domains to it with Add to a List |
| type | DEVELOPER |
List of developers. Add emails, LinkedIn or GitHub IDs to it with Add to a List |
| mapping.fieldType | String |
Column holds text values |
id. It is the list_id for Add to a List and Get Accounts / Developers in a List.description: null and enriched: false even when the stored list has a description and is enriched. Read it back with List of "Lists" to confirm.name can have its first letter capitalized.source: "API".| X-API-KEY required | string Example: <your-write-api-key> Your Write API key. Find it under Settings → Configurations → API Keys → Product Usage API. |
| user required | string Example: jane.doe@reo.dev Email of the Reo workspace user making the call. |
| name required | string Name of the list. Must be unique. |
| type required | string Enum: "ACCOUNT" "DEVELOPER"
|
| primaryKey | string Column that holds the identifier, for example |
| description | string What the list is for. |
Array of objects Columns in the list. Each item has |
{- "name": "Q4 Target Accounts",
- "description": "Accounts for the Q4 outbound campaign",
- "type": "ACCOUNT",
- "primaryKey": "domain",
- "mapping": [
- {
- "clientKey": "domain",
- "fieldType": "String"
}
]
}{- "id": "3e7a1c9f-5b2d-4f6e-8a0c-2d4f6b8e0a35",
- "name": "Q4 Target Accounts",
- "type": "ACCOUNT",
- "description": null,
- "enriched": false
}Adds accounts, developers to an existing List. Identifiers must match the list's type: domains or org_ids for ACCOUNT-type lists; emails, LinkedIn or GitHub IDs for DEVELOPER-type lists. Use the list ID from List of "Lists" or from Create a List.
| Name | Type | Required | Description |
|---|---|---|---|
X-API-KEY |
string | Yes | Your Write API key. Find it under Settings → Configurations → API Keys → Product Usage API. |
user |
string | Yes | Email of the Reo workspace user making the call |
Content-Type |
string | Yes | application/json |
| Name | Type | Required | Description |
|---|---|---|---|
list_id |
string (UUID) | Yes | ID of the list to add records to |
| Code | When it happens | Response body |
|---|---|---|
| 400 | type value invalid · list_id malformed (not a UUID) · user header missing |
Invalid type: {"title":"Bad Request","status":400,"detail":"Cannot deserialize value of type ..."} · Malformed list_id: {"timestamp":"...","status":400,"error":"Bad Request","path":"/api/product/list/notauuid"} · Missing user header: empty body |
| 401 | API key missing, or a read API key used on this host | Empty body |
| 500 | list_id doesn't exist · entities is an empty array · entities key missing · type missing · Empty body {} · type doesn't match the list (for example DEVELOPER on an ACCOUNT list) |
{"timestamp":"...","status":500,"error":"Internal Server Error"} |
| Field | Value | Meaning |
|---|---|---|
| type | ACCOUNT |
Adding accounts. Identifiers are domains |
| type | DEVELOPER |
Adding developers. Identifiers are emails, LinkedIn or GitHub IDs |
| entities[].fieldType | String |
Identifier is a text value |
| enrich | true, false |
Whether Reo enriches the added records |
PUT and the path is /api/product/list/{list_id}.enrich: true consumes credits.enrich only applies to ACCOUNT lists. Accounts are enriched only when enrich is true and the list itself has enrichment on.| list_id required | string <uuid> Example: 3e7a1c9f-5b2d-4f6e-8a0c-2d4f6b8e0a35 ID of the list to add records to. |
| X-API-KEY required | string Example: <your-write-api-key> Your Write API key. Find it under Settings → Configurations → API Keys → Product Usage API. |
| user required | string Example: jane.doe@reo.dev Email of the Reo workspace user making the call. |
required | Array of objects [ 1 .. 1000 ] items Records to add. Up to 1,000 records per call. |
| type required | string Enum: "ACCOUNT" "DEVELOPER"
|
| enrich | boolean Only applies to ACCOUNT lists. |
{- "entities": [
- {
- "primaryKey": "acme.com",
- "clientKey": "domain",
- "fieldType": "String"
}
], - "type": "ACCOUNT",
- "enrich": false
}{- "message": "Successful",
- "data": null
}Send telemetry and custom product usage data into Reo. Events show up in Get Account Activities and Get Developer Activities under the PRODUCT_API source.
Sends one product usage or call-home event to Reo. Reo resolves the IP or domain to a company and, if a user ID is sent, rolls usage up at the developer level before mapping it to their account. Events sent here show up in Get Account Activities and Get Developer Activities under the PRODUCT_API source.
Use your Write API key (Settings → Configurations → API Keys → Product Usage API). Only Admins can see API keys.
| Name | Type | Required | Description |
|---|---|---|---|
X-API-KEY |
string | Yes | Your Write API key. Find it under Settings → Configurations → API Keys → Product Usage API. |
Content-Type |
string | Yes | application/json |
None.
| Code | When it happens | Response body |
|---|---|---|
| 400 | API key wrong or missing | {"response_code":400,"response":"Authentication Failure","status":"failure"} |
| 500 | Body not wrapped in a payload object |
{"timestamp":"...","status":500,"error":"Internal Server Error","path":"/api/product/usage"} |
| Field | Value | Meaning |
|---|---|---|
| source | TELEMETRY |
Telemetry or call-home event |
| user_id_type | EMAIL |
user_id is an email |
| user_id_type | SOCIAL |
user_id is a social profile ID |
| user_id_type | LINKEDIN |
user_id is a LinkedIn profile |
| user_id_type | GITHUB |
user_id is a GitHub profile |
| user_id_type | USERNAME |
user_id is a username |
source: "TELEMETRY".user header is needed.activity_type must match a metric configured in Product Usage Settings, or Reo won't process the event.TELEMETRY is the only accepted source.| X-API-KEY required | string Example: <your-write-api-key> Your Write API key. Find it under Settings → Configurations → API Keys → Product Usage API. |
required | object Wrapper object. Every field sits inside it. |
{- "payload": {
- "activity_type": "PAGE_VISIT",
- "source": "TELEMETRY",
- "environment": "PRODUCTION",
- "user_id": "john.doe@acme.com",
- "user_id_type": "EMAIL",
- "domain": "acme.com",
- "ip_addr": "203.0.113.10",
- "event_id": "evt_10001",
- "event_at": 1790000000,
- "product_id": "V1.2",
- "user_agent": "Mozilla/5.0",
- "meta": { }
}
}{- "response_code": "200",
- "response": "Data Uploaded",
- "status": "success"
}Sends a pre-aggregated usage count (e.g. 1,250 events) for one IP or domain. There's no user ID, so Reo maps usage at the domain level and then to the company. Use this for anonymous telemetry where you only have counts.
| Name | Type | Required | Description |
|---|---|---|---|
X-API-KEY |
string | Yes | Your Write API key. Find it under Settings → Configurations → API Keys → Product Usage API. |
Content-Type |
string | Yes | application/json |
None.
| Code | When it happens | Response body |
|---|---|---|
| 400 | API key wrong or missing | {"response_code":400,"response":"Authentication Failure","status":"failure"} |
| Field | Value | Meaning |
|---|---|---|
| mode | DOMAIN |
Count is for a whole IP or domain. Reo maps it to the Account |
| source | TELEMETRY |
Telemetry event data |
DOMAIN mode is supported for telemetry. USER mode is for Add Custom Product Data only.user_id or user_id_type fields. Send either ip_addr or domain.user header is needed. Use your Write API key, not the Read API key.activity_type must match a metric configured in Product Usage Settings, or Reo won't process the data.| X-API-KEY required | string Example: <your-write-api-key> Your Write API key. Find it under Settings → Configurations → API Keys → Product Usage API. |
required | object Wrapper object. Every field sits inside it. |
{- "payload": {
- "mode": "DOMAIN",
- "activity_type": "PAGE_VISIT",
- "source": "TELEMETRY",
- "environment": "PRODUCTION",
- "event_id": "evt_30001",
- "event_at": 1790000000,
- "count": 1250,
- "ip_addr": "203.0.113.10",
- "domain": "",
- "product_id": "V1.2",
- "user_agent": "Mozilla/5.0",
- "meta": { }
}
}{- "response_code": "200",
- "response": "Data Uploaded",
- "status": "success"
}Sends one product usage event from your cloud product for a known user (email, GitHub, LinkedIn, social or username). Reo enriches the user, aggregates their usage at the developer level, and maps it to their company.
| Name | Type | Required | Description |
|---|---|---|---|
X-API-KEY |
string | Yes | Your Write API key. Find it under Settings → Configurations → API Keys → Product Usage API. |
Content-Type |
string | Yes | application/json |
None.
| Code | When it happens | Response body |
|---|---|---|
| 400 | API key wrong or missing | {"response_code":400,"response":"Authentication Failure","status":"failure"} |
| Field | Value | Meaning |
|---|---|---|
| source | PRODUCT_CLOUD |
Usage event from your cloud product |
| user_id_type | EMAIL |
user_id is an email |
| user_id_type | SOCIAL |
user_id is a social profile ID |
| user_id_type | LINKEDIN |
user_id is a LinkedIn profile |
| user_id_type | GITHUB |
user_id is a GitHub profile |
| user_id_type | USERNAME |
user_id is a username |
source: "PRODUCT_CLOUD".activity_type must match a custom metric configured in Product Usage Settings, or Reo won't process the event.| X-API-KEY required | string Example: <your-write-api-key> Your Write API key. Find it under Settings → Configurations → API Keys → Product Usage API. |
required | object Wrapper object. Every field sits inside it. |
{- "payload": {
- "activity_type": "LOGIN_ACTIVITY",
- "source": "PRODUCT_CLOUD",
- "environment": "PRODUCTION",
- "user_id": "john.doe@acme.com",
- "user_id_type": "EMAIL",
- "domain": "acme.com",
- "ip_addr": "203.0.113.10",
- "event_id": "evt_10002",
- "event_at": 1790000000,
- "product_id": "V1.2",
- "user_agent": "Mozilla/5.0",
- "meta": { }
}
}{- "response_code": "200",
- "response": "Data Uploaded",
- "status": "success"
}Sends a pre-aggregated usage count from your cloud product. Two modes: DOMAIN aggregates usage at the company level, USER aggregates it at the individual user level.
| Name | Type | Required | Description |
|---|---|---|---|
X-API-KEY |
string | Yes | Your Write API key. Find it under Settings → Configurations → API Keys → Product Usage API. |
Content-Type |
string | Yes | application/json |
None.
| Code | When it happens | Response body |
|---|---|---|
| 400 | API key wrong or missing · mode isn't DOMAIN or USER |
Bad key: {"response_code":400,"response":"Authentication Failure","status":"failure"} · Invalid mode: {"response_code":400,"response":"Invalid mode. Supported modes: DOMAIN, USER","status":"failure"} |
| Field | Value | Meaning |
|---|---|---|
| mode | DOMAIN |
Count is for a whole company. Reo maps it to the Account |
| mode | USER |
Count is for one user. Reo maps it to the Developer, then the Account |
| source | PRODUCT_CLOUD |
Usage event from your cloud product |
| user_id_type | EMAIL |
user_id is an email |
| user_id_type | SOCIAL |
user_id is a social profile ID |
| user_id_type | LINKEDIN |
user_id is a LinkedIn profile |
| user_id_type | GITHUB |
user_id is a GitHub profile |
| user_id_type | USERNAME |
user_id is a username |
DOMAIN mode, send user_id and user_id_type as empty strings and fill domain. In USER mode, fill user_id and user_id_type.user header is needed. Use your Write API key, not the Read API key.activity_type must match a custom metric configured in Product Usage Settings, or Reo won't process the data.| X-API-KEY required | string Example: <your-write-api-key> Your Write API key. Find it under Settings → Configurations → API Keys → Product Usage API. |
required | object Wrapper object. Every field sits inside it. |
{- "payload": {
- "mode": "DOMAIN",
- "activity_type": "DEMO_LOGIN",
- "source": "PRODUCT_CLOUD",
- "environment": "PRODUCTION",
- "event_id": "evt_20001",
- "event_at": 1790000000,
- "user_id": "",
- "user_id_type": "",
- "count": 1250,
- "domain": "acme.com",
- "ip_addr": "",
- "product_id": "V1.2",
- "user_agent": "Mozilla/5.0",
- "meta": { }
}
}{- "response_code": "200",
- "response": "Aggregated Data Uploaded",
- "status": "success"
}