openapi: 3.0.0 info: title: Common Room Core Activities Custom Fields 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: Custom Fields description: Operations related to custom field definitions paths: /custom-fields/{id}: get: summary: Get a custom field by ID description: Retrieve a specific custom field definition by its unique identifier. tags: - Custom Fields parameters: - name: id in: path required: true schema: type: string description: The prefixed custom field ID (format `cf_`) 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/CustomFieldResponse' '400': description: Bad Request (e.g. invalid custom field ID) content: application/json: schema: $ref: '#/components/schemas/ApiV2ErrorResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Status' '404': description: Custom field not found content: application/json: schema: $ref: '#/components/schemas/ApiV2ErrorResponse' '429': $ref: '#/components/responses/RateLimited' /custom-fields: get: summary: List custom fields description: 'Retrieve all custom field definitions for the community, optionally filtered by entity type. ' tags: - Custom Fields parameters: - name: entityType in: query required: false schema: type: string description: 'Filter fields by entity type. Valid values: `contact`, `organization`, or a prefixed object type ID (format `cot_`). ' 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/CustomFieldList' '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: 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. CustomFieldResponse: type: object required: - success - data properties: success: type: boolean enum: - true data: $ref: '#/components/schemas/ApiCustomField' ApiCustomField: type: object required: - id - name - entityTypes - keyField - valueType properties: id: type: string description: Prefixed custom field ID (format `cf_`) name: type: string description: The custom field's display name entityTypes: type: array items: type: string enum: - contact - object - organization description: Entity types this field applies to keyField: type: boolean description: Whether this is a key field used for deduplication valueType: type: string enum: - string - url - int - number - date - boolean description: The data type of field values sampleValues: type: array items: $ref: '#/components/schemas/ApiFieldValue' description: Example values for this field description: type: string nullable: true description: Human-readable description of the field targetSubTypes: type: array items: type: string description: Sub-types this field targets providedBy: type: string nullable: true description: Name of the provider that owns this field, if any objectTypeId: type: string description: Prefixed object type ID (format `cot_`), if this field belongs to a specific object type CustomFieldList: type: object required: - success - data properties: success: type: boolean enum: - true data: type: array items: $ref: '#/components/schemas/ApiCustomField' 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"