openapi: 3.0.0 info: title: Common Room Core Activities Segments 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: Segments paths: /segments: get: description: 'Gets all segments in a room ' summary: Get segments in a room tags: - Segments operationId: getSegments 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: type: array items: type: object properties: id: type: number description: Segment id name: type: string description: Display name of segment '429': $ref: '#/components/responses/RateLimited' post: summary: Create a segment description: Create a new segment in the community. tags: - Segments requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateSegmentRequest' responses: '201': description: Created 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/CreateSegmentResponse' '400': description: Bad Request (e.g. invalid parameters or missing required fields) content: application/json: schema: $ref: '#/components/schemas/ApiV2ErrorResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Status' '409': description: Conflict (a segment with this name already exists) content: application/json: schema: $ref: '#/components/schemas/ApiV2ErrorResponse' '429': $ref: '#/components/responses/RateLimited' /segments/{id}/status: get: description: 'Gets all status for a segment ' summary: Gets all status for a segment tags: - Segments operationId: getSegmentStatuses 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: type: array items: type: object properties: id: type: number description: Status id name: type: string description: Display text of status '429': $ref: '#/components/responses/RateLimited' /segments/{id}: post: description: 'Add existing contacts to an existing segment ' summary: Add Contact(s) to Segment deprecated: true tags: - Segments operationId: addContactsToSegment requestBody: required: true content: application/json: schema: type: object properties: socialType: type: string example: email description: Must be email, twitter, github, or linkedin value: type: string example: email@domail.com, email2@domain.org description: Comma separated list of values corresponding to socialType statusId: type: number example: 1234 required: - socialType - value responses: '200': description: OK headers: X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' '400': $ref: '#/components/responses/InvalidRequest' '404': description: Not Found headers: X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' '429': $ref: '#/components/responses/RateLimited' get: summary: Get a segment by ID description: Retrieve a specific segment by its unique identifier. tags: - Segments parameters: - name: id in: path required: true schema: type: string description: The prefixed segment ID (format `s_`) - name: cols in: query required: false schema: type: string description: 'Comma-separated list of additional columns to include in the response. Valid values: `entityCount`, `url`. ' 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/SegmentResponse' '400': description: Bad Request (e.g. invalid segment 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: Segment not found content: application/json: schema: $ref: '#/components/schemas/ApiV2ErrorResponse' '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' SegmentResponse: type: object required: - success - data properties: success: type: boolean enum: - true data: $ref: '#/components/schemas/ApiSegment' CreateSegmentRequest: type: object required: - name properties: name: type: string description: The name for the new segment (max 500 characters) description: type: string description: Optional description for the segment (markdown supported) entityType: type: string enum: - contact - object - organization default: contact description: The type of entity this segment will contain objectTypeId: type: string description: Required when entityType is `object`. Prefixed object type ID (format `cot_`) CreateSegmentResponse: type: object required: - success - data properties: success: type: boolean enum: - true data: type: object required: - id - name properties: id: type: string description: Prefixed segment ID (format `s_`) name: type: string ApiSegment: type: object required: - id - name - entityType properties: id: type: string description: Prefixed segment ID (format `s_`) name: type: string description: The segment's display name entityType: type: string enum: - contact - object - organization description: The type of entity this segment contains entityCount: type: integer description: Number of entities in this segment url: type: string format: uri description: Common Room URL for this segment 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: InvalidRequest: description: Invalid Request headers: X-RateLimit-Limit: $ref: '#/components/headers/X-RateLimit-Limit' X-RateLimit-Remaining: $ref: '#/components/headers/X-RateLimit-Remaining' content: application/json: schema: type: object properties: reason: type: string description: A reason of `invalid-request-body` indicates that the request body did not match the schema required by our API docs. Please double-check that your request body matches the schema above, and contact us for help if you continue to experience issues. docs: type: string description: A link to this API documentation 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"