openapi: 3.0.0 info: title: Common Room Core Activities Organizations 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
  1. Navigate to Setting | API tokens\n
  2. 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: Organizations description: Operations related to organization management paths: /organizations/{id}: get: summary: Get an organization by ID description: Retrieve a specific organization by its unique identifier. tags: - Organizations parameters: - name: id in: path required: true schema: type: string description: The prefixed organization ID (format `o_`) - name: cols in: query required: false schema: type: string description: 'Comma-separated list of additional columns to include in the response. Valid values: `about`, `contactsCount`, `employees`, `linkedInUrl`, `profiles`, `revenueRangeMax`, `revenueRangeMin`, `subIndustry`, `location`, `leadScores`, `recentJobOpenings`, `recentNews`, `researchResults`, `surgingTopics`, `tags`, `topContacts`, `url`. Use `cf_*` to include all custom fields, or `cf_` for a specific one. ' 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/OrganizationResponse' '400': description: Bad Request (e.g. invalid organization ID or invalid parameters) content: application/json: schema: $ref: '#/components/schemas/ApiV2ErrorResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Status' '404': description: Organization not found content: application/json: schema: $ref: '#/components/schemas/ApiV2ErrorResponse' '429': $ref: '#/components/responses/RateLimited' /organizations: get: summary: List organizations description: Retrieve a list of organizations with pagination support. tags: - Organizations parameters: - name: limit in: query required: false schema: type: integer minimum: 1 maximum: 200 default: 50 description: The maximum number of organizations 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 default: id description: 'Field to sort results by. One of: `id`, `member_count`, a lead-score ID (format `ls_`), or a custom-field ID (format `cf_`). ' - 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: `about`, `contactsCount`, `employees`, `linkedInUrl`, `profiles`, `revenueRangeMax`, `revenueRangeMin`, `subIndustry`, `location`, `leadScores`, `recentJobOpenings`, `recentNews`, `researchResults`, `surgingTopics`, `tags`, `topContacts`, `url`. Use `cf_*` to include all custom fields, or `cf_` for a specific one. The meta column `recordCount` can be requested to return the total number of matching organizations in `meta.recordCount`. ' - name: name in: query required: false schema: type: string description: Filter organizations by exact name match - name: primaryDomain in: query required: false schema: type: string description: Filter organizations by primary domain (exact match) 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/OrganizationList' '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: schemas: ApiLeadScore: type: object required: - scoreId - score - percentile properties: scoreId: type: integer description: The numeric ID of the lead-score definition score: type: number description: The raw score for this contact or organization percentile: type: number description: The percentile rank of the score within the community ApiFieldValue: description: A typed custom-field value. The `type` discriminator indicates the value's runtime type. oneOf: - type: object required: - type - value properties: type: type: string enum: - string value: type: string - type: object required: - type - value properties: type: type: string enum: - url value: type: string format: uri - type: object required: - type - value properties: type: type: string enum: - int value: type: integer - type: object required: - type - value properties: type: type: string enum: - number value: type: number - type: object required: - type - value properties: type: type: string enum: - date value: type: string format: date-time - type: object required: - type - value properties: type: type: string enum: - boolean value: type: boolean ApiV2ErrorResponse: type: object required: - success - error properties: success: type: boolean enum: - false error: $ref: '#/components/schemas/ApiV2Error' 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. OrganizationResponse: type: object required: - success - data properties: success: type: boolean enum: - true data: $ref: '#/components/schemas/Organization' ApiActivity: type: object required: - id - type - activityTime properties: id: type: string description: Prefixed activity ID (format `a_`) type: type: string description: Activity type identifier (e.g. `tweet`, `pr_comment`) activityTime: type: string format: date-time description: When the activity occurred contactId: type: string description: Prefixed contact ID (format `c_`) content: type: string nullable: true isUserInitiated: type: boolean participantCount: type: integer providerId: type: string description: Prefixed signal source ID (format `sig_`) providerName: type: string nullable: true replyCount: type: integer sentiment: type: string nullable: true subSourceNames: type: array items: type: string url: type: string format: uri Organization: type: object required: - id - name - primaryDomain properties: id: type: string description: Prefixed organization ID (format `o_`) name: type: string description: The organization's name primaryDomain: type: string description: The organization's primary domain name about: type: string nullable: true contactsCount: type: integer nullable: true employees: type: integer nullable: true linkedInUrl: type: string nullable: true profiles: type: array items: type: object required: - name - type - url properties: name: type: string type: type: string url: type: string format: uri nullable: true revenueRangeMax: type: integer nullable: true revenueRangeMin: type: integer nullable: true subIndustry: type: string nullable: true location: allOf: - $ref: '#/components/schemas/ApiLocation' nullable: true customFields: type: object description: Map of custom-field ID (format `cf_`) to its typed value. additionalProperties: $ref: '#/components/schemas/ApiFieldValue' leadScores: type: array items: $ref: '#/components/schemas/ApiLeadScore' researchResults: type: array items: type: object required: - promptId - answer - isPrimaryPrompt properties: promptId: type: string answer: type: string isPrimaryPrompt: type: boolean recentJobOpenings: type: array items: type: object required: - jobTitle - url - firstSeenAt - isClosed - location properties: jobTitle: type: string jobDescription: type: string nullable: true url: type: string format: uri firstSeenAt: type: string isClosed: type: boolean location: type: string nullable: true recentNews: type: array items: type: object required: - title - url - publishedAt - category - articleSentence properties: title: type: string url: type: string format: uri publishedAt: type: string category: type: string articleSentence: type: string nullable: true surgingTopics: type: array description: Bombora surging topic names this organization is showing buyer intent for. Empty unless the Bombora integration is enabled. items: type: string tags: type: array description: Prefixed label IDs (format `l_`) items: type: string topContacts: type: array items: $ref: '#/components/schemas/Contact' url: type: string format: uri description: Common Room URL for this organization 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 Contact: type: object required: - id - name properties: id: type: string description: Prefixed contact ID (format `c_`) name: type: string description: The contact's display name avatarUrl: type: string format: uri nullable: true fullName: type: string nullable: true location: allOf: - $ref: '#/components/schemas/ApiLocation' nullable: true primaryEmail: type: string nullable: true phoneNumbers: type: array items: type: object required: - type - value properties: type: type: string value: type: string title: type: string nullable: true companyName: type: string nullable: true companyWebsite: type: string nullable: true connectedCustomObjects: type: array items: type: object required: - id - name - objectType properties: id: type: string description: Prefixed custom object ID (format `co_`) name: type: string objectType: type: string customFields: type: object description: Map of custom-field ID (format `cf_`) to its typed value. additionalProperties: $ref: '#/components/schemas/ApiFieldValue' profiles: type: array items: type: object required: - type - value properties: type: type: string value: type: string jobHistory: type: array items: type: object required: - company - title - startDate - endDate properties: company: type: string title: type: string nullable: true startDate: type: string endDate: type: string nullable: true leadScores: type: array items: $ref: '#/components/schemas/ApiLeadScore' segments: type: array items: type: object required: - id - name properties: id: type: string description: Prefixed segment ID (format `s_`) name: type: string recentWebPages: type: array items: type: object required: - url - numVisits properties: url: type: string numVisits: type: integer recentWebVisitsNumber: type: integer recentActivities: type: array items: $ref: '#/components/schemas/ApiActivity' activateMessage: type: object nullable: true required: - title - message properties: title: type: string message: type: string nullable: true sparkSummary: type: string nullable: true recentSparkSummaries: type: array items: type: string tags: type: array description: Prefixed label IDs (format `l_`) items: type: string url: type: string format: uri description: Common Room URL for this contact OrganizationList: type: object required: - success - data - meta properties: success: type: boolean enum: - true data: type: array items: $ref: '#/components/schemas/Organization' meta: type: object required: - nextCursor 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. 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 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 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"