openapi: 3.0.0
info:
title: Common Room Core Activities Prospector Contacts API
version: 1.0.0
description: "Common Room Core REST APIs for getting data in to Common Room.\n
\nFor SCIM APIs see the SCIM documentation.\n
\nFor New, V2 APIs see the V2 API documentation.\n
\nTo use the Common Room API, or get started with the Common Room Zapier integration, you will need to create an API token.\nTo create an API token:\n
\n - Navigate to Setting | API tokens\n
- Create a “New Token\"\n
\n\n# Authentication\n\n"
x-logo:
url: /common-room-api-logo.svg
servers:
- url: https://api.commonroom.io/community/v1
description: Common Room Core API v1
tags:
- name: Prospector Contacts
description: Operations related to prospector contact discovery
paths:
/prospector-contacts:
get:
summary: List prospector contacts
description: Retrieve a paginated list of prospector-discovered contacts.
tags:
- Prospector Contacts
parameters:
- name: limit
in: query
required: false
schema:
type: integer
minimum: 1
maximum: 200
default: 50
description: The maximum number of contacts to return per page
- name: cursor
in: query
required: false
schema:
type: string
description: Pagination cursor from a previous response
- name: sort
in: query
required: false
schema:
type: string
enum:
- id
- name
- title
- linkedInFollowers
- lastOrgChange
- seniority
- role
default: id
description: Field to sort results by
- name: direction
in: query
required: false
schema:
type: string
enum:
- asc
- desc
default: asc
description: Sort direction
- name: cols
in: query
required: false
schema:
type: string
description: 'Comma-separated list of additional columns to include in the response.
Valid column values: `avatarUrl`, `companyName`, `companyWebsite`, `fullName`,
`linkedInFollowerCount`, `linkedInHandle`, `location`, `role`, `seniority`,
`skills`, `title`. The meta column `recordCount` can be requested to return
the total number of matching contacts in `meta.recordCount`.
'
responses:
'200':
description: OK
headers:
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
content:
application/json:
schema:
$ref: '#/components/schemas/ProspectorContactList'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ApiV2ErrorResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Status'
'429':
$ref: '#/components/responses/RateLimited'
components:
headers:
X-RateLimit-Remaining:
description: The total amount of requests remaining within the interval
schema:
type: integer
X-RateLimit-Limit:
description: The total amount of requests permitted within the interval
schema:
type: integer
schemas:
ApiV2Error:
type: object
required:
- code
- message
properties:
code:
type: string
description: A machine-readable error code identifying the failure.
enum:
- invalid_parameters
- invalid_organization_id
- org_not_found
- invalid_contact_id
- contact_not_found
- invalid_object_id
- object_not_found
- invalid_object_type_id
- object_type_not_found
- invalid_segment_id
- segment_not_found
- invalid_activity_id
- activity_not_found
- conflict
- internal_server_error
- invalid_custom_field_id
- custom_field_not_found
- invalid_prospector_contact_id
- prospector_contact_not_found
- invalid_prospector_company_id
- prospector_company_not_found
message:
type: string
description: A human-readable description of the error.
ApiV2ErrorResponse:
type: object
required:
- success
- error
properties:
success:
type: boolean
enum:
- false
error:
$ref: '#/components/schemas/ApiV2Error'
ProspectorContactList:
type: object
required:
- success
- data
- meta
properties:
success:
type: boolean
enum:
- true
data:
type: array
items:
$ref: '#/components/schemas/ApiProspectorContact'
meta:
type: object
properties:
nextCursor:
type: string
nullable: true
description: Cursor for pagination; pass as the `cursor` query parameter to fetch the next page.
recordCount:
type: integer
description: Total number of records matching the query. Only returned when `cols=recordCount` is requested.
ApiProspectorContact:
type: object
required:
- id
- name
properties:
id:
type: string
description: Prospector contact ID
name:
type: string
description: The contact's display name
avatarUrl:
type: string
format: uri
nullable: true
companyName:
type: string
nullable: true
companyWebsite:
type: string
format: uri
nullable: true
fullName:
type: string
nullable: true
linkedInFollowerCount:
type: number
nullable: true
linkedInHandle:
type: string
nullable: true
location:
allOf:
- $ref: '#/components/schemas/ApiLocation'
nullable: true
role:
type: string
nullable: true
seniority:
type: string
nullable: true
skills:
type: array
nullable: true
items:
type: string
title:
type: string
nullable: true
ApiLocation:
type: object
description: A best-effort location, with each component populated when known.
properties:
city:
type: string
description: City name
region:
type: string
description: State, province, or region name
country:
type: string
description: Country name
Status:
type: object
properties:
status:
type: string
enum:
- ok
- failure
- not-found
example: success
reason:
type: string
errors:
type: array
items:
type: string
required:
- status
example:
status: not created
errors:
- name is missing
responses:
RateLimited:
description: Rate Limited
headers:
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
description: The datetime in epoch seconds when the interval resets
schema:
type: integer
Retry-After:
description: The UTC datetime when the interval resets
schema:
type: string
format: date-time
content:
application/json:
schema:
type: object
properties:
reason:
type: string
rateLimit:
type: object
description: A summary of the rate limit encountered, additional information is available in the headers.
properties:
intervalLimit:
type: number
description: The total amount of requests permitted within the interval
intervalRemaining:
type: number
description: The amount of requests remaining within the interval
intervalResetSeconds:
type: number
description: The amount of time in seconds representing a single interval
waitMs:
type: number
description: The amount of time to wait until the next interval
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: "Use a Core API JWT as a Bearer token in the Authentication header.\n\nTokens can be created by room Admins through https://app.commonroom.io/\n\nExample:\n\n```\ncurl -H \"Authorization: Bearer abcd123.xzy\" \\\n https://api.commonroom.io/community/v1/api-token-status\n````\n"