{"openapi":"3.1.0","info":{"title":"Relaticle API","description":"REST API reference for Relaticle records and custom fields, with personal access token setup, filtering, sorting and request limits.\n\nWelcome to the Relaticle API documentation. This API follows the [JSON:API](https://jsonapi.org/) specification.\n\nAll endpoints require authentication via Bearer token. Generate an access token from **Settings > Access Tokens** in the Relaticle app. Tokens carry scoped abilities (`read`, `create`, `update`, `delete`). Listing and showing records, and the `POST` filter query endpoints, need `read`. Every other write needs `create` (`POST`), `update` (`PUT`, `PATCH`) or `delete` (`DELETE`).\n\nThe API is versioned in the URL path (`/v1/`). Breaking changes ship under a new path version; the previous version keeps working for at least six months after the new one is announced.\n\nLimits are 600 requests per minute per workspace, and per token 300 reads and 60 writes per minute. Filter queries count as reads. Every authenticated response carries `X-RateLimit-Limit` and `X-RateLimit-Remaining`. When a limit is exceeded the API returns `429` with a `Retry-After` header giving the seconds to wait.\n\nErrors use a consistent JSON envelope: `{\"message\": \"...\"}`, and validation failures (`422`) add an `errors` object keyed by field name.","version":"1.0.0"},"servers":[{"url":"https://api.relaticle.com"}],"tags":[{"name":"Companies","description":"\nCreate a company, or update the one already holding the matched value. Returns 201 when\ncreated and 200 when updated. Requires both the `create` and `update` abilities."},{"name":"People","description":"\nCreate a person, or update the one already holding the matched value. Returns 201 when\ncreated and 200 when updated. Requires both the `create` and `update` abilities."},{"name":"Opportunities","description":"\nManage sales opportunities in your CRM workspace."},{"name":"Tasks","description":"\nManage tasks in your CRM workspace."},{"name":"Notes","description":"\nManage notes in your CRM workspace."},{"name":"Custom Fields","description":"\nList custom field definitions configured for your workspace."},{"name":"Endpoints","description":""}],"components":{"securitySchemes":{"default":{"type":"http","scheme":"bearer","description":"Generate an access token from **Settings > Access Tokens** in the Relaticle app.\n\nTokens carry scoped abilities: `read` (GET), `create` (POST), `update` (PUT/PATCH), `delete` (DELETE). A request whose token lacks the ability for its HTTP method is rejected with 403.\n\nEvery token is bound to one workspace; responses only ever contain that workspace's records."}},"schemas":{"Error":{"type":"object","required":["message"],"properties":{"message":{"type":"string","description":"Human-readable explanation of the failure."}}},"ValidationError":{"type":"object","required":["message","errors"],"properties":{"message":{"type":"string","description":"Summary of the first validation failure."},"errors":{"type":"object","description":"Validation messages keyed by the offending field name.","additionalProperties":{"type":"array","items":{"type":"string"}}}}}}},"security":[{"default":[]}],"paths":{"/v1/companies/upsert":{"post":{"summary":"","operationId":"postV1CompaniesUpsert","description":"","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","examples":[""]},"type":{"type":"string","examples":["companies"]},"attributes":{"type":"object","properties":{"name":{"type":"string","examples":["Jenkins, Barton and Fisher"]},"account_owner_id":{"type":"string","examples":["01M4EM1DQGE71B0SB8CD2VDFNA"]},"creation_source":{"type":"string","examples":["web"]},"created_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"updated_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"custom_fields":{"type":"object","properties":{}}}}}}},"examples":[{"data":{"id":"","type":"companies","attributes":{"name":"Jenkins, Barton and Fisher","account_owner_id":"01M4EM1DQGE71B0SB8CD2VDFNA","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}}}]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `create` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"More than one company holds the matched value, so nothing was written. `matches` lists up to 25 of their IDs.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","examples":["More than one record holds this domains value. Merge the duplicates, then retry."]},"matches":{"type":"array","items":{"type":"string"},"examples":[["01jz8x0m6v1b4n7q2r5t8w9y3a","01jz8x0m6v1b4n7q2r5t8w9y3b"]]}},"examples":[{"message":"More than one record holds this domains value. Merge the duplicates, then retry.","matches":["01jz8x0m6v1b4n7q2r5t8w9y3a","01jz8x0m6v1b4n7q2r5t8w9y3b"]}]}}}},"422":{"description":"Validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["Companies"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"match":{"type":"object","description":"The unique field and value that identify an existing company.","properties":{"field":{"type":"string","description":"Code of a custom field marked unique, such as `domains`.","examples":["domains"]},"value":{"type":"string","description":"Value to look for. Matched case-insensitively, and inside multi-value fields.","examples":["acme.com"]}},"required":["field","value"],"examples":[{"field":"domains","value":"acme.com"}]},"name":{"type":"string","description":"","examples":["Acme Corp"]},"custom_fields":{"type":"object","description":"","properties":{},"examples":[null]}},"required":["match","name"]}}}}}},"/v1/companies/query":{"post":{"summary":"Query companies","operationId":"queryCompanies","description":"Returns the same records as the list endpoint, with filter, sort, include and pagination sent as a JSON body, so a filter too large for a URL still fits. To fetch the next page, re-send the same body with the next `page`, or with `cursor` set to `meta.next_cursor` after a first request with `\"cursor\": true`. A GET to `links.next` is not a valid request. A body larger than 256 KB returns 413.","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","examples":[""]},"type":{"type":"string","examples":["companies"]},"attributes":{"type":"object","properties":{"name":{"type":"string","examples":["Feeney Group"]},"account_owner_id":{"type":"string","examples":["01M4EM1DR4XNNNS7V0FR9DA205"]},"creation_source":{"type":"string","examples":["web"]},"created_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"updated_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"custom_fields":{"type":"object","properties":{}}}}}},"examples":[[{"id":"","type":"companies","attributes":{"name":"Feeney Group","account_owner_id":"01M4EM1DR4XNNNS7V0FR9DA205","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":[]}},{"id":"","type":"companies","attributes":{"name":"Ward PLC","account_owner_id":"01M4EM1DR4XNNNS7V0FR9DA208","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":[]}}]]},"links":{"type":"object","properties":{"first":{"type":"string","examples":["/?page=1"]},"last":{"type":"string","examples":["/?page=1"]},"prev":{"type":["string","null"],"examples":[null]},"next":{"type":["string","null"],"examples":[null]}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","examples":[1]},"from":{"type":"integer","examples":[1]},"last_page":{"type":"integer","examples":[1]},"links":{"type":"array","items":{"type":"object","properties":{"url":{"type":["string","null"],"examples":[null]},"label":{"type":"string","examples":["&laquo; Previous"]},"page":{"type":["string","null"],"examples":[null]},"active":{"type":"boolean","examples":[false]}}},"examples":[[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}]]},"path":{"type":"string","examples":["/"]},"per_page":{"type":"integer","examples":[15]},"to":{"type":"integer","examples":[2]},"total":{"type":"integer","examples":[2]}}}},"examples":[{"data":[{"id":"","type":"companies","attributes":{"name":"Feeney Group","account_owner_id":"01M4EM1DR4XNNNS7V0FR9DA205","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}},{"id":"","type":"companies","attributes":{"name":"Ward PLC","account_owner_id":"01M4EM1DR4XNNNS7V0FR9DA208","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}}],"links":{"first":"/?page=1","last":"/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"path":"/","per_page":15,"to":2,"total":2}}]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `create` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["Companies"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"per_page":{"type":"integer","description":"Number of results per page (1-100). Default: 15.","examples":[15]},"cursor":{"type":"string","description":"Switches to cursor pagination. Send `true` for the first page, then the `meta.next_cursor` value of the previous page. Sorts by a custom field need `page`.","examples":[null]},"page":{"type":"integer","description":"Page number for offset pagination (1-1,000,000, when cursor is not used). Default: 1.","examples":[1]},"include":{"type":"string","description":"Include related resources (comma-separated). Allowed: creator, accountOwner, people, opportunities, peopleCount, opportunitiesCount, tasksCount, notesCount.","examples":["creator"]},"sort":{"type":"string","description":"Sort results. Prefix with `-` for descending. Allowed: name, -name, created_at, -created_at, updated_at, -updated_at.","examples":["-created_at"]},"fields":{"type":"string","description":"","examples":[null]},"filter":{"type":"object","description":"An object of conditions. Keys starting with $ are keywords: operators ($eq, $contains, $is_empty, $gt, $gte, $lt, $lte, $has_any, $has_none, $in, $not_in) and logic ($and and $or take a list of condition objects, $not takes one and also returns records where the inner fields are empty). Other keys are names. A filter holds at most 20 conditions, 3 levels of $and, $or and $not, and 2 levels of relations. A list holds at most 100 values. Email values match in any letter case. Phone values match in any format, and the operand needs a country code such as +1 415 555 0100. Link values match in any letter case, with or without the scheme. Domain values match as a bare host or a full URL, with or without www. Tags-input values match the exact stored value. Date-time values match a date without a time, such as 2026-10-01, as that whole day. Email and link fields also take a domain sub-field with $in or $not_in, such as {\"domain\":{\"$in\":[\"acme.com\"]}}, which matches the host of each value. $not_in and $has_none also match records where the field is empty. $is_empty takes true or false. Native fields: name, created_at, updated_at, creation_source. Relations take $in, $not_in or $is_empty on record ids, or conditions on the related record that use that record type's own filter names, including custom_fields. Prefer conditions over listing the related records first and passing their ids: people (people), opportunities (opportunity). Member relations take $in, $not_in or $is_empty on workspace member ids only, with no nested conditions: creator, accountOwner. custom_fields takes an object keyed by custom field code, each value an operator object.","properties":{},"examples":[{"name":{"$contains":"Acme"},"$or":[{"creation_source":{"$eq":"api"}},{"created_at":{"$gte":"2026-01-01"}}]}]}}}}}}}},"/v1/companies":{"get":{"summary":"","operationId":"getV1Companies","description":"","parameters":[{"in":"query","name":"filter[name][{operator}]","description":"Filter by name. Operators: $eq, $contains, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by name. Operators: $eq, $contains, $is_empty.","examples":[null]}},{"in":"query","name":"filter[created_at][{operator}]","description":"Filter by created_at. Operators: $eq, $gt, $gte, $lt, $lte, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by created_at. Operators: $eq, $gt, $gte, $lt, $lte, $is_empty.","examples":[null]}},{"in":"query","name":"filter[updated_at][{operator}]","description":"Filter by updated_at. Operators: $eq, $gt, $gte, $lt, $lte, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by updated_at. Operators: $eq, $gt, $gte, $lt, $lte, $is_empty.","examples":[null]}},{"in":"query","name":"filter[creation_source][{operator}]","description":"Filter by creation_source. Operators: $eq, $in, $not_in, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by creation_source. Operators: $eq, $in, $not_in, $is_empty.","examples":[null]}},{"in":"query","name":"filter[creator][{operator}]","description":"Filter by creator. Operators: $in, $not_in, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by creator. Operators: $in, $not_in, $is_empty.","examples":[null]}},{"in":"query","name":"filter[accountOwner][{operator}]","description":"Filter by accountOwner. Operators: $in, $not_in, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by accountOwner. Operators: $in, $not_in, $is_empty.","examples":[null]}},{"in":"query","name":"filter[people][{operator}]","description":"Filter by people. Operators: $in, $not_in, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by people. Operators: $in, $not_in, $is_empty.","examples":[null]}},{"in":"query","name":"filter[opportunities][{operator}]","description":"Filter by opportunities. Operators: $in, $not_in, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by opportunities. Operators: $in, $not_in, $is_empty.","examples":[null]}},{"in":"query","name":"filter[custom_fields][{code}][{operator}]","description":"Filter by a custom field value. Text: $eq, $contains. Number, currency, date, date-time: $eq, $gt, $gte, $lt, $lte. Email, phone, link, domain, checkbox-list, tags-input, multi-select: $has_any, $has_none. Checkbox, toggle: $eq. Radio, toggle-buttons, select: $eq, $in, $not_in. In a query string $is_empty also takes 1 or 0. Checkbox-list, radio, toggle-buttons, select and multi-select values take an option label or ID. An unknown one returns 422. Choice lists split on commas, so repeat the parameter with [] when a label contains a comma. Email values match in any letter case. Phone values match in any format, and the operand needs a country code such as +1 415 555 0100. Link values match in any letter case, with or without the scheme. Domain values match as a bare host or a full URL, with or without www. Tags-input values match the exact stored value. Date-time values match a date without a time, such as 2026-10-01, as that whole day. Email and link fields also take a domain sub-field with $in or $not_in, such as {\"domain\":{\"$in\":[\"acme.com\"]}}, which matches the host of each value. $not_in and $has_none also match records where the field is empty. $is_empty takes true or false. Repeat [] to send several values. A filter holds at most 20 conditions, 3 levels of $and, $or and $not, and 2 levels of relations. A list holds at most 100 values. Examples: filter[custom_fields][stage][$in]=Qualification,Prospecting and filter[custom_fields][emails][domain][$not_in]=acme.com.","example":null,"required":false,"schema":{"type":"string","description":"Filter by a custom field value. Text: $eq, $contains. Number, currency, date, date-time: $eq, $gt, $gte, $lt, $lte. Email, phone, link, domain, checkbox-list, tags-input, multi-select: $has_any, $has_none. Checkbox, toggle: $eq. Radio, toggle-buttons, select: $eq, $in, $not_in. In a query string $is_empty also takes 1 or 0. Checkbox-list, radio, toggle-buttons, select and multi-select values take an option label or ID. An unknown one returns 422. Choice lists split on commas, so repeat the parameter with [] when a label contains a comma. Email values match in any letter case. Phone values match in any format, and the operand needs a country code such as +1 415 555 0100. Link values match in any letter case, with or without the scheme. Domain values match as a bare host or a full URL, with or without www. Tags-input values match the exact stored value. Date-time values match a date without a time, such as 2026-10-01, as that whole day. Email and link fields also take a domain sub-field with $in or $not_in, such as {\"domain\":{\"$in\":[\"acme.com\"]}}, which matches the host of each value. $not_in and $has_none also match records where the field is empty. $is_empty takes true or false. Repeat [] to send several values. A filter holds at most 20 conditions, 3 levels of $and, $or and $not, and 2 levels of relations. A list holds at most 100 values. Examples: filter[custom_fields][stage][$in]=Qualification,Prospecting and filter[custom_fields][emails][domain][$not_in]=acme.com.","examples":[null]}},{"in":"query","name":"sort","description":"Sort results. Prefix with `-` for descending. Allowed: name, -name, created_at, -created_at, updated_at, -updated_at.","required":false,"schema":{"type":"string","description":"Sort results. Prefix with `-` for descending. Allowed: name, -name, created_at, -created_at, updated_at, -updated_at.","examples":["-created_at"]}},{"in":"query","name":"include","description":"Include related resources (comma-separated). Allowed: creator, accountOwner, people, opportunities, peopleCount, opportunitiesCount, tasksCount, notesCount.","required":false,"schema":{"type":"string","description":"Include related resources (comma-separated). Allowed: creator, accountOwner, people, opportunities, peopleCount, opportunitiesCount, tasksCount, notesCount.","examples":["creator"]}},{"in":"query","name":"per_page","description":"Number of results per page (1-100). Default: 15.","required":false,"schema":{"type":"integer","description":"Number of results per page (1-100). Default: 15.","examples":[15]}},{"in":"query","name":"cursor","description":"Switches to cursor pagination. Send `true` for the first page, then the `meta.next_cursor` value of the previous page. Sorts by a custom field need `page`.","example":null,"required":false,"schema":{"type":"string","description":"Switches to cursor pagination. Send `true` for the first page, then the `meta.next_cursor` value of the previous page. Sorts by a custom field need `page`.","examples":[null]}},{"in":"query","name":"page","description":"Page number for offset pagination (1-1,000,000, when cursor is not used). Default: 1.","required":false,"schema":{"type":"integer","description":"Page number for offset pagination (1-1,000,000, when cursor is not used). Default: 1.","examples":[1]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","examples":[""]},"type":{"type":"string","examples":["companies"]},"attributes":{"type":"object","properties":{"name":{"type":"string","examples":["Feeney Group"]},"account_owner_id":{"type":"string","examples":["01M4EM1DRCZHQ7M2V2RF5D8F5W"]},"creation_source":{"type":"string","examples":["web"]},"created_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"updated_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"custom_fields":{"type":"object","properties":{}}}}}},"examples":[[{"id":"","type":"companies","attributes":{"name":"Feeney Group","account_owner_id":"01M4EM1DRCZHQ7M2V2RF5D8F5W","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":[]}},{"id":"","type":"companies","attributes":{"name":"Ward PLC","account_owner_id":"01M4EM1DRCZHQ7M2V2RF5D8F5Z","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":[]}}]]},"links":{"type":"object","properties":{"first":{"type":"string","examples":["/?page=1"]},"last":{"type":"string","examples":["/?page=1"]},"prev":{"type":["string","null"],"examples":[null]},"next":{"type":["string","null"],"examples":[null]}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","examples":[1]},"from":{"type":"integer","examples":[1]},"last_page":{"type":"integer","examples":[1]},"links":{"type":"array","items":{"type":"object","properties":{"url":{"type":["string","null"],"examples":[null]},"label":{"type":"string","examples":["&laquo; Previous"]},"page":{"type":["string","null"],"examples":[null]},"active":{"type":"boolean","examples":[false]}}},"examples":[[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}]]},"path":{"type":"string","examples":["/"]},"per_page":{"type":"integer","examples":[15]},"to":{"type":"integer","examples":[2]},"total":{"type":"integer","examples":[2]}}}},"examples":[{"data":[{"id":"","type":"companies","attributes":{"name":"Feeney Group","account_owner_id":"01M4EM1DRCZHQ7M2V2RF5D8F5W","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}},{"id":"","type":"companies","attributes":{"name":"Ward PLC","account_owner_id":"01M4EM1DRCZHQ7M2V2RF5D8F5Z","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}}],"links":{"first":"/?page=1","last":"/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"path":"/","per_page":15,"to":2,"total":2}}]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `read` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["Companies"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"per_page":{"type":"integer","description":"Must be at least 1. Must not be greater than 100.","examples":[16]},"cursor":{"type":"string","description":"","examples":[null]},"page":{"type":"integer","description":"Must be at least 1. Must not be greater than 1000000.","examples":[7]},"include":{"type":"string","description":"","examples":["ab"]},"sort":{"type":"string","description":"","examples":["ab"]},"fields":{"type":"string","description":"","examples":[null]}}}}}}},"post":{"summary":"","operationId":"postV1Companies","description":"","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","examples":[""]},"type":{"type":"string","examples":["companies"]},"attributes":{"type":"object","properties":{"name":{"type":"string","examples":["Waelchi-Hermiston"]},"account_owner_id":{"type":"string","examples":["01M4EM1DRGE58Z2A0FC4MKTH2C"]},"creation_source":{"type":"string","examples":["web"]},"created_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"updated_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"custom_fields":{"type":"object","properties":{}}}}}}},"examples":[{"data":{"id":"","type":"companies","attributes":{"name":"Waelchi-Hermiston","account_owner_id":"01M4EM1DRGE58Z2A0FC4MKTH2C","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}}}]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `create` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["Companies"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Must not be greater than 255 characters.","examples":["ipzdszigdqrrkthq"]},"account_owner_id":{"type":["string","null"],"description":"","enum":["scribe-user-id"],"examples":["scribe-user-id"]},"custom_fields":{"type":"object","description":"","properties":{},"examples":[null]}},"required":["name"]}}}}}},"/v1/companies/{id}":{"get":{"summary":"","operationId":"getV1CompaniesId","description":"","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","examples":[""]},"type":{"type":"string","examples":["companies"]},"attributes":{"type":"object","properties":{"name":{"type":"string","examples":["Weber, Anderson and Connelly"]},"account_owner_id":{"type":"string","examples":["01M4EM1DRNEWR9WKAG8GXW9ZY6"]},"creation_source":{"type":"string","examples":["web"]},"created_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"updated_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"custom_fields":{"type":"object","properties":{}}}}}}},"examples":[{"data":{"id":"","type":"companies","attributes":{"name":"Weber, Anderson and Connelly","account_owner_id":"01M4EM1DRNEWR9WKAG8GXW9ZY6","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}}}]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `read` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No record with that ID exists in the workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["Companies"]},"put":{"summary":"","operationId":"putV1CompaniesId","description":"","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","examples":[""]},"type":{"type":"string","examples":["companies"]},"attributes":{"type":"object","properties":{"name":{"type":"string","examples":["Waelchi-Hermiston"]},"account_owner_id":{"type":"string","examples":["01M4EM1DRRPCYMM1YBPB990051"]},"creation_source":{"type":"string","examples":["web"]},"created_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"updated_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"custom_fields":{"type":"object","properties":{}}}}}}},"examples":[{"data":{"id":"","type":"companies","attributes":{"name":"Waelchi-Hermiston","account_owner_id":"01M4EM1DRRPCYMM1YBPB990051","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}}}]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `update` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No record with that ID exists in the workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["Companies"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Must not be greater than 255 characters.","examples":["ipzdszigdqrrkthq"]},"account_owner_id":{"type":["string","null"],"description":"","enum":["scribe-user-id"],"examples":["scribe-user-id"]},"custom_fields":{"type":"object","description":"","properties":{},"examples":[null]}}}}}}},"delete":{"summary":"","operationId":"deleteV1CompaniesId","description":"","parameters":[],"responses":{"204":{"description":"","content":{"application/json":{"schema":{"type":["object","null"]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `delete` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No record with that ID exists in the workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["Companies"]},"parameters":[{"in":"path","name":"id","description":"The ID of the company.","required":true,"schema":{"type":"string","examples":["01m48jdgkhcws2v8chn1tz7d4c"]}}]},"/v1/people/upsert":{"post":{"summary":"","operationId":"postV1PeopleUpsert","description":"","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","examples":[""]},"type":{"type":"string","examples":["people"]},"attributes":{"type":"object","properties":{"name":{"type":"string","examples":["Sam Jakubowski"]},"company_id":{"type":["string","null"],"examples":[null]},"creation_source":{"type":"string","examples":["web"]},"created_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"updated_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"custom_fields":{"type":"object","properties":{}}}}}}},"examples":[{"data":{"id":"","type":"people","attributes":{"name":"Sam Jakubowski","company_id":null,"creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}}}]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `create` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"More than one person holds the matched value, so nothing was written. `matches` lists up to 25 of their IDs.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","examples":["More than one record holds this emails value. Merge the duplicates, then retry."]},"matches":{"type":"array","items":{"type":"string"},"examples":[["01jz8x0m6v1b4n7q2r5t8w9y3a","01jz8x0m6v1b4n7q2r5t8w9y3b"]]}},"examples":[{"message":"More than one record holds this emails value. Merge the duplicates, then retry.","matches":["01jz8x0m6v1b4n7q2r5t8w9y3a","01jz8x0m6v1b4n7q2r5t8w9y3b"]}]}}}},"422":{"description":"Validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["People"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"match":{"type":"object","description":"The unique field and value that identify an existing person.","properties":{"field":{"type":"string","description":"Code of a custom field marked unique, such as `emails`.","examples":["emails"]},"value":{"type":"string","description":"Value to look for. Matched case-insensitively, and inside multi-value fields.","examples":["grace@navy.mil"]}},"required":["field","value"],"examples":[{"field":"emails","value":"grace@navy.mil"}]},"name":{"type":"string","description":"","examples":["Grace Hopper"]},"company_id":{"type":"string","description":"","examples":["ab"]},"custom_fields":{"type":"object","description":"","properties":{},"examples":[null]}},"required":["match","name"]}}}}}},"/v1/people/query":{"post":{"summary":"Query people","operationId":"queryPeople","description":"Returns the same records as the list endpoint, with filter, sort, include and pagination sent as a JSON body, so a filter too large for a URL still fits. To fetch the next page, re-send the same body with the next `page`, or with `cursor` set to `meta.next_cursor` after a first request with `\"cursor\": true`. A GET to `links.next` is not a valid request. A body larger than 256 KB returns 413.","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","examples":[""]},"type":{"type":"string","examples":["people"]},"attributes":{"type":"object","properties":{"name":{"type":"string","examples":["Sam Jakubowski"]},"company_id":{"type":["string","null"],"examples":[null]},"creation_source":{"type":"string","examples":["web"]},"created_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"updated_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"custom_fields":{"type":"object","properties":{}}}}}},"examples":[[{"id":"","type":"people","attributes":{"name":"Sam Jakubowski","company_id":null,"creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":[]}},{"id":"","type":"people","attributes":{"name":"Michele Howell","company_id":null,"creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":[]}}]]},"links":{"type":"object","properties":{"first":{"type":"string","examples":["/?page=1"]},"last":{"type":"string","examples":["/?page=1"]},"prev":{"type":["string","null"],"examples":[null]},"next":{"type":["string","null"],"examples":[null]}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","examples":[1]},"from":{"type":"integer","examples":[1]},"last_page":{"type":"integer","examples":[1]},"links":{"type":"array","items":{"type":"object","properties":{"url":{"type":["string","null"],"examples":[null]},"label":{"type":"string","examples":["&laquo; Previous"]},"page":{"type":["string","null"],"examples":[null]},"active":{"type":"boolean","examples":[false]}}},"examples":[[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}]]},"path":{"type":"string","examples":["/"]},"per_page":{"type":"integer","examples":[15]},"to":{"type":"integer","examples":[2]},"total":{"type":"integer","examples":[2]}}}},"examples":[{"data":[{"id":"","type":"people","attributes":{"name":"Sam Jakubowski","company_id":null,"creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}},{"id":"","type":"people","attributes":{"name":"Michele Howell","company_id":null,"creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}}],"links":{"first":"/?page=1","last":"/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"path":"/","per_page":15,"to":2,"total":2}}]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `create` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["People"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"per_page":{"type":"integer","description":"Number of results per page (1-100). Default: 15.","examples":[15]},"cursor":{"type":"string","description":"Switches to cursor pagination. Send `true` for the first page, then the `meta.next_cursor` value of the previous page. Sorts by a custom field need `page`.","examples":[null]},"page":{"type":"integer","description":"Page number for offset pagination (1-1,000,000, when cursor is not used). Default: 1.","examples":[1]},"include":{"type":"string","description":"Include related resources (comma-separated). Allowed: creator, company, tasksCount, notesCount.","examples":["creator"]},"sort":{"type":"string","description":"Sort results. Prefix with `-` for descending. Allowed: name, -name, created_at, -created_at, updated_at, -updated_at.","examples":["-created_at"]},"fields":{"type":"string","description":"","examples":[null]},"filter":{"type":"object","description":"An object of conditions. Keys starting with $ are keywords: operators ($eq, $contains, $is_empty, $gt, $gte, $lt, $lte, $has_any, $has_none, $in, $not_in) and logic ($and and $or take a list of condition objects, $not takes one and also returns records where the inner fields are empty). Other keys are names. A filter holds at most 20 conditions, 3 levels of $and, $or and $not, and 2 levels of relations. A list holds at most 100 values. Email values match in any letter case. Phone values match in any format, and the operand needs a country code such as +1 415 555 0100. Link values match in any letter case, with or without the scheme. Domain values match as a bare host or a full URL, with or without www. Tags-input values match the exact stored value. Date-time values match a date without a time, such as 2026-10-01, as that whole day. Email and link fields also take a domain sub-field with $in or $not_in, such as {\"domain\":{\"$in\":[\"acme.com\"]}}, which matches the host of each value. $not_in and $has_none also match records where the field is empty. $is_empty takes true or false. Native fields: name, created_at, updated_at, creation_source. Relations take $in, $not_in or $is_empty on record ids, or conditions on the related record that use that record type's own filter names, including custom_fields. Prefer conditions over listing the related records first and passing their ids: company (company). Member relations take $in, $not_in or $is_empty on workspace member ids only, with no nested conditions: creator. custom_fields takes an object keyed by custom field code, each value an operator object.","properties":{},"examples":[{"name":{"$contains":"Acme"},"$or":[{"creation_source":{"$eq":"api"}},{"created_at":{"$gte":"2026-01-01"}}]}]}}}}}}}},"/v1/people":{"get":{"summary":"","operationId":"getV1People","description":"","parameters":[{"in":"query","name":"filter[name][{operator}]","description":"Filter by name. Operators: $eq, $contains, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by name. Operators: $eq, $contains, $is_empty.","examples":[null]}},{"in":"query","name":"filter[created_at][{operator}]","description":"Filter by created_at. Operators: $eq, $gt, $gte, $lt, $lte, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by created_at. Operators: $eq, $gt, $gte, $lt, $lte, $is_empty.","examples":[null]}},{"in":"query","name":"filter[updated_at][{operator}]","description":"Filter by updated_at. Operators: $eq, $gt, $gte, $lt, $lte, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by updated_at. Operators: $eq, $gt, $gte, $lt, $lte, $is_empty.","examples":[null]}},{"in":"query","name":"filter[creation_source][{operator}]","description":"Filter by creation_source. Operators: $eq, $in, $not_in, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by creation_source. Operators: $eq, $in, $not_in, $is_empty.","examples":[null]}},{"in":"query","name":"filter[creator][{operator}]","description":"Filter by creator. Operators: $in, $not_in, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by creator. Operators: $in, $not_in, $is_empty.","examples":[null]}},{"in":"query","name":"filter[company][{operator}]","description":"Filter by company. Operators: $in, $not_in, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by company. Operators: $in, $not_in, $is_empty.","examples":[null]}},{"in":"query","name":"filter[custom_fields][{code}][{operator}]","description":"Filter by a custom field value. Text: $eq, $contains. Number, currency, date, date-time: $eq, $gt, $gte, $lt, $lte. Email, phone, link, domain, checkbox-list, tags-input, multi-select: $has_any, $has_none. Checkbox, toggle: $eq. Radio, toggle-buttons, select: $eq, $in, $not_in. In a query string $is_empty also takes 1 or 0. Checkbox-list, radio, toggle-buttons, select and multi-select values take an option label or ID. An unknown one returns 422. Choice lists split on commas, so repeat the parameter with [] when a label contains a comma. Email values match in any letter case. Phone values match in any format, and the operand needs a country code such as +1 415 555 0100. Link values match in any letter case, with or without the scheme. Domain values match as a bare host or a full URL, with or without www. Tags-input values match the exact stored value. Date-time values match a date without a time, such as 2026-10-01, as that whole day. Email and link fields also take a domain sub-field with $in or $not_in, such as {\"domain\":{\"$in\":[\"acme.com\"]}}, which matches the host of each value. $not_in and $has_none also match records where the field is empty. $is_empty takes true or false. Repeat [] to send several values. A filter holds at most 20 conditions, 3 levels of $and, $or and $not, and 2 levels of relations. A list holds at most 100 values. Examples: filter[custom_fields][stage][$in]=Qualification,Prospecting and filter[custom_fields][emails][domain][$not_in]=acme.com.","example":null,"required":false,"schema":{"type":"string","description":"Filter by a custom field value. Text: $eq, $contains. Number, currency, date, date-time: $eq, $gt, $gte, $lt, $lte. Email, phone, link, domain, checkbox-list, tags-input, multi-select: $has_any, $has_none. Checkbox, toggle: $eq. Radio, toggle-buttons, select: $eq, $in, $not_in. In a query string $is_empty also takes 1 or 0. Checkbox-list, radio, toggle-buttons, select and multi-select values take an option label or ID. An unknown one returns 422. Choice lists split on commas, so repeat the parameter with [] when a label contains a comma. Email values match in any letter case. Phone values match in any format, and the operand needs a country code such as +1 415 555 0100. Link values match in any letter case, with or without the scheme. Domain values match as a bare host or a full URL, with or without www. Tags-input values match the exact stored value. Date-time values match a date without a time, such as 2026-10-01, as that whole day. Email and link fields also take a domain sub-field with $in or $not_in, such as {\"domain\":{\"$in\":[\"acme.com\"]}}, which matches the host of each value. $not_in and $has_none also match records where the field is empty. $is_empty takes true or false. Repeat [] to send several values. A filter holds at most 20 conditions, 3 levels of $and, $or and $not, and 2 levels of relations. A list holds at most 100 values. Examples: filter[custom_fields][stage][$in]=Qualification,Prospecting and filter[custom_fields][emails][domain][$not_in]=acme.com.","examples":[null]}},{"in":"query","name":"sort","description":"Sort results. Prefix with `-` for descending. Allowed: name, -name, created_at, -created_at, updated_at, -updated_at.","required":false,"schema":{"type":"string","description":"Sort results. Prefix with `-` for descending. Allowed: name, -name, created_at, -created_at, updated_at, -updated_at.","examples":["-created_at"]}},{"in":"query","name":"include","description":"Include related resources (comma-separated). Allowed: creator, company, tasksCount, notesCount.","required":false,"schema":{"type":"string","description":"Include related resources (comma-separated). Allowed: creator, company, tasksCount, notesCount.","examples":["creator"]}},{"in":"query","name":"per_page","description":"Number of results per page (1-100). Default: 15.","required":false,"schema":{"type":"integer","description":"Number of results per page (1-100). Default: 15.","examples":[15]}},{"in":"query","name":"cursor","description":"Switches to cursor pagination. Send `true` for the first page, then the `meta.next_cursor` value of the previous page. Sorts by a custom field need `page`.","example":null,"required":false,"schema":{"type":"string","description":"Switches to cursor pagination. Send `true` for the first page, then the `meta.next_cursor` value of the previous page. Sorts by a custom field need `page`.","examples":[null]}},{"in":"query","name":"page","description":"Page number for offset pagination (1-1,000,000, when cursor is not used). Default: 1.","required":false,"schema":{"type":"integer","description":"Page number for offset pagination (1-1,000,000, when cursor is not used). Default: 1.","examples":[1]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","examples":[""]},"type":{"type":"string","examples":["people"]},"attributes":{"type":"object","properties":{"name":{"type":"string","examples":["Sam Jakubowski"]},"company_id":{"type":["string","null"],"examples":[null]},"creation_source":{"type":"string","examples":["web"]},"created_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"updated_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"custom_fields":{"type":"object","properties":{}}}}}},"examples":[[{"id":"","type":"people","attributes":{"name":"Sam Jakubowski","company_id":null,"creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":[]}},{"id":"","type":"people","attributes":{"name":"Michele Howell","company_id":null,"creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":[]}}]]},"links":{"type":"object","properties":{"first":{"type":"string","examples":["/?page=1"]},"last":{"type":"string","examples":["/?page=1"]},"prev":{"type":["string","null"],"examples":[null]},"next":{"type":["string","null"],"examples":[null]}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","examples":[1]},"from":{"type":"integer","examples":[1]},"last_page":{"type":"integer","examples":[1]},"links":{"type":"array","items":{"type":"object","properties":{"url":{"type":["string","null"],"examples":[null]},"label":{"type":"string","examples":["&laquo; Previous"]},"page":{"type":["string","null"],"examples":[null]},"active":{"type":"boolean","examples":[false]}}},"examples":[[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}]]},"path":{"type":"string","examples":["/"]},"per_page":{"type":"integer","examples":[15]},"to":{"type":"integer","examples":[2]},"total":{"type":"integer","examples":[2]}}}},"examples":[{"data":[{"id":"","type":"people","attributes":{"name":"Sam Jakubowski","company_id":null,"creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}},{"id":"","type":"people","attributes":{"name":"Michele Howell","company_id":null,"creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}}],"links":{"first":"/?page=1","last":"/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"path":"/","per_page":15,"to":2,"total":2}}]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `read` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["People"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"per_page":{"type":"integer","description":"Must be at least 1. Must not be greater than 100.","examples":[16]},"cursor":{"type":"string","description":"","examples":[null]},"page":{"type":"integer","description":"Must be at least 1. Must not be greater than 1000000.","examples":[7]},"include":{"type":"string","description":"","examples":["ab"]},"sort":{"type":"string","description":"","examples":["ab"]},"fields":{"type":"string","description":"","examples":[null]}}}}}}},"post":{"summary":"","operationId":"postV1People","description":"","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","examples":[""]},"type":{"type":"string","examples":["people"]},"attributes":{"type":"object","properties":{"name":{"type":"string","examples":["Sam Jakubowski"]},"company_id":{"type":["string","null"],"examples":[null]},"creation_source":{"type":"string","examples":["web"]},"created_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"updated_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"custom_fields":{"type":"object","properties":{}}}}}}},"examples":[{"data":{"id":"","type":"people","attributes":{"name":"Sam Jakubowski","company_id":null,"creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}}}]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `create` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["People"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"","examples":["Jane Smith"]},"company_id":{"type":"string","description":"","examples":["ab"]},"custom_fields":{"type":"object","description":"","properties":{},"examples":[null]}},"required":["name"]}}}}}},"/v1/people/{id}":{"get":{"summary":"","operationId":"getV1PeopleId","description":"","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","examples":[""]},"type":{"type":"string","examples":["people"]},"attributes":{"type":"object","properties":{"name":{"type":"string","examples":["Abbey Anderson"]},"company_id":{"type":["string","null"],"examples":[null]},"creation_source":{"type":"string","examples":["web"]},"created_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"updated_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"custom_fields":{"type":"object","properties":{}}}}}}},"examples":[{"data":{"id":"","type":"people","attributes":{"name":"Abbey Anderson","company_id":null,"creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}}}]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `read` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No record with that ID exists in the workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["People"]},"put":{"summary":"","operationId":"putV1PeopleId","description":"","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","examples":[""]},"type":{"type":"string","examples":["people"]},"attributes":{"type":"object","properties":{"name":{"type":"string","examples":["Sam Jakubowski"]},"company_id":{"type":["string","null"],"examples":[null]},"creation_source":{"type":"string","examples":["web"]},"created_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"updated_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"custom_fields":{"type":"object","properties":{}}}}}}},"examples":[{"data":{"id":"","type":"people","attributes":{"name":"Sam Jakubowski","company_id":null,"creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}}}]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `update` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No record with that ID exists in the workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["People"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"","examples":["Jane Smith"]},"company_id":{"type":"string","description":"","examples":["ab"]},"custom_fields":{"type":"object","description":"","properties":{},"examples":[null]}}}}}}},"delete":{"summary":"","operationId":"deleteV1PeopleId","description":"","parameters":[],"responses":{"204":{"description":"","content":{"application/json":{"schema":{"type":["object","null"]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `delete` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No record with that ID exists in the workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["People"]},"parameters":[{"in":"path","name":"id","description":"The ID of the person.","required":true,"schema":{"type":"string","examples":["01m3a9sqmhtbxv1ezgzmvxa2gw"]}}]},"/v1/opportunities/query":{"post":{"summary":"Query opportunities","operationId":"queryOpportunities","description":"Returns the same records as the list endpoint, with filter, sort, include and pagination sent as a JSON body, so a filter too large for a URL still fits. To fetch the next page, re-send the same body with the next `page`, or with `cursor` set to `meta.next_cursor` after a first request with `\"cursor\": true`. A GET to `links.next` is not a valid request. A body larger than 256 KB returns 413.","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","examples":[""]},"type":{"type":"string","examples":["opportunities"]},"attributes":{"type":"object","properties":{"name":{"type":"string","examples":["Eius nihil cumque quia sunt aut dolores."]},"company_id":{"type":["string","null"],"examples":[null]},"contact_id":{"type":["string","null"],"examples":[null]},"creation_source":{"type":"string","examples":["web"]},"created_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"updated_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"custom_fields":{"type":"object","properties":{}}}}}},"examples":[[{"id":"","type":"opportunities","attributes":{"name":"Eius nihil cumque quia sunt aut dolores.","company_id":null,"contact_id":null,"creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":[]}},{"id":"","type":"opportunities","attributes":{"name":"Delectus nemo molestiae ea quia ea.","company_id":null,"contact_id":null,"creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":[]}}]]},"links":{"type":"object","properties":{"first":{"type":"string","examples":["/?page=1"]},"last":{"type":"string","examples":["/?page=1"]},"prev":{"type":["string","null"],"examples":[null]},"next":{"type":["string","null"],"examples":[null]}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","examples":[1]},"from":{"type":"integer","examples":[1]},"last_page":{"type":"integer","examples":[1]},"links":{"type":"array","items":{"type":"object","properties":{"url":{"type":["string","null"],"examples":[null]},"label":{"type":"string","examples":["&laquo; Previous"]},"page":{"type":["string","null"],"examples":[null]},"active":{"type":"boolean","examples":[false]}}},"examples":[[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}]]},"path":{"type":"string","examples":["/"]},"per_page":{"type":"integer","examples":[15]},"to":{"type":"integer","examples":[2]},"total":{"type":"integer","examples":[2]}}}},"examples":[{"data":[{"id":"","type":"opportunities","attributes":{"name":"Eius nihil cumque quia sunt aut dolores.","company_id":null,"contact_id":null,"creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}},{"id":"","type":"opportunities","attributes":{"name":"Delectus nemo molestiae ea quia ea.","company_id":null,"contact_id":null,"creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}}],"links":{"first":"/?page=1","last":"/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"path":"/","per_page":15,"to":2,"total":2}}]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `create` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["Opportunities"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"per_page":{"type":"integer","description":"Number of results per page (1-100). Default: 15.","examples":[15]},"cursor":{"type":"string","description":"Switches to cursor pagination. Send `true` for the first page, then the `meta.next_cursor` value of the previous page. Sorts by a custom field need `page`.","examples":[null]},"page":{"type":"integer","description":"Page number for offset pagination (1-1,000,000, when cursor is not used). Default: 1.","examples":[1]},"include":{"type":"string","description":"Include related resources (comma-separated). Allowed: creator, company, contact, tasksCount, notesCount.","examples":["creator"]},"sort":{"type":"string","description":"Sort results. Prefix with `-` for descending. Allowed: name, -name, created_at, -created_at, updated_at, -updated_at.","examples":["-created_at"]},"fields":{"type":"string","description":"","examples":[null]},"filter":{"type":"object","description":"An object of conditions. Keys starting with $ are keywords: operators ($eq, $contains, $is_empty, $gt, $gte, $lt, $lte, $has_any, $has_none, $in, $not_in) and logic ($and and $or take a list of condition objects, $not takes one and also returns records where the inner fields are empty). Other keys are names. A filter holds at most 20 conditions, 3 levels of $and, $or and $not, and 2 levels of relations. A list holds at most 100 values. Email values match in any letter case. Phone values match in any format, and the operand needs a country code such as +1 415 555 0100. Link values match in any letter case, with or without the scheme. Domain values match as a bare host or a full URL, with or without www. Tags-input values match the exact stored value. Date-time values match a date without a time, such as 2026-10-01, as that whole day. Email and link fields also take a domain sub-field with $in or $not_in, such as {\"domain\":{\"$in\":[\"acme.com\"]}}, which matches the host of each value. $not_in and $has_none also match records where the field is empty. $is_empty takes true or false. Native fields: name, created_at, updated_at, creation_source. Relations take $in, $not_in or $is_empty on record ids, or conditions on the related record that use that record type's own filter names, including custom_fields. Prefer conditions over listing the related records first and passing their ids: company (company), contact (people). Member relations take $in, $not_in or $is_empty on workspace member ids only, with no nested conditions: creator. stale_days takes $gte with whole days without activity, from 1 to 3650, for example {\"stale_days\":{\"$gte\":30}}. custom_fields takes an object keyed by custom field code, each value an operator object.","properties":{},"examples":[{"name":{"$contains":"Acme"},"$or":[{"creation_source":{"$eq":"api"}},{"created_at":{"$gte":"2026-01-01"}}]}]}}}}}}}},"/v1/opportunities":{"get":{"summary":"","operationId":"getV1Opportunities","description":"","parameters":[{"in":"query","name":"filter[name][{operator}]","description":"Filter by name. Operators: $eq, $contains, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by name. Operators: $eq, $contains, $is_empty.","examples":[null]}},{"in":"query","name":"filter[created_at][{operator}]","description":"Filter by created_at. Operators: $eq, $gt, $gte, $lt, $lte, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by created_at. Operators: $eq, $gt, $gte, $lt, $lte, $is_empty.","examples":[null]}},{"in":"query","name":"filter[updated_at][{operator}]","description":"Filter by updated_at. Operators: $eq, $gt, $gte, $lt, $lte, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by updated_at. Operators: $eq, $gt, $gte, $lt, $lte, $is_empty.","examples":[null]}},{"in":"query","name":"filter[creation_source][{operator}]","description":"Filter by creation_source. Operators: $eq, $in, $not_in, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by creation_source. Operators: $eq, $in, $not_in, $is_empty.","examples":[null]}},{"in":"query","name":"filter[creator][{operator}]","description":"Filter by creator. Operators: $in, $not_in, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by creator. Operators: $in, $not_in, $is_empty.","examples":[null]}},{"in":"query","name":"filter[company][{operator}]","description":"Filter by company. Operators: $in, $not_in, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by company. Operators: $in, $not_in, $is_empty.","examples":[null]}},{"in":"query","name":"filter[contact][{operator}]","description":"Filter by contact. Operators: $in, $not_in, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by contact. Operators: $in, $not_in, $is_empty.","examples":[null]}},{"in":"query","name":"filter[stale_days][{operator}]","description":"Filter by stale_days. Operators: $gte.","example":null,"required":false,"schema":{"type":"string","description":"Filter by stale_days. Operators: $gte.","examples":[null]}},{"in":"query","name":"filter[custom_fields][{code}][{operator}]","description":"Filter by a custom field value. Text: $eq, $contains. Number, currency, date, date-time: $eq, $gt, $gte, $lt, $lte. Email, phone, link, domain, checkbox-list, tags-input, multi-select: $has_any, $has_none. Checkbox, toggle: $eq. Radio, toggle-buttons, select: $eq, $in, $not_in. In a query string $is_empty also takes 1 or 0. Checkbox-list, radio, toggle-buttons, select and multi-select values take an option label or ID. An unknown one returns 422. Choice lists split on commas, so repeat the parameter with [] when a label contains a comma. Email values match in any letter case. Phone values match in any format, and the operand needs a country code such as +1 415 555 0100. Link values match in any letter case, with or without the scheme. Domain values match as a bare host or a full URL, with or without www. Tags-input values match the exact stored value. Date-time values match a date without a time, such as 2026-10-01, as that whole day. Email and link fields also take a domain sub-field with $in or $not_in, such as {\"domain\":{\"$in\":[\"acme.com\"]}}, which matches the host of each value. $not_in and $has_none also match records where the field is empty. $is_empty takes true or false. Repeat [] to send several values. A filter holds at most 20 conditions, 3 levels of $and, $or and $not, and 2 levels of relations. A list holds at most 100 values. Examples: filter[custom_fields][stage][$in]=Qualification,Prospecting and filter[custom_fields][emails][domain][$not_in]=acme.com.","example":null,"required":false,"schema":{"type":"string","description":"Filter by a custom field value. Text: $eq, $contains. Number, currency, date, date-time: $eq, $gt, $gte, $lt, $lte. Email, phone, link, domain, checkbox-list, tags-input, multi-select: $has_any, $has_none. Checkbox, toggle: $eq. Radio, toggle-buttons, select: $eq, $in, $not_in. In a query string $is_empty also takes 1 or 0. Checkbox-list, radio, toggle-buttons, select and multi-select values take an option label or ID. An unknown one returns 422. Choice lists split on commas, so repeat the parameter with [] when a label contains a comma. Email values match in any letter case. Phone values match in any format, and the operand needs a country code such as +1 415 555 0100. Link values match in any letter case, with or without the scheme. Domain values match as a bare host or a full URL, with or without www. Tags-input values match the exact stored value. Date-time values match a date without a time, such as 2026-10-01, as that whole day. Email and link fields also take a domain sub-field with $in or $not_in, such as {\"domain\":{\"$in\":[\"acme.com\"]}}, which matches the host of each value. $not_in and $has_none also match records where the field is empty. $is_empty takes true or false. Repeat [] to send several values. A filter holds at most 20 conditions, 3 levels of $and, $or and $not, and 2 levels of relations. A list holds at most 100 values. Examples: filter[custom_fields][stage][$in]=Qualification,Prospecting and filter[custom_fields][emails][domain][$not_in]=acme.com.","examples":[null]}},{"in":"query","name":"sort","description":"Sort results. Prefix with `-` for descending. Allowed: name, -name, created_at, -created_at, updated_at, -updated_at.","required":false,"schema":{"type":"string","description":"Sort results. Prefix with `-` for descending. Allowed: name, -name, created_at, -created_at, updated_at, -updated_at.","examples":["-created_at"]}},{"in":"query","name":"include","description":"Include related resources (comma-separated). Allowed: creator, company, contact, tasksCount, notesCount.","required":false,"schema":{"type":"string","description":"Include related resources (comma-separated). Allowed: creator, company, contact, tasksCount, notesCount.","examples":["creator"]}},{"in":"query","name":"per_page","description":"Number of results per page (1-100). Default: 15.","required":false,"schema":{"type":"integer","description":"Number of results per page (1-100). Default: 15.","examples":[15]}},{"in":"query","name":"cursor","description":"Switches to cursor pagination. Send `true` for the first page, then the `meta.next_cursor` value of the previous page. Sorts by a custom field need `page`.","example":null,"required":false,"schema":{"type":"string","description":"Switches to cursor pagination. Send `true` for the first page, then the `meta.next_cursor` value of the previous page. Sorts by a custom field need `page`.","examples":[null]}},{"in":"query","name":"page","description":"Page number for offset pagination (1-1,000,000, when cursor is not used). Default: 1.","required":false,"schema":{"type":"integer","description":"Page number for offset pagination (1-1,000,000, when cursor is not used). Default: 1.","examples":[1]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","examples":[""]},"type":{"type":"string","examples":["opportunities"]},"attributes":{"type":"object","properties":{"name":{"type":"string","examples":["Eius nihil cumque quia sunt aut dolores."]},"company_id":{"type":["string","null"],"examples":[null]},"contact_id":{"type":["string","null"],"examples":[null]},"creation_source":{"type":"string","examples":["web"]},"created_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"updated_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"custom_fields":{"type":"object","properties":{}}}}}},"examples":[[{"id":"","type":"opportunities","attributes":{"name":"Eius nihil cumque quia sunt aut dolores.","company_id":null,"contact_id":null,"creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":[]}},{"id":"","type":"opportunities","attributes":{"name":"Delectus nemo molestiae ea quia ea.","company_id":null,"contact_id":null,"creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":[]}}]]},"links":{"type":"object","properties":{"first":{"type":"string","examples":["/?page=1"]},"last":{"type":"string","examples":["/?page=1"]},"prev":{"type":["string","null"],"examples":[null]},"next":{"type":["string","null"],"examples":[null]}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","examples":[1]},"from":{"type":"integer","examples":[1]},"last_page":{"type":"integer","examples":[1]},"links":{"type":"array","items":{"type":"object","properties":{"url":{"type":["string","null"],"examples":[null]},"label":{"type":"string","examples":["&laquo; Previous"]},"page":{"type":["string","null"],"examples":[null]},"active":{"type":"boolean","examples":[false]}}},"examples":[[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}]]},"path":{"type":"string","examples":["/"]},"per_page":{"type":"integer","examples":[15]},"to":{"type":"integer","examples":[2]},"total":{"type":"integer","examples":[2]}}}},"examples":[{"data":[{"id":"","type":"opportunities","attributes":{"name":"Eius nihil cumque quia sunt aut dolores.","company_id":null,"contact_id":null,"creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}},{"id":"","type":"opportunities","attributes":{"name":"Delectus nemo molestiae ea quia ea.","company_id":null,"contact_id":null,"creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}}],"links":{"first":"/?page=1","last":"/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"path":"/","per_page":15,"to":2,"total":2}}]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `read` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["Opportunities"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"per_page":{"type":"integer","description":"Must be at least 1. Must not be greater than 100.","examples":[16]},"cursor":{"type":"string","description":"","examples":[null]},"page":{"type":"integer","description":"Must be at least 1. Must not be greater than 1000000.","examples":[7]},"include":{"type":"string","description":"","examples":["ab"]},"sort":{"type":"string","description":"","examples":["ab"]},"fields":{"type":"string","description":"","examples":[null]}}}}}}},"post":{"summary":"","operationId":"postV1Opportunities","description":"","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","examples":[""]},"type":{"type":"string","examples":["opportunities"]},"attributes":{"type":"object","properties":{"name":{"type":"string","examples":["Eius nihil cumque quia sunt aut dolores."]},"company_id":{"type":["string","null"],"examples":[null]},"contact_id":{"type":["string","null"],"examples":[null]},"creation_source":{"type":"string","examples":["web"]},"created_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"updated_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"custom_fields":{"type":"object","properties":{}}}}}}},"examples":[{"data":{"id":"","type":"opportunities","attributes":{"name":"Eius nihil cumque quia sunt aut dolores.","company_id":null,"contact_id":null,"creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}}}]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `create` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["Opportunities"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"","examples":["Enterprise Deal"]},"company_id":{"type":"string","description":"","examples":["ab"]},"contact_id":{"type":"string","description":"","examples":["ab"]},"custom_fields":{"type":"object","description":"","properties":{},"examples":[null]}},"required":["name"]}}}}}},"/v1/opportunities/{id}":{"get":{"summary":"","operationId":"getV1OpportunitiesId","description":"","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","examples":[""]},"type":{"type":"string","examples":["opportunities"]},"attributes":{"type":"object","properties":{"name":{"type":"string","examples":["Eum harum dolore nam et pariatur et laborum sunt."]},"company_id":{"type":["string","null"],"examples":[null]},"contact_id":{"type":["string","null"],"examples":[null]},"creation_source":{"type":"string","examples":["web"]},"created_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"updated_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"custom_fields":{"type":"object","properties":{}}}}}}},"examples":[{"data":{"id":"","type":"opportunities","attributes":{"name":"Eum harum dolore nam et pariatur et laborum sunt.","company_id":null,"contact_id":null,"creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}}}]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `read` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No record with that ID exists in the workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["Opportunities"]},"put":{"summary":"","operationId":"putV1OpportunitiesId","description":"","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","examples":[""]},"type":{"type":"string","examples":["opportunities"]},"attributes":{"type":"object","properties":{"name":{"type":"string","examples":["Eius nihil cumque quia sunt aut dolores."]},"company_id":{"type":["string","null"],"examples":[null]},"contact_id":{"type":["string","null"],"examples":[null]},"creation_source":{"type":"string","examples":["web"]},"created_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"updated_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"custom_fields":{"type":"object","properties":{}}}}}}},"examples":[{"data":{"id":"","type":"opportunities","attributes":{"name":"Eius nihil cumque quia sunt aut dolores.","company_id":null,"contact_id":null,"creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}}}]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `update` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No record with that ID exists in the workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["Opportunities"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"","examples":["Enterprise Deal"]},"company_id":{"type":"string","description":"","examples":["ab"]},"contact_id":{"type":"string","description":"","examples":["ab"]},"custom_fields":{"type":"object","description":"","properties":{},"examples":[null]}}}}}}},"delete":{"summary":"","operationId":"deleteV1OpportunitiesId","description":"","parameters":[],"responses":{"204":{"description":"","content":{"application/json":{"schema":{"type":["object","null"]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `delete` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No record with that ID exists in the workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["Opportunities"]},"parameters":[{"in":"path","name":"id","description":"The ID of the opportunity.","required":true,"schema":{"type":"string","examples":["01KHHHYK5PCQKYMCS30WJSE3W9"]}}]},"/v1/tasks/query":{"post":{"summary":"Query tasks","operationId":"queryTasks","description":"Returns the same records as the list endpoint, with filter, sort, include and pagination sent as a JSON body, so a filter too large for a URL still fits. To fetch the next page, re-send the same body with the next `page`, or with `cursor` set to `meta.next_cursor` after a first request with `\"cursor\": true`. A GET to `links.next` is not a valid request. A body larger than 256 KB returns 413.","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","examples":[""]},"type":{"type":"string","examples":["tasks"]},"attributes":{"type":"object","properties":{"title":{"type":"string","examples":["Eius nihil cumque quia."]},"creation_source":{"type":"string","examples":["web"]},"created_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"updated_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"custom_fields":{"type":"object","properties":{}}}}}},"examples":[[{"id":"","type":"tasks","attributes":{"title":"Eius nihil cumque quia.","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":[]}},{"id":"","type":"tasks","attributes":{"title":"Aut dolores sapiente.","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":[]}}]]},"links":{"type":"object","properties":{"first":{"type":"string","examples":["/?page=1"]},"last":{"type":"string","examples":["/?page=1"]},"prev":{"type":["string","null"],"examples":[null]},"next":{"type":["string","null"],"examples":[null]}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","examples":[1]},"from":{"type":"integer","examples":[1]},"last_page":{"type":"integer","examples":[1]},"links":{"type":"array","items":{"type":"object","properties":{"url":{"type":["string","null"],"examples":[null]},"label":{"type":"string","examples":["&laquo; Previous"]},"page":{"type":["string","null"],"examples":[null]},"active":{"type":"boolean","examples":[false]}}},"examples":[[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}]]},"path":{"type":"string","examples":["/"]},"per_page":{"type":"integer","examples":[15]},"to":{"type":"integer","examples":[2]},"total":{"type":"integer","examples":[2]}}}},"examples":[{"data":[{"id":"","type":"tasks","attributes":{"title":"Eius nihil cumque quia.","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}},{"id":"","type":"tasks","attributes":{"title":"Aut dolores sapiente.","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}}],"links":{"first":"/?page=1","last":"/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"path":"/","per_page":15,"to":2,"total":2}}]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `create` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["Tasks"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"per_page":{"type":"integer","description":"Number of results per page (1-100). Default: 15.","examples":[15]},"cursor":{"type":"string","description":"Switches to cursor pagination. Send `true` for the first page, then the `meta.next_cursor` value of the previous page. Sorts by a custom field need `page`.","examples":[null]},"page":{"type":"integer","description":"Page number for offset pagination (1-1,000,000, when cursor is not used). Default: 1.","examples":[1]},"include":{"type":"string","description":"Include related resources (comma-separated). Allowed: creator, assignees, companies, people, opportunities, assigneesCount, companiesCount, peopleCount, opportunitiesCount.","examples":["creator"]},"sort":{"type":"string","description":"Sort results. Prefix with `-` for descending. Allowed: title, -title, created_at, -created_at, updated_at, -updated_at.","examples":["-created_at"]},"fields":{"type":"string","description":"","examples":[null]},"filter":{"type":"object","description":"An object of conditions. Keys starting with $ are keywords: operators ($eq, $contains, $is_empty, $gt, $gte, $lt, $lte, $has_any, $has_none, $in, $not_in) and logic ($and and $or take a list of condition objects, $not takes one and also returns records where the inner fields are empty). Other keys are names. A filter holds at most 20 conditions, 3 levels of $and, $or and $not, and 2 levels of relations. A list holds at most 100 values. Email values match in any letter case. Phone values match in any format, and the operand needs a country code such as +1 415 555 0100. Link values match in any letter case, with or without the scheme. Domain values match as a bare host or a full URL, with or without www. Tags-input values match the exact stored value. Date-time values match a date without a time, such as 2026-10-01, as that whole day. Email and link fields also take a domain sub-field with $in or $not_in, such as {\"domain\":{\"$in\":[\"acme.com\"]}}, which matches the host of each value. $not_in and $has_none also match records where the field is empty. $is_empty takes true or false. Native fields: title, created_at, updated_at, creation_source. Relations take $in, $not_in or $is_empty on record ids, or conditions on the related record that use that record type's own filter names, including custom_fields. Prefer conditions over listing the related records first and passing their ids: companies (company), people (people), opportunities (opportunity). Member relations take $in, $not_in or $is_empty on workspace member ids only, with no nested conditions: creator, assignees. assigned_to_me takes $eq with true, to list the tasks assigned to you, for example {\"assigned_to_me\":{\"$eq\":true}}. custom_fields takes an object keyed by custom field code, each value an operator object.","properties":{},"examples":[{"title":{"$contains":"Acme"},"$or":[{"creation_source":{"$eq":"api"}},{"created_at":{"$gte":"2026-01-01"}}]}]}}}}}}}},"/v1/tasks":{"get":{"summary":"","operationId":"getV1Tasks","description":"","parameters":[{"in":"query","name":"filter[title][{operator}]","description":"Filter by title. Operators: $eq, $contains, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by title. Operators: $eq, $contains, $is_empty.","examples":[null]}},{"in":"query","name":"filter[created_at][{operator}]","description":"Filter by created_at. Operators: $eq, $gt, $gte, $lt, $lte, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by created_at. Operators: $eq, $gt, $gte, $lt, $lte, $is_empty.","examples":[null]}},{"in":"query","name":"filter[updated_at][{operator}]","description":"Filter by updated_at. Operators: $eq, $gt, $gte, $lt, $lte, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by updated_at. Operators: $eq, $gt, $gte, $lt, $lte, $is_empty.","examples":[null]}},{"in":"query","name":"filter[creation_source][{operator}]","description":"Filter by creation_source. Operators: $eq, $in, $not_in, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by creation_source. Operators: $eq, $in, $not_in, $is_empty.","examples":[null]}},{"in":"query","name":"filter[creator][{operator}]","description":"Filter by creator. Operators: $in, $not_in, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by creator. Operators: $in, $not_in, $is_empty.","examples":[null]}},{"in":"query","name":"filter[assignees][{operator}]","description":"Filter by assignees. Operators: $in, $not_in, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by assignees. Operators: $in, $not_in, $is_empty.","examples":[null]}},{"in":"query","name":"filter[companies][{operator}]","description":"Filter by companies. Operators: $in, $not_in, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by companies. Operators: $in, $not_in, $is_empty.","examples":[null]}},{"in":"query","name":"filter[people][{operator}]","description":"Filter by people. Operators: $in, $not_in, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by people. Operators: $in, $not_in, $is_empty.","examples":[null]}},{"in":"query","name":"filter[opportunities][{operator}]","description":"Filter by opportunities. Operators: $in, $not_in, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by opportunities. Operators: $in, $not_in, $is_empty.","examples":[null]}},{"in":"query","name":"filter[assigned_to_me][{operator}]","description":"Filter by assigned_to_me. Operators: $eq.","example":null,"required":false,"schema":{"type":"string","description":"Filter by assigned_to_me. Operators: $eq.","examples":[null]}},{"in":"query","name":"filter[custom_fields][{code}][{operator}]","description":"Filter by a custom field value. Text: $eq, $contains. Number, currency, date, date-time: $eq, $gt, $gte, $lt, $lte. Email, phone, link, domain, checkbox-list, tags-input, multi-select: $has_any, $has_none. Checkbox, toggle: $eq. Radio, toggle-buttons, select: $eq, $in, $not_in. In a query string $is_empty also takes 1 or 0. Checkbox-list, radio, toggle-buttons, select and multi-select values take an option label or ID. An unknown one returns 422. Choice lists split on commas, so repeat the parameter with [] when a label contains a comma. Email values match in any letter case. Phone values match in any format, and the operand needs a country code such as +1 415 555 0100. Link values match in any letter case, with or without the scheme. Domain values match as a bare host or a full URL, with or without www. Tags-input values match the exact stored value. Date-time values match a date without a time, such as 2026-10-01, as that whole day. Email and link fields also take a domain sub-field with $in or $not_in, such as {\"domain\":{\"$in\":[\"acme.com\"]}}, which matches the host of each value. $not_in and $has_none also match records where the field is empty. $is_empty takes true or false. Repeat [] to send several values. A filter holds at most 20 conditions, 3 levels of $and, $or and $not, and 2 levels of relations. A list holds at most 100 values. Examples: filter[custom_fields][stage][$in]=Qualification,Prospecting and filter[custom_fields][emails][domain][$not_in]=acme.com.","example":null,"required":false,"schema":{"type":"string","description":"Filter by a custom field value. Text: $eq, $contains. Number, currency, date, date-time: $eq, $gt, $gte, $lt, $lte. Email, phone, link, domain, checkbox-list, tags-input, multi-select: $has_any, $has_none. Checkbox, toggle: $eq. Radio, toggle-buttons, select: $eq, $in, $not_in. In a query string $is_empty also takes 1 or 0. Checkbox-list, radio, toggle-buttons, select and multi-select values take an option label or ID. An unknown one returns 422. Choice lists split on commas, so repeat the parameter with [] when a label contains a comma. Email values match in any letter case. Phone values match in any format, and the operand needs a country code such as +1 415 555 0100. Link values match in any letter case, with or without the scheme. Domain values match as a bare host or a full URL, with or without www. Tags-input values match the exact stored value. Date-time values match a date without a time, such as 2026-10-01, as that whole day. Email and link fields also take a domain sub-field with $in or $not_in, such as {\"domain\":{\"$in\":[\"acme.com\"]}}, which matches the host of each value. $not_in and $has_none also match records where the field is empty. $is_empty takes true or false. Repeat [] to send several values. A filter holds at most 20 conditions, 3 levels of $and, $or and $not, and 2 levels of relations. A list holds at most 100 values. Examples: filter[custom_fields][stage][$in]=Qualification,Prospecting and filter[custom_fields][emails][domain][$not_in]=acme.com.","examples":[null]}},{"in":"query","name":"sort","description":"Sort results. Prefix with `-` for descending. Allowed: title, -title, created_at, -created_at, updated_at, -updated_at.","required":false,"schema":{"type":"string","description":"Sort results. Prefix with `-` for descending. Allowed: title, -title, created_at, -created_at, updated_at, -updated_at.","examples":["-created_at"]}},{"in":"query","name":"include","description":"Include related resources (comma-separated). Allowed: creator, assignees, companies, people, opportunities, assigneesCount, companiesCount, peopleCount, opportunitiesCount.","required":false,"schema":{"type":"string","description":"Include related resources (comma-separated). Allowed: creator, assignees, companies, people, opportunities, assigneesCount, companiesCount, peopleCount, opportunitiesCount.","examples":["creator"]}},{"in":"query","name":"per_page","description":"Number of results per page (1-100). Default: 15.","required":false,"schema":{"type":"integer","description":"Number of results per page (1-100). Default: 15.","examples":[15]}},{"in":"query","name":"cursor","description":"Switches to cursor pagination. Send `true` for the first page, then the `meta.next_cursor` value of the previous page. Sorts by a custom field need `page`.","example":null,"required":false,"schema":{"type":"string","description":"Switches to cursor pagination. Send `true` for the first page, then the `meta.next_cursor` value of the previous page. Sorts by a custom field need `page`.","examples":[null]}},{"in":"query","name":"page","description":"Page number for offset pagination (1-1,000,000, when cursor is not used). Default: 1.","required":false,"schema":{"type":"integer","description":"Page number for offset pagination (1-1,000,000, when cursor is not used). Default: 1.","examples":[1]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","examples":[""]},"type":{"type":"string","examples":["tasks"]},"attributes":{"type":"object","properties":{"title":{"type":"string","examples":["Eius nihil cumque quia."]},"creation_source":{"type":"string","examples":["web"]},"created_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"updated_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"custom_fields":{"type":"object","properties":{}}}}}},"examples":[[{"id":"","type":"tasks","attributes":{"title":"Eius nihil cumque quia.","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":[]}},{"id":"","type":"tasks","attributes":{"title":"Aut dolores sapiente.","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":[]}}]]},"links":{"type":"object","properties":{"first":{"type":"string","examples":["/?page=1"]},"last":{"type":"string","examples":["/?page=1"]},"prev":{"type":["string","null"],"examples":[null]},"next":{"type":["string","null"],"examples":[null]}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","examples":[1]},"from":{"type":"integer","examples":[1]},"last_page":{"type":"integer","examples":[1]},"links":{"type":"array","items":{"type":"object","properties":{"url":{"type":["string","null"],"examples":[null]},"label":{"type":"string","examples":["&laquo; Previous"]},"page":{"type":["string","null"],"examples":[null]},"active":{"type":"boolean","examples":[false]}}},"examples":[[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}]]},"path":{"type":"string","examples":["/"]},"per_page":{"type":"integer","examples":[15]},"to":{"type":"integer","examples":[2]},"total":{"type":"integer","examples":[2]}}}},"examples":[{"data":[{"id":"","type":"tasks","attributes":{"title":"Eius nihil cumque quia.","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}},{"id":"","type":"tasks","attributes":{"title":"Aut dolores sapiente.","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}}],"links":{"first":"/?page=1","last":"/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"path":"/","per_page":15,"to":2,"total":2}}]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `read` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["Tasks"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"per_page":{"type":"integer","description":"Must be at least 1. Must not be greater than 100.","examples":[16]},"cursor":{"type":"string","description":"","examples":[null]},"page":{"type":"integer","description":"Must be at least 1. Must not be greater than 1000000.","examples":[7]},"include":{"type":"string","description":"","examples":["ab"]},"sort":{"type":"string","description":"","examples":["ab"]},"fields":{"type":"string","description":"","examples":[null]}}}}}}},"post":{"summary":"","operationId":"postV1Tasks","description":"","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","examples":[""]},"type":{"type":"string","examples":["tasks"]},"attributes":{"type":"object","properties":{"title":{"type":"string","examples":["Eius nihil cumque quia."]},"creation_source":{"type":"string","examples":["web"]},"created_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"updated_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"custom_fields":{"type":"object","properties":{}}}}}}},"examples":[{"data":{"id":"","type":"tasks","attributes":{"title":"Eius nihil cumque quia.","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}}}]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `create` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["Tasks"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","description":"Must not be greater than 255 characters.","examples":["ipzdszigdqrrkthq"]},"company_ids":{"type":"array","description":"","items":{"type":"string"},"examples":[["ab"]]},"people_ids":{"type":"array","description":"","items":{"type":"string"},"examples":[["ab"]]},"opportunity_ids":{"type":"array","description":"","items":{"type":"string"},"examples":[["ab"]]},"assignee_ids":{"type":"array","description":"","items":{"type":"string","enum":["scribe-user-id"]},"examples":[["scribe-user-id"]]},"custom_fields":{"type":"object","description":"","properties":{},"examples":[null]}},"required":["title"]}}}}}},"/v1/tasks/{id}":{"get":{"summary":"","operationId":"getV1TasksId","description":"","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","examples":[""]},"type":{"type":"string","examples":["tasks"]},"attributes":{"type":"object","properties":{"title":{"type":"string","examples":["Eum harum dolore nam et."]},"creation_source":{"type":"string","examples":["web"]},"created_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"updated_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"custom_fields":{"type":"object","properties":{}}}}}}},"examples":[{"data":{"id":"","type":"tasks","attributes":{"title":"Eum harum dolore nam et.","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}}}]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `read` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No record with that ID exists in the workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["Tasks"]},"put":{"summary":"","operationId":"putV1TasksId","description":"","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","examples":[""]},"type":{"type":"string","examples":["tasks"]},"attributes":{"type":"object","properties":{"title":{"type":"string","examples":["Eius nihil cumque quia."]},"creation_source":{"type":"string","examples":["web"]},"created_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"updated_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"custom_fields":{"type":"object","properties":{}}}}}}},"examples":[{"data":{"id":"","type":"tasks","attributes":{"title":"Eius nihil cumque quia.","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}}}]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `update` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No record with that ID exists in the workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["Tasks"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","description":"Must not be greater than 255 characters.","examples":["ipzdszigdqrrkthq"]},"company_ids":{"type":"array","description":"","items":{"type":"string"},"examples":[["ab"]]},"people_ids":{"type":"array","description":"","items":{"type":"string"},"examples":[["ab"]]},"opportunity_ids":{"type":"array","description":"","items":{"type":"string"},"examples":[["ab"]]},"assignee_ids":{"type":"array","description":"","items":{"type":"string","enum":["scribe-user-id"]},"examples":[["scribe-user-id"]]},"custom_fields":{"type":"object","description":"","properties":{},"examples":[null]}}}}}}},"delete":{"summary":"","operationId":"deleteV1TasksId","description":"","parameters":[],"responses":{"204":{"description":"","content":{"application/json":{"schema":{"type":["object","null"]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `delete` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No record with that ID exists in the workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["Tasks"]},"parameters":[{"in":"path","name":"id","description":"The ID of the task.","required":true,"schema":{"type":"string","examples":["01m48jdgvmbaqjbxre1bs84bmk"]}}]},"/v1/notes/query":{"post":{"summary":"Query notes","operationId":"queryNotes","description":"Returns the same records as the list endpoint, with filter, sort, include and pagination sent as a JSON body, so a filter too large for a URL still fits. To fetch the next page, re-send the same body with the next `page`, or with `cursor` set to `meta.next_cursor` after a first request with `\"cursor\": true`. A GET to `links.next` is not a valid request. A body larger than 256 KB returns 413.","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","examples":[""]},"type":{"type":"string","examples":["notes"]},"attributes":{"type":"object","properties":{"title":{"type":"string","examples":["Eius nihil cumque quia sunt aut dolores."]},"creation_source":{"type":"string","examples":["web"]},"created_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"updated_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"custom_fields":{"type":"object","properties":{}}}}}},"examples":[[{"id":"","type":"notes","attributes":{"title":"Eius nihil cumque quia sunt aut dolores.","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":[]}},{"id":"","type":"notes","attributes":{"title":"Delectus nemo molestiae ea quia ea.","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":[]}}]]},"links":{"type":"object","properties":{"first":{"type":"string","examples":["/?page=1"]},"last":{"type":"string","examples":["/?page=1"]},"prev":{"type":["string","null"],"examples":[null]},"next":{"type":["string","null"],"examples":[null]}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","examples":[1]},"from":{"type":"integer","examples":[1]},"last_page":{"type":"integer","examples":[1]},"links":{"type":"array","items":{"type":"object","properties":{"url":{"type":["string","null"],"examples":[null]},"label":{"type":"string","examples":["&laquo; Previous"]},"page":{"type":["string","null"],"examples":[null]},"active":{"type":"boolean","examples":[false]}}},"examples":[[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}]]},"path":{"type":"string","examples":["/"]},"per_page":{"type":"integer","examples":[15]},"to":{"type":"integer","examples":[2]},"total":{"type":"integer","examples":[2]}}}},"examples":[{"data":[{"id":"","type":"notes","attributes":{"title":"Eius nihil cumque quia sunt aut dolores.","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}},{"id":"","type":"notes","attributes":{"title":"Delectus nemo molestiae ea quia ea.","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}}],"links":{"first":"/?page=1","last":"/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"path":"/","per_page":15,"to":2,"total":2}}]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `create` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["Notes"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"per_page":{"type":"integer","description":"Number of results per page (1-100). Default: 15.","examples":[15]},"cursor":{"type":"string","description":"Switches to cursor pagination. Send `true` for the first page, then the `meta.next_cursor` value of the previous page. Sorts by a custom field need `page`.","examples":[null]},"page":{"type":"integer","description":"Page number for offset pagination (1-1,000,000, when cursor is not used). Default: 1.","examples":[1]},"include":{"type":"string","description":"Include related resources (comma-separated). Allowed: creator, companies, people, opportunities, companiesCount, peopleCount, opportunitiesCount.","examples":["creator"]},"sort":{"type":"string","description":"Sort results. Prefix with `-` for descending. Allowed: title, -title, created_at, -created_at, updated_at, -updated_at.","examples":["-created_at"]},"fields":{"type":"string","description":"","examples":[null]},"filter":{"type":"object","description":"An object of conditions. Keys starting with $ are keywords: operators ($eq, $contains, $is_empty, $gt, $gte, $lt, $lte, $has_any, $has_none, $in, $not_in) and logic ($and and $or take a list of condition objects, $not takes one and also returns records where the inner fields are empty). Other keys are names. A filter holds at most 20 conditions, 3 levels of $and, $or and $not, and 2 levels of relations. A list holds at most 100 values. Email values match in any letter case. Phone values match in any format, and the operand needs a country code such as +1 415 555 0100. Link values match in any letter case, with or without the scheme. Domain values match as a bare host or a full URL, with or without www. Tags-input values match the exact stored value. Date-time values match a date without a time, such as 2026-10-01, as that whole day. Email and link fields also take a domain sub-field with $in or $not_in, such as {\"domain\":{\"$in\":[\"acme.com\"]}}, which matches the host of each value. $not_in and $has_none also match records where the field is empty. $is_empty takes true or false. Native fields: title, created_at, updated_at, creation_source. Relations take $in, $not_in or $is_empty on record ids, or conditions on the related record that use that record type's own filter names, including custom_fields. Prefer conditions over listing the related records first and passing their ids: companies (company), people (people), opportunities (opportunity). Member relations take $in, $not_in or $is_empty on workspace member ids only, with no nested conditions: creator. custom_fields takes an object keyed by custom field code, each value an operator object.","properties":{},"examples":[{"title":{"$contains":"Acme"},"$or":[{"creation_source":{"$eq":"api"}},{"created_at":{"$gte":"2026-01-01"}}]}]}}}}}}}},"/v1/notes":{"get":{"summary":"","operationId":"getV1Notes","description":"","parameters":[{"in":"query","name":"filter[title][{operator}]","description":"Filter by title. Operators: $eq, $contains, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by title. Operators: $eq, $contains, $is_empty.","examples":[null]}},{"in":"query","name":"filter[created_at][{operator}]","description":"Filter by created_at. Operators: $eq, $gt, $gte, $lt, $lte, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by created_at. Operators: $eq, $gt, $gte, $lt, $lte, $is_empty.","examples":[null]}},{"in":"query","name":"filter[updated_at][{operator}]","description":"Filter by updated_at. Operators: $eq, $gt, $gte, $lt, $lte, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by updated_at. Operators: $eq, $gt, $gte, $lt, $lte, $is_empty.","examples":[null]}},{"in":"query","name":"filter[creation_source][{operator}]","description":"Filter by creation_source. Operators: $eq, $in, $not_in, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by creation_source. Operators: $eq, $in, $not_in, $is_empty.","examples":[null]}},{"in":"query","name":"filter[creator][{operator}]","description":"Filter by creator. Operators: $in, $not_in, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by creator. Operators: $in, $not_in, $is_empty.","examples":[null]}},{"in":"query","name":"filter[companies][{operator}]","description":"Filter by companies. Operators: $in, $not_in, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by companies. Operators: $in, $not_in, $is_empty.","examples":[null]}},{"in":"query","name":"filter[people][{operator}]","description":"Filter by people. Operators: $in, $not_in, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by people. Operators: $in, $not_in, $is_empty.","examples":[null]}},{"in":"query","name":"filter[opportunities][{operator}]","description":"Filter by opportunities. Operators: $in, $not_in, $is_empty.","example":null,"required":false,"schema":{"type":"string","description":"Filter by opportunities. Operators: $in, $not_in, $is_empty.","examples":[null]}},{"in":"query","name":"filter[custom_fields][{code}][{operator}]","description":"Filter by a custom field value. Text: $eq, $contains. Number, currency, date, date-time: $eq, $gt, $gte, $lt, $lte. Email, phone, link, domain, checkbox-list, tags-input, multi-select: $has_any, $has_none. Checkbox, toggle: $eq. Radio, toggle-buttons, select: $eq, $in, $not_in. In a query string $is_empty also takes 1 or 0. Checkbox-list, radio, toggle-buttons, select and multi-select values take an option label or ID. An unknown one returns 422. Choice lists split on commas, so repeat the parameter with [] when a label contains a comma. Email values match in any letter case. Phone values match in any format, and the operand needs a country code such as +1 415 555 0100. Link values match in any letter case, with or without the scheme. Domain values match as a bare host or a full URL, with or without www. Tags-input values match the exact stored value. Date-time values match a date without a time, such as 2026-10-01, as that whole day. Email and link fields also take a domain sub-field with $in or $not_in, such as {\"domain\":{\"$in\":[\"acme.com\"]}}, which matches the host of each value. $not_in and $has_none also match records where the field is empty. $is_empty takes true or false. Repeat [] to send several values. A filter holds at most 20 conditions, 3 levels of $and, $or and $not, and 2 levels of relations. A list holds at most 100 values. Examples: filter[custom_fields][stage][$in]=Qualification,Prospecting and filter[custom_fields][emails][domain][$not_in]=acme.com.","example":null,"required":false,"schema":{"type":"string","description":"Filter by a custom field value. Text: $eq, $contains. Number, currency, date, date-time: $eq, $gt, $gte, $lt, $lte. Email, phone, link, domain, checkbox-list, tags-input, multi-select: $has_any, $has_none. Checkbox, toggle: $eq. Radio, toggle-buttons, select: $eq, $in, $not_in. In a query string $is_empty also takes 1 or 0. Checkbox-list, radio, toggle-buttons, select and multi-select values take an option label or ID. An unknown one returns 422. Choice lists split on commas, so repeat the parameter with [] when a label contains a comma. Email values match in any letter case. Phone values match in any format, and the operand needs a country code such as +1 415 555 0100. Link values match in any letter case, with or without the scheme. Domain values match as a bare host or a full URL, with or without www. Tags-input values match the exact stored value. Date-time values match a date without a time, such as 2026-10-01, as that whole day. Email and link fields also take a domain sub-field with $in or $not_in, such as {\"domain\":{\"$in\":[\"acme.com\"]}}, which matches the host of each value. $not_in and $has_none also match records where the field is empty. $is_empty takes true or false. Repeat [] to send several values. A filter holds at most 20 conditions, 3 levels of $and, $or and $not, and 2 levels of relations. A list holds at most 100 values. Examples: filter[custom_fields][stage][$in]=Qualification,Prospecting and filter[custom_fields][emails][domain][$not_in]=acme.com.","examples":[null]}},{"in":"query","name":"sort","description":"Sort results. Prefix with `-` for descending. Allowed: title, -title, created_at, -created_at, updated_at, -updated_at.","required":false,"schema":{"type":"string","description":"Sort results. Prefix with `-` for descending. Allowed: title, -title, created_at, -created_at, updated_at, -updated_at.","examples":["-created_at"]}},{"in":"query","name":"include","description":"Include related resources (comma-separated). Allowed: creator, companies, people, opportunities, companiesCount, peopleCount, opportunitiesCount.","required":false,"schema":{"type":"string","description":"Include related resources (comma-separated). Allowed: creator, companies, people, opportunities, companiesCount, peopleCount, opportunitiesCount.","examples":["creator"]}},{"in":"query","name":"per_page","description":"Number of results per page (1-100). Default: 15.","required":false,"schema":{"type":"integer","description":"Number of results per page (1-100). Default: 15.","examples":[15]}},{"in":"query","name":"cursor","description":"Switches to cursor pagination. Send `true` for the first page, then the `meta.next_cursor` value of the previous page. Sorts by a custom field need `page`.","example":null,"required":false,"schema":{"type":"string","description":"Switches to cursor pagination. Send `true` for the first page, then the `meta.next_cursor` value of the previous page. Sorts by a custom field need `page`.","examples":[null]}},{"in":"query","name":"page","description":"Page number for offset pagination (1-1,000,000, when cursor is not used). Default: 1.","required":false,"schema":{"type":"integer","description":"Page number for offset pagination (1-1,000,000, when cursor is not used). Default: 1.","examples":[1]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","examples":[""]},"type":{"type":"string","examples":["notes"]},"attributes":{"type":"object","properties":{"title":{"type":"string","examples":["Eius nihil cumque quia sunt aut dolores."]},"creation_source":{"type":"string","examples":["web"]},"created_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"updated_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"custom_fields":{"type":"object","properties":{}}}}}},"examples":[[{"id":"","type":"notes","attributes":{"title":"Eius nihil cumque quia sunt aut dolores.","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":[]}},{"id":"","type":"notes","attributes":{"title":"Delectus nemo molestiae ea quia ea.","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":[]}}]]},"links":{"type":"object","properties":{"first":{"type":"string","examples":["/?page=1"]},"last":{"type":"string","examples":["/?page=1"]},"prev":{"type":["string","null"],"examples":[null]},"next":{"type":["string","null"],"examples":[null]}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","examples":[1]},"from":{"type":"integer","examples":[1]},"last_page":{"type":"integer","examples":[1]},"links":{"type":"array","items":{"type":"object","properties":{"url":{"type":["string","null"],"examples":[null]},"label":{"type":"string","examples":["&laquo; Previous"]},"page":{"type":["string","null"],"examples":[null]},"active":{"type":"boolean","examples":[false]}}},"examples":[[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}]]},"path":{"type":"string","examples":["/"]},"per_page":{"type":"integer","examples":[15]},"to":{"type":"integer","examples":[2]},"total":{"type":"integer","examples":[2]}}}},"examples":[{"data":[{"id":"","type":"notes","attributes":{"title":"Eius nihil cumque quia sunt aut dolores.","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}},{"id":"","type":"notes","attributes":{"title":"Delectus nemo molestiae ea quia ea.","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}}],"links":{"first":"/?page=1","last":"/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"path":"/","per_page":15,"to":2,"total":2}}]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `read` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["Notes"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"per_page":{"type":"integer","description":"Must be at least 1. Must not be greater than 100.","examples":[16]},"cursor":{"type":"string","description":"","examples":[null]},"page":{"type":"integer","description":"Must be at least 1. Must not be greater than 1000000.","examples":[7]},"include":{"type":"string","description":"","examples":["ab"]},"sort":{"type":"string","description":"","examples":["ab"]},"fields":{"type":"string","description":"","examples":[null]}}}}}}},"post":{"summary":"","operationId":"postV1Notes","description":"","parameters":[],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","examples":[""]},"type":{"type":"string","examples":["notes"]},"attributes":{"type":"object","properties":{"title":{"type":"string","examples":["Eius nihil cumque quia sunt aut dolores."]},"creation_source":{"type":"string","examples":["web"]},"created_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"updated_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"custom_fields":{"type":"object","properties":{}}}}}}},"examples":[{"data":{"id":"","type":"notes","attributes":{"title":"Eius nihil cumque quia sunt aut dolores.","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}}}]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `create` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["Notes"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","description":"Must not be greater than 255 characters.","examples":["ipzdszigdqrrkthq"]},"company_ids":{"type":"array","description":"","items":{"type":"string"},"examples":[["ab"]]},"people_ids":{"type":"array","description":"","items":{"type":"string"},"examples":[["ab"]]},"opportunity_ids":{"type":"array","description":"","items":{"type":"string"},"examples":[["ab"]]},"custom_fields":{"type":"object","description":"","properties":{},"examples":[null]}},"required":["title"]}}}}}},"/v1/notes/{id}":{"get":{"summary":"","operationId":"getV1NotesId","description":"","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","examples":[""]},"type":{"type":"string","examples":["notes"]},"attributes":{"type":"object","properties":{"title":{"type":"string","examples":["Eum harum dolore nam et pariatur et laborum sunt."]},"creation_source":{"type":"string","examples":["web"]},"created_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"updated_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"custom_fields":{"type":"object","properties":{}}}}}}},"examples":[{"data":{"id":"","type":"notes","attributes":{"title":"Eum harum dolore nam et pariatur et laborum sunt.","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}}}]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `read` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No record with that ID exists in the workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["Notes"]},"put":{"summary":"","operationId":"putV1NotesId","description":"","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","examples":[""]},"type":{"type":"string","examples":["notes"]},"attributes":{"type":"object","properties":{"title":{"type":"string","examples":["Eius nihil cumque quia sunt aut dolores."]},"creation_source":{"type":"string","examples":["web"]},"created_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"updated_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"custom_fields":{"type":"object","properties":{}}}}}}},"examples":[{"data":{"id":"","type":"notes","attributes":{"title":"Eius nihil cumque quia sunt aut dolores.","creation_source":"web","created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z","custom_fields":{}}}}]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `update` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No record with that ID exists in the workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["Notes"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","description":"Must not be greater than 255 characters.","examples":["ipzdszigdqrrkthq"]},"company_ids":{"type":"array","description":"","items":{"type":"string"},"examples":[["ab"]]},"people_ids":{"type":"array","description":"","items":{"type":"string"},"examples":[["ab"]]},"opportunity_ids":{"type":"array","description":"","items":{"type":"string"},"examples":[["ab"]]},"custom_fields":{"type":"object","description":"","properties":{},"examples":[null]}}}}}}},"delete":{"summary":"","operationId":"deleteV1NotesId","description":"","parameters":[],"responses":{"204":{"description":"","content":{"application/json":{"schema":{"type":["object","null"]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `delete` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No record with that ID exists in the workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["Notes"]},"parameters":[{"in":"path","name":"id","description":"The ID of the note.","required":true,"schema":{"type":"string","examples":["01KHHHZ8PEJG3BNYEFABC6TA2Y"]}}]},"/v1/custom-fields":{"get":{"summary":"","operationId":"getV1CustomFields","description":"","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","examples":[""]},"type":{"type":"string","examples":["custom_fields"]},"attributes":{"type":"object","properties":{"code":{"type":"string","examples":["industry"]},"name":{"type":"string","examples":["Industry"]},"type":{"type":"string","examples":["select"]},"entity_type":{"type":"string","examples":["company"]},"required":{"type":"boolean","examples":[false]},"unique":{"type":"boolean","examples":[false]},"created_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]},"updated_at":{"type":"string","examples":["2026-10-08T20:42:22.000000Z"]}}}}},"examples":[[{"id":"","type":"custom_fields","attributes":{"code":"industry","name":"Industry","type":"select","entity_type":"company","required":false,"unique":false,"created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z"}},{"id":"","type":"custom_fields","attributes":{"code":"industry","name":"Industry","type":"select","entity_type":"company","required":false,"unique":false,"created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z"}}]]},"links":{"type":"object","properties":{"first":{"type":"string","examples":["/?page=1"]},"last":{"type":"string","examples":["/?page=1"]},"prev":{"type":["string","null"],"examples":[null]},"next":{"type":["string","null"],"examples":[null]}}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","examples":[1]},"from":{"type":"integer","examples":[1]},"last_page":{"type":"integer","examples":[1]},"links":{"type":"array","items":{"type":"object","properties":{"url":{"type":["string","null"],"examples":[null]},"label":{"type":"string","examples":["&laquo; Previous"]},"page":{"type":["string","null"],"examples":[null]},"active":{"type":"boolean","examples":[false]}}},"examples":[[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}]]},"path":{"type":"string","examples":["/"]},"per_page":{"type":"integer","examples":[15]},"to":{"type":"integer","examples":[2]},"total":{"type":"integer","examples":[2]}}}},"examples":[{"data":[{"id":"","type":"custom_fields","attributes":{"code":"industry","name":"Industry","type":"select","entity_type":"company","required":false,"unique":false,"created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z"}},{"id":"","type":"custom_fields","attributes":{"code":"industry","name":"Industry","type":"select","entity_type":"company","required":false,"unique":false,"created_at":"2026-10-08T20:42:22.000000Z","updated_at":"2026-10-08T20:42:22.000000Z"}}],"links":{"first":"/?page=1","last":"/?page=1","prev":null,"next":null},"meta":{"current_page":1,"from":1,"last_page":1,"links":[{"url":null,"label":"&laquo; Previous","page":null,"active":false},{"url":"/?page=1","label":"1","page":1,"active":true},{"url":null,"label":"Next &raquo;","page":null,"active":false}],"path":"/","per_page":15,"to":2,"total":2}}]}}}},"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `read` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["Custom Fields"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"entity_type":{"type":"string","description":"","enum":["company","people","opportunity","task","note"],"examples":["opportunity"]},"per_page":{"type":"integer","description":"Must be at least 1. Must not be greater than 100.","examples":[16]},"page":{"type":"integer","description":"Must be at least 1. Must not be greater than 1000000.","examples":[7]}}}}}}}},"/v1/user":{"get":{"summary":"","operationId":"getV1User","description":"","parameters":[],"responses":{"401":{"description":"Missing or invalid access token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"402":{"description":"Relaticle Cloud only: the workspace is paused until it has an active subscription. The body carries an `upgrade_url`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks the `read` ability, or its user no longer belongs to the token's workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded. Back off for the number of seconds in `Retry-After`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds until the limit resets."},"X-RateLimit-Limit":{"schema":{"type":"integer"}},"X-RateLimit-Remaining":{"schema":{"type":"integer"}}}}},"tags":["Endpoints"]}}}}