### Data Updates (push from Sumble) Source: https://docs.sumble.com/enterprise-services/integrations/salesforce-package This section details how Sumble pushes data updates using the Bulk API 2.0 Ingest endpoint, including job submission limits, daily update frequencies, and an example of processing scale. Updates are applied to custom fields on the 'Account' object. ```APIDOC ## POST /services/data/v57.0/jobs/ingest ### Description Submits jobs to the Bulk API 2.0 Ingest endpoint for data updates from Sumble. Each job can contain up to 250,000 rows, and organizations can perform up to 6 updates per day. This process is designed to handle large-scale updates, particularly for custom fields on the 'Account' object. ### Method POST ### Endpoint /services/data/v57.0/jobs/ingest ### Parameters #### Query Parameters - **contentType** (string) - Required - The content type of the job (e.g., CSV, JSON). - **operation** (string) - Required - The operation to perform (e.g., insert, update, upsert, delete). #### Request Body - **object** (string) - Required - The Salesforce object to update (e.g., 'Account'). - **columns** (array of strings) - Required - List of column names for the data. - **rows** (array of arrays or array of objects) - Required - The data rows to be processed. ### Request Example ```json { "object": "Account", "contentType": "CSV", "operation": "update", "columns": ["Id", "CustomField__c"], "rows": [ ["001xxxxxxxxxxxx", "newValue1"], ["001yyyyyyyyyyyy", "newValue2"] ] } ``` ### Response #### Success Response (201 Created) - **id** (string) - The ID of the created job. - **object** (string) - The Salesforce object targeted by the job. - **created_at** (string) - The timestamp when the job was created. - **state** (string) - The current state of the job (e.g., Open, UploadComplete, JobComplete). #### Response Example ```json { "id": "750xxxxxxxxxxxx", "object": "Account", "created_at": "2023-10-27T10:00:00.000Z", "state": "Open" } ``` ``` -------------------------------- ### Authenticate and Enrich Organization Data (Bash) Source: https://docs.sumble.com/api This snippet demonstrates how to authenticate an API request using an API key and enrich organization data by specifying a domain and filtering by technologies. It requires an API key set as an environment variable and sends a POST request to the organizations/enrich endpoint with JSON payload. ```bash curl https://api.sumble.com/v3/organizations/enrich \ --request POST \ --header "Authorization: Bearer $API_KEY" \ --header 'Content-Type: application/json' \ --data '{ "organization": { "domain": "sumble.com" }, "filters": { "technologies": [ "python" ] } }' ``` -------------------------------- ### Create and Grant Permissions for Snowflake Share (SQL) Source: https://docs.sumble.com/enterprise-services/integrations/snowflake-share This SQL snippet demonstrates how to create a new Snowflake share, grant usage permissions on a database, schema, and table, and allows read access (SELECT) to the specified data objects. It is a prerequisite for sharing data. ```sql CREATE SHARE my_share; GRANT USAGE ON DATABASE my_database TO SHARE my_share; GRANT SELECT ON SCHEMA my_database.my_schema TO SHARE my_share; GRANT SELECT ON TABLE my_database.my_schema.my_table TO SHARE my_share; ``` -------------------------------- ### Jobs API - Retrieve Job Posts Source: https://docs.sumble.com/api/jobs Retrieves a list of job posts. You can filter these jobs by organization. This operation consumes credits, with each job costing 3 credits. ```APIDOC ## GET /jobs ### Description Retrieves a list of job posts. You can filter these jobs by organization. This operation consumes credits, with each job costing 3 credits. ### Method GET ### Endpoint /jobs ### Parameters #### Query Parameters - **organization_id** (string) - Optional - The ID of the organization to filter jobs by. ### Request Example ```json { "message": "No request body for GET requests." } ``` ### Response #### Success Response (200) - **jobs** (array) - A list of job objects. - **job_id** (string) - The unique identifier for the job. - **title** (string) - The title of the job. - **organization** (string) - The name of the organization offering the job. - **posted_date** (string) - The date the job was posted (ISO 8601 format). #### Response Example ```json { "jobs": [ { "job_id": "job_123", "title": "Software Engineer", "organization": "TechCorp", "posted_date": "2023-10-27T10:00:00Z" }, { "job_id": "job_456", "title": "Data Scientist", "organization": "Data Inc.", "posted_date": "2023-10-26T14:30:00Z" } ] } ``` ``` -------------------------------- ### Find Organizations Request (OpenAPI) Source: https://docs.sumble.com/api/organizations This snippet defines the OpenAPI 3.1.0 schema for the POST /v3/organizations/find request. It outlines the structure for specifying filters, ordering, and pagination for organization searches. Dependencies include the request body structure and potential external schema references. ```json { "openapi": "3.1.0", "info": { "title": "Sumble API", "version": "v3" }, "servers": [ { "url": "https://api.sumble.com" } ], "security": [ { "api_token": [] } ], "components": { "securitySchemes": { "api_token": { "type": "http", "scheme": "bearer" } }, "schemas": { "FindOrganizationsRequest": { "properties": { "filters": { "anyOf": [ { "$ref": "#/components/schemas/app__schemas__paid_api__enrich__FindOrganizationsRequest__Filters" }, { "$ref": "#/components/schemas/app__schemas__paid_api__query__Query" } ], "title": "Filters", "description": "Filters to apply to the people search. Can be either a Filters object or a Query object." }, "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" ] }, { "type": "null" } ], "title": "Order By Column", "description": "Column to order by" }, "order_by_direction": { "anyOf": [ { "type": "string", "enum": [ "ASC", "DESC" ] }, { "type": "null" } ], "title": "Order By Direction", "description": "Direction to order by" }, "limit": { "type": "integer", "maximum": 200, "minimum": 1, "title": "Limit", "description": "Maximum number of results to return", "default": 10 }, "offset": { "type": "integer", "maximum": 10000, "minimum": 0, "title": "Offset", "description": "Number of results to skip", "default": 0 } }, "type": "object", "required": [ "filters" ], "title": "FindOrganizationsRequest" }, "app__schemas__paid_api__enrich__FindOrganizationsRequest__Filters": { "properties": { "technologies": { "items": { "type": "string" }, "type": "array", "title": "Technologies", "description": "Technologies to search for", "default": [] }, "technology_categories": { "items": { "type": "string" }, "type": "array", "title": "Technology Categories", "description": "Technology categories to search for", "default": [] }, "since": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Since", "description": "Only consider data since this date. Format: YYYY-MM-DD" } }, "type": "object", "title": "Filters" }, "app__schemas__paid_api__query__Query": { "properties": { "query": { "type": "string", "title": "Query" } }, "type": "object", "required": [ "query" ], "title": "Query" }, "FindOrganizationsResponse": { "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/Item" }, "type": "array", "title": "Organizations" }, "source_data_url": { "type": "string", "maxLength": 2083, "minLength": 1, "format": "uri", "title": "Source Data Url" }, "total": { "type": "integer", "title": "Total" } }, "type": "object", "required": [ "id", "credits_used", "credits_remaining", "organizations", "source_data_url", "total" ], "title": "FindOrganizationsResponse" }, "Item": { "properties": { "id": { "type": "integer", "title": "Id" }, "parent_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Parent Id" }, "name": { "type": "string", "title": "Name" }, "url": { "type": "string", "maxLength": 2083, "minLength": 1, "format": "uri", "title": "Url" }, "industry": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Industry" }, "total_employees": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Total Employees" }, "matching_people_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Matching People Count" }, "matching_team_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Matching Team Count" }, "matching_job_post_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Matching Job Post Count" }, "headquarters_country": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Headquarters Country" }, "headquarters_state": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Headquarters State" }, "domain": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Domain" }, "linkedin_organization_url": { "anyOf": [ { "type": "string", "maxLength": 2083, "minLength": 1, "format": "uri" }, { "type": "null" } ], "title": "Linkedin Organization Url" }, "matching_tags": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Matching Tags" }, "matching_entities": { "anyOf": [ { "items": { "$ref": "#/components/schemas/Entity" }, "type": "array" }, { "type": "null" } ], "title": "Matching Entities" } }, "type": "object", "required": [ "id", "parent_id", "name", "url", "industry", "total_employees", "matching_people_count", "matching_team_count", "matching_job_post_count", "headquarters_country", "headquarters_state", "domain", "linkedin_organization_url" ], "title": "Item" }, "Entity": { "properties": { "type": { "type": "string", "title": "Type" }, "term": { "type": "string", "title": "Term" }, "job_post_count": { "type": "integer", "title": "Job Post Count" }, "people_count": { "type": "integer", "title": "People Count" }, "team_count": { "type": "integer", "title": "Team Count" }, "job_post_used_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Job Post Used Count" }, "team_count_used": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Team Count Used" } }, "type": "object", "required": [ "type", "term", "job_post_count", "people_count", "team_count" ], "title": "Entity" } } } } ``` -------------------------------- ### POST /v3/jobs/find Source: https://docs.sumble.com/api/jobs Find job listings based on specified criteria. This endpoint allows you to search for jobs by organization, technologies, countries, and other filters. ```APIDOC ## POST /v3/jobs/find ### Description Find job listings based on specified criteria. This endpoint allows you to search for jobs by organization, technologies, countries, and other filters. ### Method POST ### Endpoint /v3/jobs/find ### Parameters #### Request Body - **organization** (object | null) - Optional - Organization to enrich. Can be specified by domain, ID, or slug. - **domain** (string) - Organization web domain. - **id** (integer) - Organization Id on Sumble. - **slug** (string) - Organization Slug on Sumble. - **filters** (object) - Required - Filters to apply to the jobs search. Can be either a Filters object or a Query object. - **technologies** (array[string]) - Optional - Technologies to search for. Defaults to []. - **technology_categories** (array[string]) - Optional - Technology categories to search for. Defaults to []. - **countries** (array[string]) - Optional - Countries to filter by (e.g. US, CA). Defaults to []. - **since** (string | null) - Optional - Only consider data since this date. Format: YYYY-MM-DD. - **query** (string) - Required if filters object is used for query - The search query string. - **limit** (integer) - Optional - Maximum number of results to return. Defaults to 10. Max: 100, Min: 1. - **offset** (integer) - Optional - Number of results to skip. Defaults to 0. Max: 10000, Min: 0. ### Request Example ```json { "organization": { "domain": "example.com" }, "filters": { "technologies": ["python", "react"], "countries": ["US"], "since": "2023-01-01" }, "limit": 20, "offset": 0 } ``` ### Response #### Success Response (200) - **id** (string) - UUID identifier for the search request. - **credits_used** (integer) - Number of credits consumed by this request. - **credits_remaining** (integer) - Number of credits remaining after this request. - **jobs** (array[object]) - An array of job listings. - **id** (integer) - Job ID. - **organization_id** (integer) - Organization's ID on Sumble. - **organization_name** (string) - Name of the organization. - **organization_domain** (string | null) - Organization's domain. - **job_title** (string) - The title of the job. - **datetime_pulled** (string) - ISO 8601 format date-time when the job was pulled. - **primary_job_function** (string | null) - The primary job function. - **location** (string) - The job location. - **teams** (string) - Teams associated with the job. - **matched_projects** (string | null) - Projects matched by the search. - **projects_description** (string | null) - Description of the projects. - **matched_technologies** (string | null) - Technologies matched by the search. - **matched_job_functions** (string | null) - Job functions matched by the search. - **projects** (string | null) - Projects related to the job. - **description** (string) - The job description. - **url** (string) - The URL to the job listing. - **total** (integer) - The total number of jobs found. #### Response Example ```json { "id": "a1b2c3d4-e5f6-7890-1234-567890abcdef", "credits_used": 1, "credits_remaining": 99, "jobs": [ { "id": 123, "organization_id": 45, "organization_name": "Tech Solutions Inc.", "organization_domain": "techsolutions.com", "job_title": "Senior Python Developer", "datetime_pulled": "2023-10-27T10:00:00Z", "primary_job_function": "Software Engineering", "location": "San Francisco, CA", "teams": "Backend", "matched_projects": "E-commerce platform development", "projects_description": "Build and maintain our scalable e-commerce backend.", "matched_technologies": "Python, Django, PostgreSQL", "matched_job_functions": "Backend Development, API Design", "projects": "E-commerce", "description": "We are looking for a skilled Senior Python Developer...", "url": "https://example.com/jobs/123" } ], "total": 1 } ``` ``` -------------------------------- ### POST /v3/jobs/find Source: https://docs.sumble.com/api/jobs Find job listings based on specified criteria. This endpoint allows users to search for jobs by providing request parameters. ```APIDOC ## POST /v3/jobs/find ### Description Find job listings based on specified criteria. This endpoint allows users to search for jobs by providing request parameters. ### Method POST ### Endpoint /v3/jobs/find ### Parameters #### Query Parameters #### Request Body - **criteria** (object) - Required - Criteria to filter job listings. - **keyword** (string) - Optional - Keyword to search for in job titles or descriptions. - **location** (string) - Optional - Location of the job. - **remote** (boolean) - Optional - Filter for remote jobs. - **employment_type** (string) - Optional - Type of employment (e.g., "Full-time", "Part-time"). - **company_name** (string) - Optional - Filter by company name. - **posted_after** (string) - Optional - Filter jobs posted after a specific date (ISO 8601 format). - **posted_before** (string) - Optional - Filter jobs posted before a specific date (ISO 8601 format). - **salary_min** (number) - Optional - Minimum salary expectation. - **salary_max** (number) - Optional - Maximum salary expectation. - **salary_currency** (string) - Optional - Currency of the salary (e.g., "USD", "EUR"). - **experience_level** (string) - Optional - Required experience level (e.g., "Entry-level", "Mid-level", "Senior"). - **sort_by** (string) - Optional - Field to sort results by (e.g., "relevance", "date_posted", "salary"). - **sort_order** (string) - Optional - Order of sorting ("asc" or "desc"). - **limit** (integer) - Optional - Maximum number of results to return. - **offset** (integer) - Optional - Number of results to skip. ### Request Example ```json { "keyword": "Software Engineer", "location": "San Francisco, CA", "remote": false, "employment_type": "Full-time", "company_name": "Tech Corp", "posted_after": "2023-01-01T00:00:00Z", "salary_min": 100000, "salary_currency": "USD", "experience_level": "Mid-level", "sort_by": "date_posted", "sort_order": "desc", "limit": 10, "offset": 0 } ``` ### Response #### Success Response (200) - **jobs** (array) - List of job postings matching the criteria. - **job_id** (string) - Unique identifier for the job posting. - **title** (string) - Title of the job. - **company_name** (string) - Name of the hiring company. - **location** (string) - Location of the job. - **remote** (boolean) - Indicates if the job is remote. - **employment_type** (string) - Type of employment. - **description** (string) - Detailed description of the job. - **posted_date** (string) - Date the job was posted (ISO 8601 format). - **salary_min** (number) - Minimum salary offered. - **salary_max** (number) - Maximum salary offered. - **salary_currency** (string) - Currency of the salary. - **apply_url** (string) - URL to apply for the job. - **company_logo_url** (string) - URL for the company logo. #### Response Example ```json { "jobs": [ { "job_id": "job123", "title": "Senior Software Engineer", "company_name": "Tech Corp", "location": "San Francisco, CA", "remote": false, "employment_type": "Full-time", "description": "Develop and maintain scalable software solutions...", "posted_date": "2023-10-26T10:00:00Z", "salary_min": 120000, "salary_max": 150000, "salary_currency": "USD", "apply_url": "https://example.com/apply/job123", "company_logo_url": "https://example.com/logos/techcorp.png" } ] } ``` #### Error Response (422) - **detail** (array) - List of validation errors. - **loc** (array) - Location of the error in the request. - **msg** (string) - Error message. - **type** (string) - Type of error. #### Response Example ```json { "detail": [ { "loc": ["body", "keyword"], "msg": "Field is required", "type": "value_error.missing" } ] } ``` ``` -------------------------------- ### POST /v3/organizations/enrich Source: https://docs.sumble.com/api/organizations Enriches an organization with technology data based on provided filters. ```APIDOC ## POST /v3/organizations/enrich ### Description Enriches an organization with technology data. You can specify how to identify the organization (by domain, ID, or slug) and apply filters to refine the enrichment results, such as specific technologies, technology categories, or a date range. ### Method POST ### Endpoint /v3/organizations/enrich ### Parameters #### Request Body - **organization** (object) - Required - The organization to enrich. This can be specified using `domain`, `id`, or `slug`. - **domain** (string) - Required (if not using `id` or `slug`) - Company web domain. - **id** (integer) - Required (if not using `domain` or `slug`) - Organization Id on Sumble. - **slug** (string) - Required (if not using `domain` or `id`) - Organization Slug on Sumble. - **filters** (object) - Required - Filters to apply to the people search. Can be either a Filters object or a Query object. - **technologies** (array of strings) - Optional - Technologies to search for. - **technology_categories** (array of strings) - Optional - Technology categories to search for. - **since** (string) - Optional - Only consider data since this date. Format: YYYY-MM-DD. ### Request Example ```json { "organization": { "domain": "example.com" }, "filters": { "technologies": ["React", "Node.js"], "since": "2023-01-01" } } ``` ### Response #### Success Response (200) - **id** (string) - The unique identifier for the enrichment request. - **credits_used** (integer) - The number of credits used for this request. - **credits_remaining** (integer) - The number of credits remaining. - **organization** (object) - Details of the matched organization. - **id** (integer) - Organization ID. - **slug** (string) - Organization slug. - **name** (string) - Organization name. - **domain** (string) - Organization domain. - **technologies_found** (string) - A comma-separated string of technologies found. - **technologies_count** (integer) - The total count of technologies found. - **source_data_url** (string) - URL to the source data. - **technologies** (array of objects) - A list of technologies found with their associated data. - **name** (string) - Technology name. - **last_job_post** (string or null) - Date of the last job post. - **jobs_count** (integer) - Number of job postings. - **jobs_data_url** (string) - URL for job data. - **people_count** (integer) - Number of people using the technology. - **people_data_url** (string) - URL for people data. - **teams_count** (integer) - Number of teams using the technology. - **teams_data_url** (string) - URL for team data. #### Response Example ```json { "id": "a1b2c3d4-e5f6-7890-1234-567890abcdef", "credits_used": 1, "credits_remaining": 99, "organization": { "id": 123, "slug": "example-org", "name": "Example Corporation", "domain": "example.com" }, "technologies_found": "React, Node.js", "technologies_count": 2, "source_data_url": "https://api.sumble.com/v3/source/123", "technologies": [ { "name": "React", "last_job_post": "2024-01-15", "jobs_count": 50, "jobs_data_url": "https://api.sumble.com/v3/jobs/react", "people_count": 1000, "people_data_url": "https://api.sumble.com/v3/people/react", "teams_count": 200, "teams_data_url": "https://api.sumble.com/v3/teams/react" }, { "name": "Node.js", "last_job_post": "2024-01-10", "jobs_count": 45, "jobs_data_url": "https://api.sumble.com/v3/jobs/nodejs", "people_count": 900, "people_data_url": "https://api.sumble.com/v3/people/nodejs", "teams_count": 180, "teams_data_url": "https://api.sumble.com/v3/teams/nodejs" } ] } ``` ``` -------------------------------- ### POST /v3/people/find Source: https://docs.sumble.com/api/people Find people at a specific organization using various filters. ```APIDOC ## POST /v3/people/find ### Description This endpoint allows you to find people associated with a given organization. You can specify the organization by its domain, ID, or slug, and apply filters for job functions, levels, countries, and a date range. ### Method POST ### Endpoint /v3/people/find ### Parameters #### Request Body - **organization** (object) - Required - The organization to search within. Can be specified by `domain`, `id`, or `slug`. - **domain** (string) - Optional - Company web domain. - **id** (integer) - Optional - Organization Id on Sumble. - **slug** (string) - Optional - Organization Slug on Sumble. - **limit** (integer) - Optional - Maximum number of people to return (default: 10, max: 250). - **offset** (integer) - Optional - Number of results to skip (default: 0, max: 10000). - **filters** (object) - Required - Filters to apply to the people search. Can be either a Filters object or a Query object. - **job_functions** (array of strings) - Optional - Job function to filter by (e.g., Engineer, Executive). - **job_levels** (array of strings) - Optional - Job level to filter by (e.g., Senior, Manager). - **countries** (array of strings) - Optional - Countries to filter by (e.g., US, CA). - **since** (string) - Optional - Only consider data since this date. Format: YYYY-MM-DD. - **query** (string) - Optional - A direct query string. ### Request Example ```json { "organization": {"domain": "example.com"}, "limit": 50, "filters": { "job_functions": ["Software Engineer"], "countries": ["US"] } } ``` ### Response #### Success Response (200) - **id** (string) - Unique identifier for the request. - **credits_used** (integer) - Number of credits consumed by this request. - **credits_remaining** (integer) - Number of credits remaining. - **organization** (object) - Details of the matched organization. - **people_count** (integer) - Total number of people found matching the criteria. - **people_data_url** (string) - URL to access detailed people data. - **people** (array of objects) - A list of people matching the search criteria. - **id** (integer) - Person's unique identifier. - **url** (string) - URL to the person's profile. - **linkedin_url** (string or null) - Person's LinkedIn profile URL. - **name** (string) - Person's full name. - **job_title** (string or null) - Person's current job title. - **job_function** (string or null) - Person's job function. - **job_level** (string or null) - Person's job level. - **location** (string or null) - Person's location. - **country** (string or null) - Person's country. - **start_date** (string or null) - The start date of their current role. - **country_code** (string or null) - The country code. #### Response Example ```json { "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "credits_used": 1, "credits_remaining": 99, "organization": { "id": 123, "slug": "example-corp", "name": "Example Corp", "domain": "example.com" }, "people_count": 5, "people_data_url": "https://api.sumble.com/v3/people_data/abc123xyz", "people": [ { "id": 456, "url": "https://api.sumble.com/v3/person/789", "linkedin_url": "https://linkedin.com/in/johndoe", "name": "John Doe", "job_title": "Software Engineer", "job_function": "Engineering", "job_level": "Senior", "location": "San Francisco, CA", "country": "United States", "start_date": "2020-01-15", "country_code": "US" } ] } ``` ``` -------------------------------- ### POST /v3/organizations/find Source: https://docs.sumble.com/api/organizations Find organizations by applying various filters such as technologies, industry, employee count, and more. You can also specify ordering and pagination for the results. ```APIDOC ## POST /v3/organizations/find ### Description Find organizations by applying various filters such as technologies, industry, employee count, and more. You can also specify ordering and pagination for the results. ### Method POST ### Endpoint https://api.sumble.com/v3/organizations/find ### Parameters #### Query Parameters - **limit** (integer) - Optional - Maximum number of results to return (default: 10, max: 200) - **offset** (integer) - Optional - Number of results to skip (default: 0, max: 10000) #### Request Body - **filters** (object) - Required - Filters to apply to the organization search. Can be either a Filters object or a Query object. - **filters.technologies** (array of strings) - Optional - Technologies to search for (default: []) - **filters.technology_categories** (array of strings) - Optional - Technology categories to search for (default: []) - **filters.since** (string) - Optional - Only consider data since this date. Format: YYYY-MM-DD - **filters.query** (string) - Optional - A free-form query string for advanced searching. - **order_by_column** (string) - Optional - Column to order by. Allowed values: `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`. - **order_by_direction** (string) - Optional - Direction to order by. Allowed values: `ASC`, `DESC`. ### Request Example ```json { "filters": { "technologies": ["react", "django"], "since": "2023-01-01" }, "order_by_column": "employee_count", "order_by_direction": "DESC", "limit": 50, "offset": 0 } ``` ### Response #### Success Response (200) - **id** (string, uuid) - Unique identifier for the request. - **credits_used** (integer) - Number of credits used for this request. - **credits_remaining** (integer) - Number of credits remaining after this request. - **organizations** (array of objects) - A list of found organizations. - **organizations[].id** (integer) - Unique identifier for the organization. - **organizations[].parent_id** (integer) - Identifier for the parent organization, if applicable. - **organizations[].name** (string) - The name of the organization. - **organizations[].url** (string, uri) - The primary website URL of the organization. - **organizations[].industry** (string) - The industry the organization belongs to. - **organizations[].total_employees** (integer) - The total number of employees in the organization. - **organizations[].matching_people_count** (integer) - Number of people matching the search criteria within this organization. - **organizations[].matching_team_count** (integer) - Number of teams matching the search criteria within this organization. - **organizations[].matching_job_post_count** (integer) - Number of job postings matching the search criteria within this organization. - **organizations[].headquarters_country** (string) - The country of the organization's headquarters. - **organizations[].headquarters_state** (string) - The state/province of the organization's headquarters. - **organizations[].domain** (string) - The primary domain name of the organization. - **organizations[].linkedin_organization_url** (string, uri) - The URL of the organization's LinkedIn profile. - **organizations[].matching_tags** (array of strings) - Tags associated with the matching entities. - **organizations[].matching_entities** (array of objects) - Details about matching entities (e.g., technologies, job titles). - **source_data_url** (string, uri) - URL to the source data for this organization. - **total** (integer) - The total number of organizations found matching the query. #### Response Example ```json { "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "credits_used": 1, "credits_remaining": 99, "organizations": [ { "id": 12345, "parent_id": null, "name": "Example Corp", "url": "https://example.com", "industry": "Technology", "total_employees": 5000, "matching_people_count": 150, "matching_team_count": 20, "matching_job_post_count": 5, "headquarters_country": "USA", "headquarters_state": "California", "domain": "example.com", "linkedin_organization_url": "https://www.linkedin.com/company/examplecorp", "matching_tags": ["SaaS", "AI"], "matching_entities": [ { "type": "technology", "term": "react", "job_post_count": 10, "people_count": 50, "team_count": 5, "job_post_used_count": null, "team_count_used": null } ] } ], "source_data_url": "https://source.sumble.com/organizations/12345", "total": 1000 } ``` ``` -------------------------------- ### POST /v3/people/find Source: https://docs.sumble.com/api/people Find people at an organization by providing search criteria in the request body. ```APIDOC ## POST /v3/people/find ### Description Find people at an organization by providing search criteria in the request body. ### Method POST ### Endpoint /v3/people/find ### Parameters #### Query Parameters None #### Request Body - **schema** (object) - Required - The request schema for finding people. ### Request Example ```json { "organization_id": "123e4567-e89b-12d3-a456-426614174000", "query": "John Doe" } ``` ### Response #### Success Response (200) - **people** (array) - A list of people found matching the criteria. - **id** (string) - The unique identifier of the person. - **name** (string) - The full name of the person. - **email** (string) - The email address of the person. #### Response Example ```json { "people": [ { "id": "123e4567-e89b-12d3-a456-426614174001", "name": "John Doe", "email": "john.doe@example.com" } ] } ``` #### Error Response (422) - **detail** (array) - Details about the validation error. - **loc** (array) - The location of the error in the request. - **msg** (string) - The error message. - **type** (string) - The type of error. #### Error Response Example ```json { "detail": [ { "loc": [ "body", "organization_id" ], "msg": "Invalid UUID format", "type": "value_error" } ] } ``` ```