{
  "openapi": "3.1.1",
  "info": {
    "version": "0.0.1",
    "x-affinity-api-version": "2026-07-15",
    "contact": {
      "email": "support@affinity.co",
      "name": "Affinity Support",
      "url": "https://support.affinity.co"
    },
    "description": "# Introduction\n\nWelcome to Affinity API v2! This API provides a RESTful interface for building internal apps,\nautomated workflows, 3rd party integrations, and for connecting Affinity to the rest of your tech\nstack.\n\nThe legacy Affinity v1 API can be found at [api-docs.affinity.co](https://api-docs.affinity.co/).\nThe v2 API is not at feature parity with v1 - we are continuing to develop new v2 APIs to support\nall v1 functionality over time.\n\n**The Affinity APIs are only available on select license types.** See\n[this Help Center article](https://support.affinity.co/hc/en-us/articles/5563700459533-Getting-started-with-the-Affinity-API-FAQs)\nor contact your Customer Success Manager for more information.\n\n# Getting Started\n\nAll Affinity API endpoints use the base URL `https://api.affinity.co`. All v2 endpoint paths start\nwith `/v2`. Requests must be sent over HTTPS.\n\nThe first few sections of these docs cover general information on the API. Each subsequent section\ncovers a set of API endpoints.\n\nEach endpoint is documented with its accepted request parameters, expected response shapes, and a\nsample request and response. The shape of a given response can vary depending on what \"type\" of\nobject or data is being returned. When this is the case, the response documentation will include a\ndropdown that can be used to select the \"type\" for which to display the response shape.\n\n## Authentication\n\nAffinity API v2 uses API keys and **bearer authentication**.\n\nTo generate an API key, navigate to the Manage Apps Page in your Affinity Settings. You will need\nthe \"Generate an API key\" role-based permission controlled by your Affinity admin. See\n[this Help Center article](https://support.affinity.co/hc/en-us/articles/360032633992-How-to-obtain-your-API-Key)\nfor full instructions on API key generation, and\n[this article](https://support.affinity.co/hc/en-us/articles/360015976732-Account-Level-Permissions)\nfor more information on role-based permissions in Affinity.\n\nProvide your API key as your bearer authentication token to start making calls to Affinity API v2.\n\nYou can create multiple API keys and provide a name and description for each. Your API key is able\nto read data and perform actions in Affinity on your behalf, so keep it safe as you would a\npassword. To further secure an API key, you can define an IP Allowlist to limit which IP addresses\nor ranges can make API calls using that key.\n\n## Permissions\n\n### Overall Requirements\n\nYou must have the \"Generate an API key\" permission to be able to work with the Affinity API. Most\nusers in Affinity have this by default — Contact your Affinity admin if you are not able to generate\nan API key, and see\n[this article](https://support.affinity.co/hc/en-us/articles/360015976732-Account-Level-Permissions)\nfor more information on role-based permissions in Affinity.\n\n### Resource-Level Permissions\n\nThe Affinity API respects sharing permissions that are set in-product. For example, if a given user\ndoes not have access to a list, note, or interaction in-product, they will not be able to see or\nmodify it via API.\n\n### Endpoint-Level Permissions\n\nMany API endpoints require endpoint-specific permissions in-product. These permissions, along with\nthe \"Generate an API key\" permission, are managed by your Affinity admin in the Settings page. In\nthe description of each endpoint you will see the required permissions needed.\n\n## Rate Limits\n\nThe Affinity API sets a limit on the number of calls that a user can make per minute, and that all\nthe users on an account can make per month. It also sets a reasonable limit on the number of\nconcurrent requests it will support from an account at one time.\n\nRequests to **both** Affinity API versions will count toward the one pool of requests allowed for a\nuser or account. Once a per-minute, monthly, or concurrent rate limit is hit, subsequent requests\nwill return an error code of 429. **We highly recommend designing your application to handle 429\nerrors.**\n\n### Per-Minute Limits (User-Level)\n\nTo help protect our systems, API requests will be halted at **900 per user, per minute.** We may\nalso lower this limit on a temporary basis to manage API availability.\n\n### Concurrent Request Limits (Account-Level)\n\nTo protect our systems and manage availability across customers, we set a reasonable limit on\nconcurrent requests at the account level. Customers should not expect to hit this limit unless they\nare hitting the API with heavy operations from many concurrent threads at once.\n\n### Monthly Plan Tier Limits (Account-Level)\n\nThe overall number of requests you can make per month will depend on your account's plan tier.\n**This monthly account-level limit resets at the end of each calendar month.** Current rate limits\nby plan tier are:\n\n| Plan Tier  | Calls Per Month |\n| ---------- | --------------- |\n| Essentials | None            |\n| Scale      | 100k            |\n| Advanced   | 100k            |\n| Enterprise | Unlimited\\*     |\n\n\\*Per-Minute and Concurrent Request Limits still apply.\n\n### Rate Limit Headers\n\nAll API calls will return the following response headers with information about per-minute and\nmonthly limits:\n\n| Header                           | Description                                             |\n| -------------------------------- | ------------------------------------------------------- |\n| x-ratelimit-limit-user           | Number of requests allowed per minute for the user      |\n| x-ratelimit-limit-user-remaining | Number of requests remaining for the user               |\n| x-ratelimit-limit-user-reset     | Time in seconds before the limit resets for the user    |\n| x-ratelimit-limit-org            | Number of requests allowed per month for the account    |\n| x-ratelimit-limit-org-remaining  | Number of requests remaining for the account            |\n| x-ratelimit-limit-org-reset      | Time in seconds before the limit resets for the account |\n\n## Pagination\n\nWhen an endpoint is expected to return multiple results, we break the results into pages to make\nthem easier to handle. To cycle forward through multiple pages of data, look for the `nextUrl`\nproperty in the `pagination` portion of an API response, and use it for your next request. See\nendpoint documentation for more information.\n\n## Filtering\n\nSome endpoints support a filtering language for flexible and powerful queries. This allows for the\ncreation of complex filter expressions using different operators and boolean logic in a single\nfilter string. The description of each endpoint will contain information on which filter properties\nand operators are supported.\n\n### Rules\n\n- Spaces are insignificant by default. For example, `field = hello` and `field=hello` are both\n  valid.\n- If spaces are significant, they need to be inside double quotes, for example,\n  `field = \"hello world\"`\n- Special characters need to be escaped with a backslash: `field=\"hello\\\" world\"` <br> Full list of\n  special characters: `\\ * ~ ! & = > < $ ^ | \" ' ( ) ] [ /`\n- Use `&` and `|` for boolean operations: `foo = 1 | baz = 2 & bar = 3`. Boolean Algebra Logic is\n  assumed: `&` takes precedence over `|`. When evaluating the condition above, `baz = 2 & bar = 3`\n  will be computed first, and then the result will be `or`'ed with `foo=1`\n- Parentheses can be used to specify the order of operations. In the example above, to make sure\n  that `foo = 1 | baz = 2` is evaluated first, parentheses must be placed\n  `(foo = 1 | baz = 2) & bar = 3`\n\n### Grammar\n\n#### Simple Types\n\n| Definition               | Property Type                                        | Operator | Example                                                                                   |\n| ------------------------ | ---------------------------------------------------- | -------- | ----------------------------------------------------------------------------------------- |\n| exact match              | all                                                  | =        | content = “hello world” <br> content=hello                                                |\n| starts with              | text                                                 | =^       | content =^ he                                                                             |\n| ends with                | text                                                 | =$       | content =$ llo                                                                            |\n| contains                 | text                                                 | =~       | content =~ lo                                                                             |\n| greater than             | int32, int64, float, double, decimal, date, datetime | \\>       | count > 1                                                                                 |\n| greater than or equal to | int32, int64, float, double, decimal, date, datetime | \\>=      | content >= 1                                                                              |\n| less than                | int32, int64, float, double, decimal, date, datetime | \\<       | count < 1                                                                                 |\n| less than or equal to    | int32, int64, float, double, decimal, date, datetime | \\<=      | content <= 1                                                                              |\n| is NULL                  | all                                                  | != \\*    | content != \\*                                                                             |\n| is not NULL              | all                                                  | =\\*      | content = \\*                                                                              |\n| is empty                 | text                                                 | =\"\"      | content = \"\"                                                                              |\n| negation                 | all                                                  | !        | content != ”hello world” <br> !(content = ”hello world”) <br> !(content =^ “hello world”) |\n\n#### Collections (all types)\n\n| Definition                | Operator | Example                              |\n| ------------------------- | -------- | ------------------------------------ |\n| exact match with ordering | =        | industries = [Healthcare,Fintech]    |\n| contains all              | =~       | industries =~ [Healthcare,Fintech]   |\n| empty                     | =[]      | industries =[]                       |\n| negation                  | !        | !(industries = [Healthcare,Fintech]) |\n\n## Error Codes\n\nHere is a list of the error codes the API will return if something goes wrong (see endpoint\ndocumentation for endpoint-specific errors):\n\n| Error Code | Meaning                                                                                                                                                                                                     |\n| ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| 400        | Bad Request — See endpoint documentation for more information.                                                                                                                                              |\n| 401        | Unauthorized — Your API key is invalid.                                                                                                                                                                     |\n| 403        | Forbidden — Insufficient rights to a resource.                                                                                                                                                              |\n| 404        | Not Found — Requested resource does not exist. See endpoint documentation for more information.                                                                                                             |\n| 405        | Method Not Allowed — The method being used is not supported for this resource.                                                                                                                              |\n| 422        | Unprocessable Entity — Malformed parameters supplied. This can also happen in cases the parameters supplied logically cannot complete the request. In this case, an appropriate error message is delivered. |\n| 429        | Too Many Requests — You have exceeded the rate limit.                                                                                                                                                       |\n| 500        | Internal Server Error — We had a problem with our server. Try again later.                                                                                                                                  |\n| 503        | Service Unavailable — This shouldn't generally happen. Contact us if you encounter this error.                                                                                                              |\n\n## Versioning\n\nVersioning in Affinity’s API ensures that your integrations remain stable as updates are introduced.\nWithin API v2, minor versions identify releases that may include breaking or behavior-changing\nmodifications, and they allow you to target the exact API behavior your integration depends on.\n\nWhen you create an API key in the Settings page, you'll select a **Default API Version** for that\nkey. The current available versions are:\n\n- **2024-01-01** - The current stable version of the v2 API\n\nAs new minor versions of Affinity API v2 are introduced, they will appear in this list. You’ll be\nable to create new keys using those versions or update an existing key to use a newer version.\n\n## Beta Endpoints\n\nYou’ll notice in our documentation that some endpoints will be marked as BETA. These endpoints are\nnewly released and will eventually progress to General Availability (GA). While an endpoint is in\nBETA there are some important things to consider:\n\n- The development of this endpoint may still be in progress. This means new capabilities, request\n  parameters, response data, and performance improvements may be adjusted over time. Because of\n  this, breaking changes may occur to the endpoint WITHOUT notice or versioning.\n- As this is an early release, bug fixes may still be ongoing as well, and we encourage you to\n  report bugs to [support@affinity.co](mailto:support@affinity.co).\n- In addition, your feedback around the capabilities of the endpoint are highly valuable, please\n  reach out to your CSM to provide feedback to our product team.\n\n# Data Model\n\n## The Basics\n\nThe three top-level objects in Affinity are **Persons, Companies, and Opportunities**. (Note:\nCompanies are called Organizations in the Affinity web app.) These have profiles in the Affinity web\napp and can be added to Lists.\n\nA **List** is a spreadsheet-like collection of rows tied to Persons, Companies, or Opportunities.\n\n- Each row on a List is a **List Entry**. A List Entry contains data and metadata about a given\n  Person, Company, or Opportunity in the context of a List. This includes list-specific field data,\n  and information about who added the row to the List and when.\n- A given entity can be added to a List more than once. These List Entries can have different\n  List-specific field data and List Entry-level metadata.\n\nEach column on a List maps to a **Field**. Fields show up within Affinity profile pages, extensions,\nand integrations. There are two categories of fields:\n\n- **List-specific fields** are scoped to a single List. In the API, their data can only be accessed\n  through the List Entry resource.\n- **Global fields** belong to entities directly. These can include default fields, fields created by\n  you, enrichment fields, or relationship intelligence fields. They can be accessed through the\n  Person/Company/Opportunity resources and the List Entry resource.\n\n## Working with Field Data\n\n### Field Types and IDs\n\nHere is a deeper look at the types of Fields in Affinity, differentiated by the scope and source of\ntheir data:\n\n| Field&nbsp;Type             | Description                                                                                                                                                  | Example Fields                                                                                                                                              | Field ID Pattern                                                                                                                             |\n| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |\n| `enriched`                  | Firmographic, funding, and people Fields populated by Affinity. These can be \"Affinity Data\" Fields or come from distinct data partners.                     | \"Affinity Data: Description\", \"Dealroom: Number of Employees\"                                                                                               | A string representing the enrichment source, followed by the field name, e.g. `affinity-data-description` or `dealroom-number-of-employees`. |\n| `list`                      | Fields that are specific to the context of a given list. These can only be accessed through `*/list-entries` endpoints in this version of the API.           | Default \"Status\" and \"Amount\" columns, custom columns that pertain to a given List of deals or founders                                                     | `field-`, followed by a unique integer, e.g. `field-1234`                                                                                    |\n| `global`                    | Fields that persist across an Affinity account and are not list-specific.                                                                                    | \"My Firm's Founder Scoring Column\"                                                                                                                          | `field-`, followed by a unique integer, e.g. `field-1234`                                                                                    |\n| `relationship-intelligence` | Fields populated by Affinity from users' email and calendar data that provide insight into your firm's relationship with a given Person/Company/Opportunity. | \"Source of Introduction\", \"First Email\", \"Last Email\", \"First Event\", \"Last Event\", \"Next Event\", \"First Chat Message\", \"Last Chat Message\", \"Last Contact\" | A string similar to the field's name in-product, e.g. `source-of-introduction`                                                               |\n\n### Field Value Types\n\nField data can take a variety of shapes. These value types are described in the Affinity Help Center\n[creating columns in lists](https://support.affinity.co/hc/en-us/articles/115001608232-How-to-create-a-new-column-in-a-list).\nHere is a list of the same value types, as represented in this API. Notice how array types end with\n`-multi`:\n\n| Single Type         | Array Type                |\n| ------------------- | ------------------------- |\n| `text`              | Not supported in Affinity |\n| `number`            | `number-multi`            |\n| `datetime`          | Not supported in Affinity |\n| `location`          | `location-multi`          |\n| `dropdown`          | `dropdown-multi`          |\n| `ranked-dropdown`   | Not supported in Affinity |\n| `person`            | `person-multi`            |\n| `company`           | `company-multi`           |\n| `filterable-text`\\* | `filterable-text-multi`\\* |\n\n\\*Note that `filterable-text` and `filterable-text-multi` are special types that operate similarly\nto `dropdown` and `dropdown-multi`. They are reserved for Affinity-populated Fields, and users\ncannot create Fields with these types.\n\nWhen an array-typed value has no data in it, the API will return `null` (rather than an empty\narray).\n\n### Retrieving Field Data\n\nTo retrieve field data on companies, persons, or opportunities, call GET `/v2/companies`, GET\n`/v2/persons`, or one of our GET `*/list-entries` endpoints. (Note that Opportunities only have\nlist-specific Fields, so all their field data will live on the `*/list-entries` endpoints.) For most\nof these endpoints, you will need to specify the Fields for which you want data returned via the\n`fieldIds` or `fieldTypes` parameter — Otherwise, entities will be returned without any field data\nattached.\n\nThe GET `/v2/companies` and `/v2/persons` endpoints can return entities with enriched, global, and\nrelationship intelligence field data attached, but do not support list-specific field data. **To get\ncomprehensive field data including list-specific field data on Companies and Persons, use the GET\n`*/list-entries` endpoints.**\n\n### Specifying Desired Fields (Field Selection)\n\nAs mentioned above, you will need to specify the Fields (either by ID or by Type) for which you want\ndata returned when using the following endpoints:\n\n- GET `/v2/companies`\n- GET `/v2/companies/{id}`\n- GET `/v2/persons`\n- GET `/v2/persons/{id}`\n- GET `/v2/lists/{listId}/list-entries`\n\nEach of these endpoints has a `fieldIds` parameter that accepts an array of Field IDs, and a\n`fieldTypes` parameter that accepts an array of Field Types. Use the GET `*/fields` endpoints to get\nField IDs, Field Types, and other Field-level metadata:\n\n- Call GET `/v2/companies/fields` and `/v2/persons/fields` to get a list of the enriched, global,\n  and relationship intelligence (AKA non-list-specific) Fields that exist on Companies and Persons,\n  respectively. These are the Fields whose values are available to pull via GET `/v2/companies`, GET\n  `/v2/companies/{id}`, GET `/v2/persons`, and `/v2/persons/{id}`.\n- Call GET `/v2/lists/{listId}/fields` to get a list of the enriched, global, relationship\n  intelligence, **and list-specific** Fields for a given List. These are the Fields whose values are\n  available to pull via GET `/v2/lists/{listId}/list-entries`.\n\nThe following endpoints don't require field selection:\n\n- GET `/v2/lists/{listId}/saved-views/{viewId}/list-entries` — See below. This endpoint returns just\n  the field data that has been pulled into the given Saved View via UI.\n- GET `/v2/companies/{id}/list-entries` and GET `/v2/persons/{id}/list-entries` — These endpoints\n  return comprehensive field data for the given person or company in the context of each List Entry.\n\n### Saved Views\n\nA Saved View allows a user to configure the Fields they want to see in the UI for a given List, and\nset filters and sorts on the rows on that List. A List can have multiple Saved Views. In the context\nof this API, Saved Views can be useful for specifying the exact Fields for which data is needed. The\n`*/saved-views/{viewId}/list-entries` endpoint also respects the filters that have been set on the\ngiven Saved View in the Affinity web app. (It does not, however, respect sorts just yet.)\n\n### Partner Data Restrictions\n\nThis API supports pulling data from\n[Affinity Data](https://support.affinity.co/hc/en-us/articles/360058255052-Affinity-Data) fields and\nselect\n[Dealroom fields](https://support.affinity.co/hc/en-us/articles/6106558518797-Dealroom-co-data-in-Affinity#h_01G2N22SVH7TJR3DJV3NQDE9HQ).\nDue the agreements we have with some of our data partners, the API does not expose data from the\nfollowing sources:\n\n- Crunchbase, including Crunchbase UUID\n- Pitchbook\n- [Dealroom \"exclusive\" fields](https://support.affinity.co/hc/en-us/articles/6106558518797-Dealroom-co-data-in-Affinity#h_01G2N22YEAZJ5TC1X9ENKZFWF5)\n\n## Nested Associations\n\nSome GET endpoints return \"association\" data under `fields`. For example, the Persons GET endpoints\nreturn data about which Companies a Person is associated with in Affinity. The Opportunities GET\nendpoints return similar data about associated Companies and Persons. The List Entries GET endpoints\nalso return this data for Person and Opportunity List Entries.\n\nThe API truncates these nested arrays of Persons or Companies **at 100 entries**. For example, if an\nOpportunity is associated with 200 Persons in Affinity, only 100 of those Persons will be returned\nby the GET `/opportunities` or `/opportunities/{id}` endpoint.\n\n# Changelog\n\n## January 30th, 2026\n\n- The following endpoints are no longer in BETA:\n\n| Method | URL                                         | Summary                                        |\n| ------ | ------------------------------------------- | ---------------------------------------------- |\n| GET    | `/v2/notes`                                 | Get all Notes                                  |\n| GET    | `/v2/notes/{noteId}`                        | Get a Note with a given id                     |\n| GET    | `/v2/notes/{noteId}/attached-companies`     | Get directly attached companies for a Note     |\n| GET    | `/v2/notes/{noteId}/attached-opportunities` | Get directly attached opportunities for a Note |\n| GET    | `/v2/notes/{noteId}/attached-persons`       | Get directly attached persons for a Note       |\n| GET    | `/v2/notes/{noteId}/replies`                | Get reply notes for a given Note               |\n\n## January 26th, 2026\n\n- Added the following endpoints in BETA:\n\n| Method | URL                                        | Summary                              |\n| ------ | ------------------------------------------ | ------------------------------------ |\n| GET    | `/v2/transcripts`                          | Get All Transcripts                  |\n| GET    | `/v2/transcripts/{transcriptId}`           | Get Transcript                       |\n| GET    | `/v2/transcripts/{transcriptId}/fragments` | Get Fragments on a single Transcript |\n\n## January 14th, 2026\n\n- Rate limit response headers have been updated to use lowercase formatting. This change affects all\n  API endpoints. The new lowercase headers are:\n\n| Header                           | Description                                             |\n| -------------------------------- | ------------------------------------------------------- |\n| x-ratelimit-limit-user           | Number of requests allowed per minute for the user      |\n| x-ratelimit-limit-user-remaining | Number of requests remaining for the user               |\n| x-ratelimit-limit-user-reset     | Time in seconds before the limit resets for the user    |\n| x-ratelimit-limit-org            | Number of requests allowed per month for the account    |\n| x-ratelimit-limit-org-remaining  | Number of requests remaining for the account            |\n| x-ratelimit-limit-org-reset      | Time in seconds before the limit resets for the account |\n\n## January 1st, 2026\n\n- API Change: Handling timestamps for date fields. Affinity is standardizing how dates are\n  represented across the platform to ensure consistency between the application and the API.\n  Starting January 1st, 2026, the API will change how it handles timestamps for date fields. Today,\n  timestamps sent to date fields over the API are not visible to users in any CRM interface. After\n  this change, the API will ignore any time information included in requests, storing and returning\n  values at midnight Pacific Time (PT) on the submitted date.\n\n  **Example:**\n  - API request includes: `2024-04-01T15:30:00Z`\n  - Affinity will store and return: `2024-04-01T07:00:00.000Z` (equivalent to midnight PT)\n\n  Any existing date field values that currently include timestamps will also be updated to reflect\n  midnight PT on their stored date. No action is required unless your integration depends on time\n  data within date fields.\n\n## September 25th, 2025\n\n- Added the following endpoints in BETA:\n\n| Method | URL                                 | Summary                      |\n| ------ | ----------------------------------- | ---------------------------- |\n| GET    | `/v2/company-merges`                | Get All Company Merge status |\n| POST   | `/v2/company-merges`                | Initiate Company Merge       |\n| GET    | `/v2/company-merges/{mergeId}`      | Get Company Merge status     |\n| GET    | `/v2/tasks/company-merges`          | Get All Company Merge Tasks  |\n| GET    | `/v2/tasks/company-merges/{taskId}` | Get Company Merge Task       |\n\n## July 30th, 2025\n\n- Added the following endpoints in BETA:\n\n| Method | URL                                         | Summary                                        |\n| ------ | ------------------------------------------- | ---------------------------------------------- |\n| GET    | `/v2/person-merges`                         | Get All Person Merge status                    |\n| POST   | `/v2/person-merges`                         | Initiate Person Merge                          |\n| GET    | `/v2/person-merges/{mergeId}`               | Get Person Merge status                        |\n| GET    | `/v2/tasks/person-merges`                   | Get All Person Merge Tasks                     |\n| GET    | `/v2/tasks/person-merges/{taskId}`          | Get Person Merge Task                          |\n| GET    | `/v2/notes`                                 | Get all Notes                                  |\n| GET    | `/v2/notes/{noteId}`                        | Get a Note with a given id                     |\n| GET    | `/v2/notes/{noteId}/attached-companies`     | Get directly attached companies for a Note     |\n| GET    | `/v2/notes/{noteId}/attached-opportunities` | Get directly attached opportunities for a Note |\n| GET    | `/v2/notes/{noteId}/attached-persons`       | Get directly attached persons for a Note       |\n| GET    | `/v2/notes/{noteId}/replies`                | Get reply notes for a given Note               |\n\n## May 14th, 2025\n\n- Renamed all path parameters named simply \"id\" to a more descriptive name (eg. \"personId\"). This\n  will not have any effect on the API at runtime, but may impact code relying on the OpenAPI spec\n  doing type generation.\n\n## April 9th, 2025\n\n- The following endpoints are no longer in BETA:\n\n| Method | URL                                                              | Summary                                           |\n| ------ | ---------------------------------------------------------------- | ------------------------------------------------- |\n| GET    | `/v2/lists/{listId}/list-entries/{listEntryId}`                  | Get a single List Entry on a List                 |\n| GET    | `/v2/lists/{listId}/list-entries/{listEntryId}/fields`           | Get field values on a single List Entry           |\n| PATCH  | `/v2/lists/{listId}/list-entries/{listEntryId}/fields`           | Perform batch operations on a list entry's fields |\n| GET    | `/v2/lists/{listId}/list-entries/{listEntryId}/fields/{fieldId}` | Get a single field value                          |\n| POST   | `/v2/lists/{listId}/list-entries/{listEntryId}/fields/{fieldId}` | Update a single field value on a List Entry       |\n\n## March 31st, 2025\n\n- The following beta endpoints now support updating association fields.\n\n| Method | URL                                                              | Summary                                           |\n| ------ | ---------------------------------------------------------------- | ------------------------------------------------- |\n| PATCH  | `/v2/lists/{listId}/list-entries/{listEntryId}/fields`           | Perform batch operations on a list entry's fields |\n| POST   | `/v2/lists/{listId}/list-entries/{listEntryId}/fields/{fieldId}` | Update a single field value on a List Entry       |\n\n## February 28th, 2025\n\n- Added the following endpoints in BETA:\n\n| Method | URL                                                              | Summary                                           |\n| ------ | ---------------------------------------------------------------- | ------------------------------------------------- |\n| GET    | `/v2/lists/{listId}/list-entries/{listEntryId}`                  | Get a single List Entry on a List                 |\n| GET    | `/v2/lists/{listId}/list-entries/{listEntryId}/fields`           | Get field values on a single List Entry           |\n| PATCH  | `/v2/lists/{listId}/list-entries/{listEntryId}/fields`           | Perform batch operations on a list entry's fields |\n| GET    | `/v2/lists/{listId}/list-entries/{listEntryId}/fields/{fieldId}` | Get a single field value                          |\n| POST   | `/v2/lists/{listId}/list-entries/{listEntryId}/fields/{fieldId}` | Update a single field value on a List Entry       |\n\n## January 17th, 2025\n\n- Document `X-Ratelimit` headers in the schema for all endpoints.\n\n## January 15th, 2025\n\n- Add default responses to all endpoints to document all possible error codes that can be returned\n  by the API.\n- Updated 400 error responses to correctly include the `bad-request` error code as a possible error.\n\n## December 3rd, 2024\n\n- Properly document `listId` property on `CompanyListEntry`, `PersonListEntry`, and\n  `OpportunityListEntry` schemas.\n\n## September 25th, 2024\n\n- Upgrade schema to OpenAPI 3.1\n\n## August 5, 2024\n\n- Correct `opp` to `opportunity` to match documentation for the `List` `type` property.\n\n## July 24, 2024\n\n- More accurate documentation for response properties that are enums — Enums with `null` as a\n  possible value will have it listed as one.\n\n## March 25, 2024\n\n- Added the ability to retrieve the date and other details of your firm's \"First Email\", \"Last\n  Email\", \"First Event\", \"Last Event\", \"Next Event\", \"First Chat Message\", \"Last Chat Message\", and\n  \"Last Contact\" with a given entity. Use these timestamps to add relationship context to your\n  applications, and to identify founders and companies that need investors' attention.\n- Endpoints that previously required a `fieldIds` parameter to return field data, now accept either\n  `fieldIds` or `fieldTypes`, and will return field data accordingly. See the\n  [Specifying Desired Fields (Field Selection)](/pages/data-model/working-with-field-data) section\n  of these docs for more information. The new `fieldTypes` parameter should make field data\n  retrieval easier for users looking to pull data from many similar Fields at a time.\n\n## January 4, 2023\n\n- Most endpoints that return field data now require the user to use the `fieldIds` parameter to\n  specify which Fields they want data for. Without `fieldIds` specified, these endpoints will return\n  basic entity data but not field data.\n\n## December 12, 2023\n\n- Added the ability to retrieve metadata (e.g. ID, name, type, enrichment source, and data type) on\n  Fields. See the [Retrieving Field Metadata](/pages/data-model/working-with-field-data) section of\n  these docs for more information.\n",
    "license": {
      "name": "Proprietary",
      "url": "https://www.affinity.co/legal/terms-of-use"
    },
    "termsOfService": "https://www.affinity.co/legal/terms-of-use",
    "title": "Affinity API v2",
    "x-logo": {
      "url": "https://assets.affinity.co/img/logos/full-color-svg.svg",
      "altText": "Affinity logo"
    }
  },
  "servers": [
    {
      "url": "https://api.affinity.co"
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "tags": [
    {
      "description": "Operations about Auth",
      "name": "Auth"
    },
    {
      "description": "Operations about Calls",
      "name": "Calls"
    },
    {
      "description": "Operations about chat messages",
      "name": "Chat Messages"
    },
    {
      "description": "Operations about companies",
      "name": "Companies"
    },
    {
      "description": "Operations about company merges",
      "name": "Company Merges"
    },
    {
      "description": "Operations about emails",
      "name": "Emails"
    },
    {
      "description": "Operations about feedback",
      "name": "Feedback"
    },
    {
      "description": "Operations about field value changes",
      "name": "Field Value Changes"
    },
    {
      "description": "Operations about files",
      "name": "Files"
    },
    {
      "description": "Operations about inferred connections",
      "name": "Inferred Connections"
    },
    {
      "description": "Operations about lists",
      "name": "Lists"
    },
    {
      "description": "Operations about meetings",
      "name": "Meetings"
    },
    {
      "description": "Operations about notes",
      "name": "Notes"
    },
    {
      "description": "Operations about opportunities",
      "name": "Opportunities"
    },
    {
      "description": "Operations about person merges",
      "name": "Person Merges"
    },
    {
      "description": "Operations about persons",
      "name": "Persons"
    },
    {
      "description": "Operations about reminders",
      "name": "Reminders"
    },
    {
      "description": "Operations about semantic searches",
      "name": "Semantic Search"
    },
    {
      "description": "Operations about transcripts",
      "name": "Transcripts"
    },
    {
      "description": "Operations about users",
      "name": "Users"
    }
  ],
  "paths": {
    "/v2/auth/whoami": {
      "get": {
        "x-operation-type": "retrieval-single",
        "description": "Returns information about the authenticated user, their current organization, and API key permissions.\nUse this endpoint to verify your authentication and understand your available API access levels.",
        "summary": "Get current user",
        "operationId": "v2_auth_whoami__GET",
        "tags": [
          "Auth"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WhoAmI"
                },
                "example": {
                  "grant": {
                    "createdAt": "2023-01-01T00:00:00Z",
                    "scopes": [
                      "api"
                    ],
                    "type": "api-key"
                  },
                  "user": {
                    "firstName": "John",
                    "lastName": "Smith",
                    "emailAddress": "john.smith@contoso.com",
                    "id": 1
                  },
                  "tenant": {
                    "name": "Contoso Ltd.",
                    "subdomain": "contoso",
                    "id": 1
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/calls": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Paginate through all calls in Affinity. Returns basic information about the call interaction\nand its participants. Will only return calls that the current authenticated user has \npermission to see.\n\nYou can filter calls using the `filter` query parameter. The filter parameter is a string that you can specify conditions based on the following properties.\n| **Property Name** | **Type** | **Allowed Operators** | **Examples** |\n|---|---|---|---|\n| `id` | `int64` | `=` | `id=1\\|id=2\\|id=3` |\n| `startTime` | `datetime` | `>`, `<`, `>=`, `<=` | `sentAt>2025-01-01T01:00:00Z` |\n| `createdAt` | `datetime` | `>`, `<`, `>=`, `<=` | `createdAt<2025-01-01T01:00:00Z` |\n| `updatedAt` | `datetime` | `>`, `<`, `>=`, `<=` | `updatedAt>=2025-01-01T01:00:00Z` |\n",
        "summary": "Get metadata on all Calls",
        "operationId": "v2_calls__GET",
        "tags": [
          "Calls"
        ],
        "parameters": [
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string",
              "examples": [
                "ICAgICAgYmVmb3JlOjo6Nw"
              ]
            },
            "example": "ICAgICAgYmVmb3JlOjo6Nw"
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100,
              "examples": [
                100
              ]
            },
            "example": 100
          },
          {
            "name": "filter",
            "description": "Filter options",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "example": "id=1234|id=5678|id=9012"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/interactions.CallPaged"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/chat-messages": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Paginate through all chat messages in Affinity. Returns basic information about the chat message\ninteraction and its participants. Will only return chat messages that the current authenticated\nuser has permission to see.\n\nYou can filter chat messages using the `filter` query parameter. The filter parameter is a string that you can specify conditions based on the following properties.\n| **Property Name** | **Type** | **Allowed Operators** | **Examples** |\n|---|---|---|---|\n| `id` | `int64` | `=` | `id=1\\|id=2\\|id=3` |\n| `sentAt` | `datetime` | `>`, `<`, `>=`, `<=` | `sentAt>2025-01-01T01:00:00Z` |\n| `createdAt` | `datetime` | `>`, `<`, `>=`, `<=` | `createdAt<2025-01-01T01:00:00Z` |\n| `updatedAt` | `datetime` | `>`, `<`, `>=`, `<=` | `updatedAt>=2025-01-01T01:00:00Z` |\n",
        "summary": "Get metadata on all Chat Messages",
        "operationId": "v2_chat-messages__GET",
        "tags": [
          "Chat Messages"
        ],
        "parameters": [
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string",
              "examples": [
                "ICAgICAgYmVmb3JlOjo6Nw"
              ]
            },
            "example": "ICAgICAgYmVmb3JlOjo6Nw"
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100,
              "examples": [
                100
              ]
            },
            "example": 100
          },
          {
            "name": "filter",
            "description": "Filter options",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "example": "id=1234|id=5678|id=9012"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/interactions.ChatMessagePaged"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/companies": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Paginate through Companies in Affinity.\nReturns basic information and non-list-specific field data on each Company.\n\nTo retrieve field data, you must use either the `fieldIds` or the `fieldTypes` parameter\nto specify the Fields for which you want data returned.\nThese Field IDs and Types can be found using the GET `/v2/companies/fields` endpoint.\nWhen no `fieldIds` or `fieldTypes` are provided, Companies will be returned without any field data attached.\nTo supply multiple `fieldIds` or `fieldTypes` parameters, generate a query string that looks like this:\n`?fieldIds=field-1234&fieldIds=affinity-data-location` or `?fieldTypes=enriched&fieldTypes=global`.\n\nRequires the \"Export All Organizations directory\" [permission](/pages/external-api-v2/permissions).",
        "summary": "Get all Companies",
        "operationId": "v2_companies__GET",
        "tags": [
          "Companies"
        ],
        "parameters": [
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string",
              "examples": [
                "ICAgICAgYmVmb3JlOjo6Nw"
              ]
            },
            "example": "ICAgICAgYmVmb3JlOjo6Nw"
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100,
              "examples": [
                100
              ]
            },
            "example": 100
          },
          {
            "name": "ids",
            "description": "Company IDs",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int64",
                "minimum": 1,
                "maximum": 9007199254740991
              }
            },
            "example": [
              1,
              2
            ]
          },
          {
            "name": "fieldIds",
            "description": "Field IDs for which to return field data",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "examples": [
                [
                  "field-1"
                ]
              ]
            },
            "example": [
              "field-1",
              "field-2"
            ]
          },
          {
            "name": "fieldTypes",
            "description": "Field Types for which to return field data",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "enriched",
                  "global",
                  "relationship-intelligence"
                ]
              }
            },
            "example": [
              "enriched",
              "global"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyPaged"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/companies/fields": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Returns metadata on non-list-specific Company Fields.\n\nUse the returned Field IDs to request field data from the GET `/v2/companies` and GET `/v2/companies/{id}` endpoints.\n\nYou can filter Fields using the `filter` query parameter. The filter parameter is a string that you can specify conditions based on the following properties.\n| **Property Name** | **Type** | **Allowed Operators** | **Examples** |\n|---|---|---|---|\n| `name` | `text` | `=`, `=~` | `name=\"Location\"`, `name=~loc` |\n\nUse the `includes` query parameter to add optional metadata to each Field in the response. Pass `includes` more than once to request multiple values.\n| **Value** | **Adds to each Field** |\n|---|---|\n| `filterability` | How the field can be used in filter expressions on GET `/v2/companies` and POST `/v2/companies/search` |\n| `sortability` | How the field can be used in sort expressions on those endpoints |\n\nExample: `GET /v2/companies/fields?includes=filterability&includes=sortability`\n",
        "summary": "Get metadata on Company Fields",
        "operationId": "v2_companies_fields__GET",
        "tags": [
          "Companies"
        ],
        "parameters": [
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string",
              "examples": [
                "ICAgICAgYmVmb3JlOjo6Nw"
              ]
            },
            "example": "ICAgICAgYmVmb3JlOjo6Nw"
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100,
              "examples": [
                100
              ]
            },
            "example": 100
          },
          {
            "name": "filter",
            "description": "Filter options",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "example": "name=~location"
          },
          {
            "$ref": "#/components/parameters/fields.includes"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FieldMetadataPaged"
                },
                "examples": {
                  "default": {
                    "$ref": "#/components/examples/default"
                  },
                  "filterability-sortability": {
                    "$ref": "#/components/examples/filterability-sortability"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/companies/fields/{fieldId}/dropdown-options": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Returns the dropdown options for a specific dropdown or ranked-dropdown field on a Company.\n\nUse the returned dropdown option IDs when writing dropdown field values via the field update\nendpoints.\n",
        "summary": "Get dropdown options for a Company Field",
        "operationId": "v2_companies_fields_fieldId_dropdown-options__GET",
        "tags": [
          "Companies"
        ],
        "parameters": [
          {
            "name": "fieldId",
            "description": "Field ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "field-1234",
              "examples": [
                "field-1234"
              ]
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "ICAgICAgYmVmb3JlOjo6Nw",
              "examples": [
                "ICAgICAgYmVmb3JlOjo6Nw"
              ]
            }
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DropdownOptionPaged"
                },
                "examples": {
                  "dropdown-options": {
                    "$ref": "#/components/examples/dropdown-options"
                  },
                  "dropdown-options-ranked": {
                    "$ref": "#/components/examples/dropdown-options-ranked"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/companies/search": {
      "post": {
        "x-operation-type": "retrieval-multiple-search",
        "x-stability-level": "beta",
        "description": "| ⚠️  This endpoint is currently in BETA |\n|--|\n\nSearch for Companies matching the given criteria.\n\nAccepts an optional combination of filters, sorts, and a search term. Omitting the body is equivalent to `GET /v2/companies` with default pagination.\n\nRequires the \"Export All Organizations directory\" [permission](/pages/external-api-v2/permissions).\n\n### Field IDs\n\nField IDs used in `filters`, `sorts`, and `search.fieldIds` follow the formats described in [Working with Field Data](/pages/data-model/working-with-field-data). Use `GET /v2/companies/fields` to discover the available fields and their `valueType`.\n\n### `attributeId`\n\nSome fields require an `attributeId` to specify which aspect to filter or sort on. The following relationship intelligence fields all use `attributeId: \"date-of-activity\"`: `last-email`, `first-email`, `last-contact`, `last-event`, `first-event`, `next-event`.\n\nUse `GET /v2/companies/fields` to confirm which fields require an `attributeId`.\n\n### Search\n\nThe `search.term` is always matched against the company name and primary domain. Providing `search.fieldIds` extends the search to those additional fields; it does not restrict matching to only those fields. Fields with a `valueType` of `datetime` are not searchable and are silently ignored if included in `search.fieldIds`.\n\n### Limits\n\n- **Items per filter group** (filters or nested groups): 50\n\n- **Values per filter** (e.g. options in `is-any-of`): 100\n\n- **Sort criteria**: 5\n\n- **Search term minimum length**: 3 characters\n\n- **Results per page**: 100\n\n### Pagination\n\nUses cursor-based pagination.\n",
        "summary": "Search Companies",
        "operationId": "v2_companies_search__POST",
        "tags": [
          "Companies"
        ],
        "parameters": [
          {
            "name": "fieldIds",
            "description": "Specific field IDs for which to return field data on each Company. Cannot be used together with `fieldTypes`; use one or the other. Use `GET /v2/companies/fields` to discover available field IDs.",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "example": [
              "field-1234",
              "affinity-data-employees-current"
            ]
          },
          {
            "name": "fieldTypes",
            "description": "A category of fields for which to return field data on each Company. Cannot be used together with `fieldIds`; use one or the other.",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "enriched",
                  "global",
                  "relationship-intelligence"
                ]
              }
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page.",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "description": "Maximum number of Companies to return per page.",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100
            }
          },
          {
            "name": "totalCount",
            "description": "When `true`, includes the total count of matching Companies in the pagination response. Adds additional query cost; use only when needed.",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SearchCriteria"
              },
              "examples": {
                "filter-by-dropdown": {
                  "$ref": "#/components/examples/filter-by-dropdown"
                },
                "filter-and-sort": {
                  "$ref": "#/components/examples/filter-and-sort"
                },
                "grouped-filter": {
                  "$ref": "#/components/examples/grouped-filter"
                },
                "search-with-filter": {
                  "$ref": "#/components/examples/search-with-filter"
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyPaged"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/companies/{companyId}": {
      "get": {
        "x-operation-type": "retrieval-single",
        "description": "Returns basic information and non-list-specific field data on the requested Company.\n\nTo retrieve field data, you must use either the `fieldIds` or the `fieldTypes` parameter\nto specify the Fields for which you want data returned.\nThese Field IDs and Types can be found using the GET `/v2/companies/fields` endpoint.\nWhen no `fieldIds` or `fieldTypes` are provided, Companies will be returned without any field data attached.\nTo supply multiple `fieldIds` or `fieldTypes` parameters, generate a query string that looks like this:\n`?fieldIds=field-1234&fieldIds=affinity-data-location` or `?fieldTypes=enriched&fieldTypes=global`.",
        "summary": "Get a single Company",
        "operationId": "v2_companies_companyId__GET",
        "tags": [
          "Companies"
        ],
        "parameters": [
          {
            "name": "companyId",
            "description": "Company ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "fieldIds",
            "description": "Field IDs for which to return field data",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "examples": [
                [
                  "field-1"
                ]
              ]
            },
            "example": [
              "field-1",
              "field-2"
            ]
          },
          {
            "name": "fieldTypes",
            "description": "Field Types for which to return field data",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "enriched",
                  "global",
                  "relationship-intelligence"
                ]
              }
            },
            "example": [
              "enriched",
              "global"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Company"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/companies/{companyId}/fields": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "x-stability-level": "beta",
        "description": "| ⚠️  This endpoint is currently in BETA |\n|--|\n\nPaginate through field values on a single company.\n\n\nEnriched, global, and relationship-intelligence fields will be included by default. The `ids` and `types` parameters can be used to filter\nthe collection. These parameters are mutually exclusive.\n\nList fields are not returned by this endpoint. To retrieve or update list field values, use the\n[list entry fields](/api-reference/lists/get-field-values-on-a-single-list-entry) endpoints.\n",
        "summary": "Get field values on a single Company",
        "operationId": "v2_companies_companyId_fields__GET",
        "tags": [
          "Companies"
        ],
        "parameters": [
          {
            "name": "companyId",
            "description": "Company ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "ids",
            "description": "Field IDs for which to return field data",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "examples": [
                [
                  "field-1"
                ]
              ]
            },
            "example": [
              "field-1",
              "field-2"
            ]
          },
          {
            "name": "types",
            "description": "Field Types for which to return field data",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "enriched",
                  "global",
                  "relationship-intelligence"
                ]
              }
            },
            "example": [
              "enriched",
              "global"
            ]
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string",
              "examples": [
                "ICAgICAgYmVmb3JlOjo6Nw"
              ]
            },
            "example": "ICAgICAgYmVmb3JlOjo6Nw"
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 20,
              "examples": [
                20
              ]
            },
            "example": 20
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FieldPaged"
                },
                "examples": {
                  "company-enriched": {
                    "$ref": "#/components/examples/company-enriched"
                  },
                  "company-relationship-intelligence": {
                    "$ref": "#/components/examples/company-relationship-intelligence"
                  },
                  "company-global": {
                    "$ref": "#/components/examples/company-global"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      },
      "patch": {
        "x-operation-type": "batch",
        "description": "Perform batch operations on a company's fields.\n\n\nCurrently the only operation at the endpoint is `update-fields`, which allows you to update\nmultiple field values with a single request. This is equivalent to calling [the single field\nupdate](/api-reference/companies/update-a-single-field-value-on-a-company) endpoint multiple times. You can\nupdate up to 100 fields per request.\n",
        "summary": "Perform batch operations on a company's fields",
        "operationId": "v2_companies_companyId_fields__PATCH",
        "tags": [
          "Companies"
        ],
        "parameters": [
          {
            "name": "companyId",
            "description": "Company ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompanyBatchOperationRequest"
              },
              "examples": {
                "update-fields": {
                  "$ref": "#/components/examples/update-fields"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyBatchOperationResponse"
                },
                "examples": {
                  "update-fields": {
                    "$ref": "#/components/examples/update-fields-2"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/companies/{companyId}/fields/{fieldId}": {
      "get": {
        "x-operation-type": "retrieval-single",
        "x-stability-level": "beta",
        "description": "| ⚠️  This endpoint is currently in BETA |\n|--|\n\nRetrieve a single field on a company. Returns basic information and the field value.\n",
        "summary": "Get a single field value on a Company",
        "operationId": "v2_companies_companyId_fields_fieldId__GET",
        "tags": [
          "Companies"
        ],
        "parameters": [
          {
            "name": "companyId",
            "description": "Company ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "fieldId",
            "description": "Field ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "examples": [
                "affinity-data-location",
                "field-1234"
              ]
            },
            "example": "field-1234"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Field"
                },
                "examples": {
                  "company": {
                    "$ref": "#/components/examples/company"
                  },
                  "company-multi": {
                    "$ref": "#/components/examples/company-multi"
                  },
                  "datetime": {
                    "$ref": "#/components/examples/datetime"
                  },
                  "dropdown": {
                    "$ref": "#/components/examples/dropdown"
                  },
                  "dropdown-multi": {
                    "$ref": "#/components/examples/dropdown-multi"
                  },
                  "filterable-text": {
                    "$ref": "#/components/examples/filterable-text"
                  },
                  "filterable-text-multi": {
                    "$ref": "#/components/examples/filterable-text-multi"
                  },
                  "formula-number": {
                    "$ref": "#/components/examples/formula-number"
                  },
                  "interaction": {
                    "$ref": "#/components/examples/interaction"
                  },
                  "location": {
                    "$ref": "#/components/examples/location"
                  },
                  "location-multi": {
                    "$ref": "#/components/examples/location-multi"
                  },
                  "number": {
                    "$ref": "#/components/examples/number"
                  },
                  "number-multi": {
                    "$ref": "#/components/examples/number-multi"
                  },
                  "person": {
                    "$ref": "#/components/examples/person"
                  },
                  "person-multi": {
                    "$ref": "#/components/examples/person-multi"
                  },
                  "ranked-dropdown": {
                    "$ref": "#/components/examples/ranked-dropdown"
                  },
                  "text": {
                    "$ref": "#/components/examples/text"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      },
      "post": {
        "x-operation-type": "update-single-sync",
        "description": "Update a single field value on a company.\n",
        "summary": "Update a single field value on a Company",
        "operationId": "v2_companies_companyId_fields_fieldId__POST",
        "tags": [
          "Companies"
        ],
        "parameters": [
          {
            "name": "companyId",
            "description": "Company ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "fieldId",
            "description": "Field ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "examples": [
                "affinity-data-location",
                "field-1234"
              ]
            },
            "example": "field-1234"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FieldUpdate"
              },
              "examples": {
                "company": {
                  "$ref": "#/components/examples/company-2"
                },
                "company-multi": {
                  "$ref": "#/components/examples/company-multi-2"
                },
                "datetime": {
                  "$ref": "#/components/examples/datetime-2"
                },
                "dropdown": {
                  "$ref": "#/components/examples/dropdown-2"
                },
                "dropdown-multi": {
                  "$ref": "#/components/examples/dropdown-multi-2"
                },
                "filterable-text": {
                  "$ref": "#/components/examples/filterable-text-2"
                },
                "filterable-text-multi": {
                  "$ref": "#/components/examples/filterable-text-multi-2"
                },
                "location": {
                  "$ref": "#/components/examples/location-2"
                },
                "location-multi": {
                  "$ref": "#/components/examples/location-multi-2"
                },
                "number": {
                  "$ref": "#/components/examples/number-2"
                },
                "number-multi": {
                  "$ref": "#/components/examples/number-multi-2"
                },
                "person": {
                  "$ref": "#/components/examples/person-2"
                },
                "person-multi": {
                  "$ref": "#/components/examples/person-multi-2"
                },
                "ranked-dropdown": {
                  "$ref": "#/components/examples/ranked-dropdown-2"
                },
                "text": {
                  "$ref": "#/components/examples/text-2"
                }
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content",
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/companies/{companyId}/list-entries": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Paginate through the List Entries (AKA rows) for the given Company across all Lists.\nEach List Entry includes field data for the Company, including list-specific field data.\nEach List Entry also includes metadata about its creation, i.e., when it was added to the List and by whom.",
        "summary": "Get a Company's List Entries",
        "operationId": "v2_companies_companyId_list-entries__GET",
        "tags": [
          "Companies"
        ],
        "parameters": [
          {
            "name": "companyId",
            "description": "Company ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string",
              "examples": [
                "ICAgICAgYmVmb3JlOjo6Nw"
              ]
            },
            "example": "ICAgICAgYmVmb3JlOjo6Nw"
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100,
              "examples": [
                100
              ]
            },
            "example": 100
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListEntryPaged"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/companies/{companyId}/lists": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Paginate through all Lists where the given Company appears as an entry and that you have access to view.\nReturns basic List information for each List that contains this Company.",
        "summary": "Get a Company's Lists",
        "operationId": "v2_companies_companyId_lists__GET",
        "tags": [
          "Companies"
        ],
        "parameters": [
          {
            "name": "companyId",
            "description": "Company ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string",
              "examples": [
                "ICAgICAgYmVmb3JlOjo6Nw"
              ]
            },
            "example": "ICAgICAgYmVmb3JlOjo6Nw"
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100,
              "examples": [
                100
              ]
            },
            "example": 100
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListPaged"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/companies/{companyId}/notes": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Returns relevant notes for a given company which includes directly attached notes and notes attached to persons on this company.\n\nYou can filter notes using the `filter` query parameter. The filter parameter is a string that you can specify conditions based on the following properties.\n| **Property Name** | **Type** | **Allowed Operators** | **Examples** |\n|---|---|---|---|\n| `creator.id` | `int32` | `=` | `creator.id=1` |\n| `createdAt` | `datetime` | `>`, `<`, `>=`, `<=` | `createdAt<2025-02-04T10:48:24Z` |\n| `updatedAt` | `datetime` | `>`, `<`, `>=`, `<=` | `updatedAt>=2025-02-03T10:48:24Z` |\n",
        "summary": "Get Notes for a Company",
        "operationId": "v2_companies_companyId_notes__GET",
        "tags": [
          "Companies"
        ],
        "parameters": [
          {
            "name": "companyId",
            "description": "Company's ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "filter",
            "description": "Filter options",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "maximum": 100,
              "default": 20
            }
          },
          {
            "name": "totalCount",
            "description": "Include total count of the collection in the pagination response",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/notes.NotesPaged"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/companies/{companyId}/relationships": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Returns the relationships for a given company, including the interaction score that measures\nthe strength of each relationship based on communication patterns such as emails, meetings,\nand other interactions.\n\nEach relationship includes two persons (person1 and person2) who have a connection related\nto this company.\n\n## Interaction score\n\nThe `interactionScore` is a value between `0.0` and `1.0` that reflects how frequently the\ntwo persons interact across email, calendar events, and chat messages. The more interactions,\nthe higher the score. Recent interactions are weighted slightly higher than older ones. As\nrough guidance, scores at or above `0.7` typically indicate two persons that communicate\nregularly, scores between `0.4` and `0.7` indicate occasional communication, and scores below\n`0.4` indicate only sporadic communication.\n\n## LinkedIn connections\n\nThe collection also includes relationships based on a LinkedIn connection between an internal\nteam member and a person related to this company. Whenever a LinkedIn connection exists between \nthe two persons in a relationship, `linkedIn` is populated with the date the connection was made. \n`linkedIn` is `null` when no LinkedIn connection between the two persons is known by Affinity. \nNote that LinkedIn-based relationships which do not have any interaction data will have an \n`interactionScore` of `0`.\n\n## Filters\n\nYou can filter relationships using the `filter` query parameter. The filter parameter is a string that you can specify conditions based on the following properties.\n| **Property Name** | **Type** | **Description** | **Allowed Operators** | **Examples** |\n|---|---|---|---|---|\n| `interactionScore` | `double` | Strength of the relationship, between `0.0` and `1.0`. Higher means stronger. | `>`, `<`, `>=`, `<=` | `interactionScore>=0.5` |\n\n## Sorting\n\nYou can sort relationships using the `orderBy` query parameter. `interactionScore` is the only\nsortable property.\n",
        "summary": "Get Relationships for a Company",
        "operationId": "v2_companies_companyId_relationships__GET",
        "tags": [
          "Companies"
        ],
        "parameters": [
          {
            "name": "companyId",
            "description": "Company ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "filter",
            "description": "Filter options",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderBy",
            "description": "Properties to sort by. Defaults to `-interactionScore`. Prefix with `-` for descending order.",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "interactionScore",
                  "-interactionScore"
                ]
              },
              "default": [
                "-interactionScore"
              ]
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 20
            }
          },
          {
            "name": "totalCount",
            "description": "Include total count of the collection in the pagination response",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RelationshipsPaged"
                },
                "examples": {
                  "relationships": {
                    "$ref": "#/components/examples/relationships"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/company-merges": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Retrieve paginated company merges for the organization.\n\n\nReturns all company merges initiated by users in your organization, including their current\nstatus, the companies involved, and merge details. You can filter company merges using the `filter` query parameter. The filter parameter is a string that you can specify conditions based on the following properties:\n\n\n| **Property Name** | **Type** | **Allowed Operators** | **Examples** |\n|---|---|---|---|\n| `status` | `enum` | `=` | `status=in-progress`, `status=success`, `status=failed` |\n| `taskId` | `text` | `=` | `taskId=789e0123-e45b-67c8-d901-234567890123` |\n\n\nCompany merges are returned in reverse chronological order (most recent first).\n\n\nRequires the \"Manage duplicates\" [permission](/pages/external-api-v2/permissions) and\norganization admin role.\n",
        "summary": "Get All Company Merges",
        "operationId": "v2_company-merges__GET",
        "tags": [
          "Company Merges"
        ],
        "parameters": [
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "example": "ICAgICAgYmVmb3JlOjo6Nw"
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100
            },
            "example": 100
          },
          {
            "name": "filter",
            "description": "Filter company merges using Affinity Filtering Language",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "example": "status=failed | taskId=789e0123-e45b-67c8-d901-234567890123"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyMergeStatePaged"
                },
                "examples": {
                  "merges-list": {
                    "$ref": "#/components/examples/merges-list"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      },
      "post": {
        "x-operation-type": "creation-single-async",
        "description": "Initiate a company merge to combine a duplicate company profile into a primary company profile.\n\nThis is an asynchronous process that will merge all data from the duplicate company into the primary company. Once the merge is initiated, you can track its progress using the returned task URL.\n\nRequires the \"Manage duplicates\" [permission](/pages/external-api-v2/permissions) and organization admin role.",
        "summary": "Initiate Company Merge",
        "operationId": "v2_company-merges__POST",
        "tags": [
          "Company Merges"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompanyMergeRequest"
              },
              "examples": {
                "merge-companies": {
                  "$ref": "#/components/examples/merge-companies"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyMergeResponse"
                },
                "examples": {
                  "merge-initiated": {
                    "$ref": "#/components/examples/merge-initiated"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/company-merges/{mergeId}": {
      "get": {
        "x-operation-type": "retrieval-single",
        "description": "Retrieve the status and details of a specific company merge.\n\nReturns information about the company merge including its current status, the companies involved, timestamps, and any error information if the merge failed.\n\nThe `mergeId` can be obtained from the response of the [Get All Company Merges](/api-reference/company-merges/get-all-company-merges) endpoint, or by filtering company merges by task ID using `/v2/company-merges?filter=taskId={taskId}` after initiating a merge.\n\nRequires the \"Manage duplicates\" [permission](/pages/external-api-v2/permissions) and organization admin role.",
        "summary": "Get Company Merge",
        "operationId": "v2_company-merges_mergeId__GET",
        "tags": [
          "Company Merges"
        ],
        "parameters": [
          {
            "name": "mergeId",
            "description": "Company merge ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991,
              "examples": [
                12345
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyMergeState"
                },
                "examples": {
                  "completed-merge": {
                    "$ref": "#/components/examples/succeeded-merge"
                  },
                  "failed-merge": {
                    "$ref": "#/components/examples/failed-merge"
                  },
                  "in-progress-merge": {
                    "$ref": "#/components/examples/in-progress-merge"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/emails": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Paginate through all emails in Affinity. Returns basic information about the email interaction\nand its participants. Will only return emails or subject lines that the current authenticated\nuser has permission to see.\n\nEmail bodies (the message content) are not available through the API. Only metadata such as the\nsubject, participants, and timestamps is returned.\n\nIf the authenticated user does not have permission to see an email's subject, the `subject`\nfield is obfuscated and returned as `********` rather than the actual subject line.\n\nYou can filter emails using the `filter` query parameter. The filter parameter is a string that you can specify conditions based on the following properties.\n| **Property Name** | **Type** | **Allowed Operators** | **Examples** |\n|---|---|---|---|\n| `id` | `int64` | `=` | `id=1\\|id=2\\|id=3` |\n| `sentAt` | `datetime` | `>`, `<`, `>=`, `<=` | `sentAt>2025-01-01T01:00:00Z` |\n| `createdAt` | `datetime` | `>`, `<`, `>=`, `<=` | `createdAt<2025-01-01T01:00:00Z` |\n| `updatedAt` | `datetime` | `>`, `<`, `>=`, `<=` | `updatedAt>=2025-01-01T01:00:00Z` |\n",
        "summary": "Get metadata on all Emails",
        "operationId": "v2_emails__GET",
        "tags": [
          "Emails"
        ],
        "parameters": [
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string",
              "examples": [
                "ICAgICAgYmVmb3JlOjo6Nw"
              ]
            },
            "example": "ICAgICAgYmVmb3JlOjo6Nw"
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100,
              "examples": [
                100
              ]
            },
            "example": 100
          },
          {
            "name": "filter",
            "description": "Filter options",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "example": "id=1234|id=5678|id=9012"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/interactions.EmailPaged"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/feedback": {
      "post": {
        "x-operation-type": "creation-single-sync",
        "description": "Send feedback to Affinity about a particular product area or feature.\n",
        "summary": "Send Feedback",
        "operationId": "v2_feedback__POST",
        "tags": [
          "Feedback"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FeedbackRequest"
              },
              "examples": {
                "submit-feedback": {
                  "$ref": "#/components/examples/submit-feedback"
                }
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content",
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/field-value-changes": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Retrieve field value changes across all entities and fields in your Affinity workspace.\n\nFor an overview of field value changes, including which fields support change tracking and how the action types behave, see [Field Value Changes](/pages/data-model/working-with-field-data#field-value-changes).\n\nThis endpoint is built for delta-sync. Within a single sync, follow `pagination.nextUrl` to page through results until it becomes `null`, which means you have reached the most recent change. To run the next incremental sync, record the `changedAt` of the last change you processed and, on your next sync, filter for changes newer than that timestamp (for example, `filter=changedAt>2024-06-01T12:00:00Z`). Do not persist `nextUrl` between syncs, since it is `null` once you are caught up. Changes are returned in ascending order of `changedAt`, then by internal change ID. Only fields with change tracking enabled are included.\n\nYou can filter results using the `filter` query parameter.\n\n| **Property Name** | **Type** | **Description** | **Allowed Operators** | **Examples** |\n|---|---|---|---|---|\n| `field.id` | `text` |  | `=` | `field.id=field-1234` |\n| `listEntry.id` | `int64` |  | `=` | `listEntry.id=5678` |\n| `changer.id` | `int64` | The person who made the change. | `=` | `changer.id=9012` |\n| `changedAt` | `datetime` | When the change was made. | `>`, `<`, `>=`, `<=` | `changedAt>=2025-01-01T00:00:00Z` |\n| `actionType` | `text` | The type of change (`add`, `update`, `delete`) | `=` | `actionType=add` |\n\nFilters can be combined:\n- `|` (OR) to match any of multiple values: `field.id=field-1 | field.id=field-2`\n- `&` (AND) to require all conditions: `changedAt>=2025-01-01T00:00:00Z & changedAt<=2025-12-31T23:59:59Z`\n",
        "summary": "Get all field value changes",
        "operationId": "v2_field-value-changes__GET",
        "tags": [
          "Field Value Changes"
        ],
        "parameters": [
          {
            "name": "filter",
            "description": "Filter options",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "field.id=field-1234"
          },
          {
            "name": "orderBy",
            "description": "Properties to sort by. Defaults to `changedAt`. Prefix with `-` for descending order.",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "changedAt",
                  "-changedAt"
                ],
                "default": [
                  "changedAt"
                ]
              }
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "examples": [
                "ICAgICAgYmVmb3JlOjo6Nw"
              ]
            },
            "example": "ICAgICAgYmVmb3JlOjo6Nw"
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100,
              "examples": [
                100
              ]
            },
            "example": 100
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/fieldValueChanges.FieldValueChangePaged"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/files/search": {
      "post": {
        "x-operation-type": "retrieval-multiple-search",
        "description": "Search files by keyword. The scope of the search is controlled by the request body:\n\n- Provide `fileIds` to limit the search to specific files.\n- Provide `companyId` to limit the search to files associated with a specific company.\n- Omit both to search across your entire account.\n\n`fileIds` and `companyId` are mutually exclusive.\n\nReturns up to `limit` files ordered by relevance. Prompts with no strong matches may\nstill return low-relevance results.\n\nEach result contains a matched file and a single representative excerpt (a matching\npassage from that file). Even if a file contains multiple matching passages, it appears\nexactly once in the response with one excerpt.\n",
        "summary": "Search Files by Keyword",
        "operationId": "v2_files_search__POST",
        "tags": [
          "Files"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/files.KeywordSearchCriteria"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/files.KeywordSearchResult"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/inferred-connections/coworkers": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "x-stability-level": "beta",
        "description": "| ⚠️  This endpoint is currently in BETA |\n|--|\n\nReturns inferred connections based on shared work history, grouped by the target person, strongest first.\n\nA connection is the belief that a `source` (a person in your Affinity data, with an `id`, whom you know) might know a `target` (a person not in your Affinity data, described only, whom you want to know), because the two had overlapping employment at a shared company.\n\nThe same target can be reachable through several people you know. Connections are grouped by target: each item in `data` is one target together with the `connections` to them. Within a target, connections are ordered strongest first; targets are ordered by their strongest connection, strongest first.\n\nEach `target` carries the company they work at **today** in `target.currentCompany`: the company at which they are a potential contact now, which is not necessarily the shared employer behind the connection.\n\nThe `filter` parameter is required and must contain at least one filter. The only currently supported filter is `target.currentCompany.id`, which narrows the targets to a single such company.\n\n## Filters\n\n| **Property Name** | **Type** | **Description** | **Allowed Operators** | **Examples** |\n|---|---|---|---|---|\n| `target.currentCompany.id` | `integer` | The id of the company the `target` person currently works at. Must reference a single company; filtering on more than one (e.g. `target.currentCompany.id = 1 \\| target.currentCompany.id = 2`) returns a `400`. | `=` | `target.currentCompany.id = 123` |\n",
        "summary": "Get Coworker Inferred Connections",
        "operationId": "v2_inferred-connections_coworkers__GET",
        "tags": [
          "Inferred Connections"
        ],
        "parameters": [
          {
            "name": "filter",
            "description": "Filter options. At least one filter is required; the only currently supported filter is `target.currentCompany.id`, which narrows the targets to the one company the `target` person currently works at. Filtering on more than one company returns a `400`.",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "description": "Number of targets to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 20
            }
          },
          {
            "name": "totalCount",
            "description": "Include total count of the collection in the pagination response",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CoworkerConnectionGroupsPaged"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/inferred-connections/investor-executive-connections": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "x-stability-level": "beta",
        "description": "| ⚠️  This endpoint is currently in BETA |\n|--|\n\nReturns investor-executive inferred connections, grouped by the target person, strongest first.\n\nA connection is the belief that a `source` (a person in your Affinity data, with an `id`, whom you know) might know a `target` (a person not in your Affinity data, described only, whom you want to know). In this connection type the source is an investor and the target is an executive: the source invested in a company where the target was an executive.\n\nThe same target can be reachable through several people you know. Connections are grouped by target: each item in `data` is one target together with the `connections` to them. Within a target, connections are ordered strongest first; targets are ordered by their strongest connection, strongest first.\n\nEach `target` carries the company they work at **today** in `target.currentCompany`: the company at which they are a potential contact now, which is not necessarily the company involved in the investment.\n\nThe `filter` parameter is required and must contain at least one filter. The only currently supported filter is `target.currentCompany.id`, which narrows the targets to a single such company.\n\n## Filters\n\n| **Property Name** | **Type** | **Description** | **Allowed Operators** | **Examples** |\n|---|---|---|---|---|\n| `target.currentCompany.id` | `integer` | The id of the company the `target` person currently works at. Must reference a single company; filtering on more than one (e.g. `target.currentCompany.id = 1 \\| target.currentCompany.id = 2`) returns a `400`. | `=` | `target.currentCompany.id = 123` |\n",
        "summary": "Get Investor-Executive Inferred Connections",
        "operationId": "v2_inferred-connections_investor-executive-connections__GET",
        "tags": [
          "Inferred Connections"
        ],
        "parameters": [
          {
            "name": "filter",
            "description": "Filter options. At least one filter is required; the only currently supported filter is `target.currentCompany.id`, which narrows the targets to the one company the `target` person currently works at. Filtering on more than one company returns a `400`.",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "description": "Number of targets to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 50,
              "default": 20
            }
          },
          {
            "name": "totalCount",
            "description": "Include total count of the collection in the pagination response",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvestorExecutiveConnectionGroupsPaged"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/lists": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Paginate through all Lists in your organization that you have access to view.\nReturns basic information about each List, including name, owner, and privacy settings.",
        "summary": "Get metadata on all Lists",
        "operationId": "v2_lists__GET",
        "tags": [
          "Lists"
        ],
        "parameters": [
          {
            "name": "term",
            "description": "Case-insensitive substring match on List name.",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string",
              "examples": [
                "ICAgICAgYmVmb3JlOjo6Nw"
              ]
            },
            "example": "ICAgICAgYmVmb3JlOjo6Nw"
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100,
              "examples": [
                100
              ]
            },
            "example": 100
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListWithTypePaged"
                },
                "examples": {
                  "success": {
                    "$ref": "#/components/examples/success"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      },
      "post": {
        "x-operation-type": "creation-single-sync",
        "description": "Create a new List.\n\nThe List type determines the kind of entities (Companies, Persons, or Opportunities) that can be\nadded. The requester is recorded as the creator and the owner.\n",
        "summary": "Create a List",
        "operationId": "v2_lists__POST",
        "tags": [
          "Lists"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ListToBeCreated"
              },
              "examples": {
                "create-company-list": {
                  "$ref": "#/components/examples/create-company-list"
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListWithType"
                },
                "examples": {
                  "created-list": {
                    "$ref": "#/components/examples/created-list"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/lists/{listId}": {
      "get": {
        "x-operation-type": "retrieval-single",
        "description": "Retrieve detailed information about a specific List you have access to view.\nReturns List configuration including name, owner, privacy settings, and creation details.",
        "summary": "Get metadata on a single List",
        "operationId": "v2_lists_listId__GET",
        "tags": [
          "Lists"
        ],
        "parameters": [
          {
            "name": "listId",
            "description": "List ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListWithType"
                },
                "examples": {
                  "company-list": {
                    "$ref": "#/components/examples/company-list"
                  },
                  "opportunity-list": {
                    "$ref": "#/components/examples/opportunity-list"
                  },
                  "person-list": {
                    "$ref": "#/components/examples/person-list"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/lists/{listId}/fields": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Returns metadata on the Fields available on a single List.\n\nUse the returned Field IDs to request field data from the GET `/v2/lists/{listId}/list-entries`\nendpoint.\n\nYou can filter Fields using the `filter` query parameter. The filter parameter is a string that you can specify conditions based on the following properties.\n| **Property Name** | **Type** | **Allowed Operators** | **Examples** |\n|---|---|---|---|\n| `name` | `text` | `=`, `=~` | `name=\"Status\"`, `name=~stat` |\n\nUse the `includes` query parameter to add optional metadata to each Field in the response. Pass `includes` more than once to request multiple values.\n| **Value** | **Adds to each Field** |\n|---|---|\n| `filterability` | How the field can be used in filter expressions on POST `/v2/lists/{listId}/list-entries/search` |\n| `sortability` | How the field can be used in sort expressions on that endpoint |\n\nExample: `GET /v2/lists/{listId}/fields?includes=filterability&includes=sortability`\n",
        "summary": "Get metadata on a single List's Fields",
        "operationId": "v2_lists_listId_fields__GET",
        "tags": [
          "Lists"
        ],
        "parameters": [
          {
            "name": "listId",
            "description": "List ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string",
              "examples": [
                "ICAgICAgYmVmb3JlOjo6Nw"
              ]
            },
            "example": "ICAgICAgYmVmb3JlOjo6Nw"
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100,
              "examples": [
                100
              ]
            },
            "example": 100
          },
          {
            "name": "filter",
            "description": "Filter options",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "example": "name=~status"
          },
          {
            "$ref": "#/components/parameters/fields.includes"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FieldMetadataPaged"
                },
                "examples": {
                  "company-list": {
                    "$ref": "#/components/examples/company-list-2"
                  },
                  "person-list": {
                    "$ref": "#/components/examples/person-list-2"
                  },
                  "opportunity-list": {
                    "$ref": "#/components/examples/opportunity-list-2"
                  },
                  "company-list-filterability-sortability": {
                    "$ref": "#/components/examples/company-list-filterability-sortability"
                  },
                  "person-list-filterability-sortability": {
                    "$ref": "#/components/examples/person-list-filterability-sortability"
                  },
                  "opportunity-list-filterability-sortability": {
                    "$ref": "#/components/examples/opportunity-list-filterability-sortability"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/lists/{listId}/fields/{fieldId}/dropdown-options": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Returns the dropdown options for a specific dropdown, ranked-dropdown, or status-dropdown field\non a List.\n\nUse the returned dropdown option IDs when writing dropdown field values via the field update\nendpoints.\n",
        "summary": "Get dropdown options for a List Field",
        "operationId": "v2_lists_listId_fields_fieldId_dropdown-options__GET",
        "tags": [
          "Lists"
        ],
        "parameters": [
          {
            "name": "listId",
            "description": "List ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "fieldId",
            "description": "Field ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "field-1234",
              "examples": [
                "field-1234"
              ]
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "ICAgICAgYmVmb3JlOjo6Nw",
              "examples": [
                "ICAgICAgYmVmb3JlOjo6Nw"
              ]
            }
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DropdownOptionPaged"
                },
                "examples": {
                  "dropdown-options": {
                    "$ref": "#/components/examples/dropdown-options"
                  },
                  "dropdown-options-ranked": {
                    "$ref": "#/components/examples/dropdown-options-ranked"
                  },
                  "dropdown-options-status": {
                    "$ref": "#/components/examples/dropdown-options-status"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      },
      "post": {
        "x-operation-type": "creation-single-sync",
        "description": "Create a dropdown option for a List Field.\n",
        "summary": "Create a dropdown option for a List Field",
        "operationId": "v2_lists_listId_fields_fieldId_dropdown-options__POST",
        "tags": [
          "Lists"
        ],
        "parameters": [
          {
            "name": "listId",
            "description": "List ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "fieldId",
            "description": "Field ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "field-1234",
              "examples": [
                "field-1234"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/dropdownOptions.DropdownOptionToBeCreated"
              },
              "examples": {
                "dropdown": {
                  "$ref": "#/components/examples/dropdown-3"
                },
                "ranked-dropdown": {
                  "$ref": "#/components/examples/ranked-dropdown-3"
                },
                "status-dropdown": {
                  "$ref": "#/components/examples/status-dropdown"
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DropdownOption"
                },
                "examples": {
                  "dropdown": {
                    "$ref": "#/components/examples/dropdown-4"
                  },
                  "ranked-dropdown": {
                    "$ref": "#/components/examples/ranked-dropdown-4"
                  },
                  "status-dropdown": {
                    "$ref": "#/components/examples/status-dropdown-2"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/lists/{listId}/fields/{fieldId}/dropdown-options/{dropdownOptionId}": {
      "get": {
        "x-operation-type": "retrieval-single",
        "description": "Get a single dropdown option for a List Field.\n",
        "summary": "Get a dropdown option for a List Field",
        "operationId": "v2_lists_listId_fields_fieldId_dropdown-options_dropdownOptionId__GET",
        "tags": [
          "Lists"
        ],
        "parameters": [
          {
            "name": "listId",
            "description": "List ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "fieldId",
            "description": "Field ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "field-1234",
              "examples": [
                "field-1234"
              ]
            }
          },
          {
            "name": "dropdownOptionId",
            "description": "Dropdown option ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DropdownOption"
                },
                "examples": {
                  "dropdown": {
                    "$ref": "#/components/examples/dropdown-5"
                  },
                  "ranked-dropdown": {
                    "$ref": "#/components/examples/ranked-dropdown-5"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      },
      "post": {
        "x-operation-type": "update-single-sync",
        "description": "Update a dropdown option for a List Field.\n",
        "summary": "Update a dropdown option for a List Field",
        "operationId": "v2_lists_listId_fields_fieldId_dropdown-options_dropdownOptionId__POST",
        "tags": [
          "Lists"
        ],
        "parameters": [
          {
            "name": "listId",
            "description": "List ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "fieldId",
            "description": "Field ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "field-1234",
              "examples": [
                "field-1234"
              ]
            }
          },
          {
            "name": "dropdownOptionId",
            "description": "Dropdown option ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/dropdownOptions.DropdownOptionToBeUpdated"
              },
              "examples": {
                "dropdown": {
                  "$ref": "#/components/examples/dropdown-6"
                },
                "ranked-dropdown": {
                  "$ref": "#/components/examples/ranked-dropdown-6"
                },
                "status-dropdown": {
                  "$ref": "#/components/examples/status-dropdown-3"
                }
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content",
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      },
      "delete": {
        "x-operation-type": "deletion-single-sync",
        "description": "Delete a dropdown option for a List Field.\n\n**Warning:** This permanently removes the option and clears every field value currently set to\nit across all List Entries. The cleared values cannot be recovered.\n",
        "summary": "Delete a dropdown option for a List Field",
        "operationId": "v2_lists_listId_fields_fieldId_dropdown-options_dropdownOptionId__DELETE",
        "tags": [
          "Lists"
        ],
        "parameters": [
          {
            "name": "listId",
            "description": "List ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "fieldId",
            "description": "Field ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "field-1234",
              "examples": [
                "field-1234"
              ]
            }
          },
          {
            "name": "dropdownOptionId",
            "description": "Dropdown option ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/lists/{listId}/list-entries": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Paginate through the List Entries (AKA rows) on a given List.\nReturns basic information and field data, including list-specific\nfield data, on each Company, Person, or Opportunity on the List.\nList Entries also include metadata about their creation,\ni.e., when they were added to the List and by whom.\n\nTo retrieve field data, you must use either the `fieldIds` or the `fieldTypes` parameter\nto specify the Fields for which you want data returned.\nThese Field IDs and Types can be found using the GET `/v2/lists/{listId}/fields` endpoint.\nWhen no `fieldIds` or `fieldTypes` are provided, List Entries will be returned without any field data attached.\nTo supply multiple `fieldIds` or `fieldTypes` parameters, generate a query string that looks like this:\n`?fieldIds=field-1234&fieldIds=affinity-data-location` or `?fieldTypes=enriched&fieldTypes=global`.\n\nRequires the \"Export data from Lists\" [permission](/pages/external-api-v2/permissions).",
        "summary": "Get all List Entries on a List",
        "operationId": "v2_lists_listId_list-entries__GET",
        "tags": [
          "Lists"
        ],
        "parameters": [
          {
            "name": "listId",
            "description": "List ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string",
              "examples": [
                "ICAgICAgYmVmb3JlOjo6Nw"
              ]
            },
            "example": "ICAgICAgYmVmb3JlOjo6Nw"
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100,
              "examples": [
                100
              ]
            },
            "example": 100
          },
          {
            "name": "fieldIds",
            "description": "Field IDs for which to return field data",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "examples": [
                [
                  "field-1"
                ]
              ]
            },
            "example": [
              "field-1",
              "field-2"
            ]
          },
          {
            "name": "fieldTypes",
            "description": "Field Types for which to return field data",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "enriched",
                  "global",
                  "list",
                  "relationship-intelligence"
                ]
              }
            },
            "example": [
              "enriched",
              "global"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListEntryWithEntityPaged"
                },
                "examples": {
                  "company-list-enriched": {
                    "$ref": "#/components/examples/company-list-enriched"
                  },
                  "company-list-relationship-intelligence": {
                    "$ref": "#/components/examples/company-list-relationship-intelligence"
                  },
                  "company-list-global-and-list": {
                    "$ref": "#/components/examples/company-list-global-and-list"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/lists/{listId}/list-entries/search": {
      "post": {
        "x-operation-type": "retrieval-multiple-search",
        "x-stability-level": "beta",
        "description": "| ⚠️  This endpoint is currently in BETA |\n|--|\n\nSearch for List Entries on a List matching the given criteria.\n\nAccepts an optional combination of filters, sorts, and a search term. All fields in the request\nbody are optional. Omitting the body entirely is equivalent to `GET\n/v2/lists/{listId}/list-entries` with default pagination.\n\n\nRequires the \"Export data from Lists\" [permission](/pages/external-api-v2/permissions).\n\n\n### Field IDs\n\nField IDs used in `filters`, `sorts`, and `search.fieldIds` follow the formats described in\n[Working with Field Data](/pages/data-model/working-with-field-data). Use `GET\n/v2/lists/{listId}/fields?includes=filterability` to discover which fields are filterable and\nwhat operators each supports. Use `GET /v2/lists/{listId}/fields?includes=sortability` for\nsortable fields.\n\n### `attributeId`\n\nSome fields require an `attributeId` to specify which aspect to filter or sort on. The following\nrelationship intelligence fields all use `attributeId: \"date-of-activity\"`: `last-email`,\n`first-email`, `last-contact`, `last-event`, `first-event`, `next-event`.\n\nUse `GET /v2/lists/{listId}/fields?includes=filterability` to confirm which fields require an\n`attributeId`.\n\n### Search\n\nThe `search.term` is always matched against the entity's name and primary identifier: company name and primary domain (company lists), person first name, last name, and primary email address (person lists), or opportunity name (opportunity lists). Providing `search.fieldIds` extends the search to those additional fields; it does not restrict matching to only those fields. Fields with a `valueType` of `datetime` are not searchable and are silently ignored if included in `search.fieldIds`.\n\n### Limits\n\n- **Items per filter group** (filters or nested groups): 50\n\n- **Values per filter** (e.g. options in `is-any-of`): 100\n\n- **Sort criteria**: 5\n\n- **Search term minimum length**: 3 characters\n\n- **Results per page**: 100\n\n### Pagination\n\nUses cursor-based pagination.\n",
        "summary": "Search List Entries",
        "operationId": "v2_lists_listId_list-entries_search__POST",
        "tags": [
          "Lists"
        ],
        "parameters": [
          {
            "name": "listId",
            "description": "The ID of the List to search",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "fieldIds",
            "description": "Specific field IDs for which to return field data on each List Entry. Cannot be used together with `fieldTypes` — use one or the other. Use `GET /v2/lists/{listId}/fields` to discover available field IDs.",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "example": [
              "field-1234",
              "affinity-data-employees-current"
            ]
          },
          {
            "name": "fieldTypes",
            "description": "A category of fields for which to return field data on each List Entry. Cannot be used together with `fieldIds` — use one or the other.",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "enriched",
                  "global",
                  "list",
                  "relationship-intelligence"
                ]
              }
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page.",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "description": "Maximum number of List Entries to return per page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100
            }
          },
          {
            "name": "totalCount",
            "description": "When `true`, includes the total count of matching List Entries in the pagination response. Adds additional query cost; use only when needed.",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SearchCriteria"
              },
              "examples": {
                "filter-by-dropdown": {
                  "$ref": "#/components/examples/filter-by-dropdown-2"
                },
                "filter-and-sort": {
                  "$ref": "#/components/examples/filter-and-sort-2"
                },
                "grouped-filter": {
                  "$ref": "#/components/examples/grouped-filter-2"
                },
                "search-with-filter": {
                  "$ref": "#/components/examples/search-with-filter-2"
                },
                "filter-by-time-in-current-status": {
                  "$ref": "#/components/examples/filter-by-time-in-current-status"
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListEntryWithEntityPaged"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/lists/{listId}/list-entries/{listEntryId}": {
      "get": {
        "x-operation-type": "retrieval-single",
        "description": "Retrieve a single list entry.\nReturns basic information and field data, including list-specific field data.\n\nTo retrieve field data, you must use either the `fieldIds` or the `fieldTypes` parameter\nto specify the Fields for which you want data returned.\nThese Field IDs and Types can be found using the GET `/v2/lists/{listId}/fields` endpoint.\nWhen no `fieldIds` or `fieldTypes` are provided, the List Entry will be returned without any field data attached.\nTo supply multiple `fieldIds` or `fieldTypes` parameters, generate a query string that looks like this:\n`?fieldIds=field-1234&fieldIds=affinity-data-location` or `?fieldTypes=enriched&fieldTypes=global`.",
        "summary": "Get a single List Entry on a List",
        "operationId": "v2_lists_listId_list-entries_listEntryId__GET",
        "tags": [
          "Lists"
        ],
        "parameters": [
          {
            "name": "listId",
            "description": "List ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "listEntryId",
            "description": "List Entry ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "fieldIds",
            "description": "Field IDs for which to return field data",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "examples": [
                [
                  "field-1"
                ]
              ]
            },
            "example": [
              "field-1",
              "field-2"
            ]
          },
          {
            "name": "fieldTypes",
            "description": "Field Types for which to return field data",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "enriched",
                  "global",
                  "list",
                  "relationship-intelligence"
                ]
              }
            },
            "example": [
              "enriched",
              "global"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListEntryWithEntity"
                },
                "examples": {
                  "company-list-enriched": {
                    "$ref": "#/components/examples/company-list-enriched-2"
                  },
                  "company-list-relationship-intelligence": {
                    "$ref": "#/components/examples/company-list-relationship-intelligence-2"
                  },
                  "company-list-global-and-list": {
                    "$ref": "#/components/examples/company-list-global-and-list-2"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/lists/{listId}/list-entries/{listEntryId}/field-value-changes": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Paginate through the historical value changes on the fields of a List Entry.\n\n\nFor an overview of field value changes, including which fields support change tracking and how the action types behave, see [Field Value Changes](/pages/data-model/working-with-field-data#field-value-changes).\n\n\nEach change includes who made the change, when it occurred, the action that was performed, and\nthe value that was set. Changes are sorted by `changedAt` in ascending order (oldest first).\n\n\nYou can filter field value changes using the `filter` query parameter. The filter parameter is a string that\nyou can specify conditions based on the following properties.\n\n| **Property Name** | **Type** | **Description** | **Allowed Operators** | **Examples** |\n|---|---|---|---|---|\n| `field.id` | `text` |  | `=` | `field.id=field-1234` |\n| `changedAt` | `datetime` | When the change was made. | `>`, `<`, `>=`, `<=` | `changedAt>2026-01-01T00:00:00Z` |\n| `changer.id` | `int64` | The person who made the change. | `=` | `changer.id=1234` |\n| `actionType` | `text` | The type of change (`add`, `update`, `delete`) | `=` | `actionType=add` |\n",
        "summary": "Get Field Value Changes on a List Entry",
        "operationId": "v2_lists_listId_list-entries_listEntryId_field-value-changes__GET",
        "tags": [
          "Lists"
        ],
        "parameters": [
          {
            "name": "listId",
            "description": "List ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "listEntryId",
            "description": "List Entry ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "filter",
            "description": "Filter options",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "field.id=field-1234"
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "examples": [
                "ICAgICAgYmVmb3JlOjo6Nw"
              ]
            },
            "example": "ICAgICAgYmVmb3JlOjo6Nw"
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100,
              "examples": [
                10
              ]
            },
            "example": 10
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/fieldValueChanges.FieldValueChangePaged"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/lists/{listId}/list-entries/{listEntryId}/fields": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Paginate through all field values on a single list entry.\n\nAll fields will be included by default. The `ids` and `types` parameters can be used to filter the collection.",
        "summary": "Get field values on a single List Entry",
        "operationId": "v2_lists_listId_list-entries_listEntryId_fields__GET",
        "tags": [
          "Lists"
        ],
        "parameters": [
          {
            "name": "listId",
            "description": "List ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "listEntryId",
            "description": "List Entry ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "ids",
            "description": "Field IDs for which to return field data",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "examples": [
                [
                  "field-1"
                ]
              ]
            },
            "example": [
              "field-1",
              "field-2"
            ]
          },
          {
            "name": "types",
            "description": "Field Types for which to return field data",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "enriched",
                  "global",
                  "list",
                  "relationship-intelligence"
                ]
              }
            },
            "example": [
              "enriched",
              "global"
            ]
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string",
              "examples": [
                "ICAgICAgYmVmb3JlOjo6Nw"
              ]
            },
            "example": "ICAgICAgYmVmb3JlOjo6Nw"
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 20,
              "examples": [
                20
              ]
            },
            "example": 20
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FieldPaged"
                },
                "examples": {
                  "company-list-enriched": {
                    "$ref": "#/components/examples/company-list-enriched-3"
                  },
                  "company-list-relationship-intelligence": {
                    "$ref": "#/components/examples/company-list-relationship-intelligence-3"
                  },
                  "company-list-global-and-list": {
                    "$ref": "#/components/examples/company-list-global-and-list-3"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      },
      "patch": {
        "x-operation-type": "batch",
        "description": "Perform batch operations on a list entry's fields.\n\nCurrently the only operation at the endpoint is `update-fields`, which allows you to update multiple field values with a single request. This is equivalent to calling [the single field update](/api-reference/lists/update-a-single-field-value-on-a-list-entry) endpoint multiple times. You can update up to 100 fields per request.\n\nRequires the \"Export data from Lists\" [permission](/pages/external-api-v2/permissions).",
        "summary": "Perform batch operations on a list entry's fields",
        "operationId": "v2_lists_listId_list-entries_listEntryId_fields__PATCH",
        "tags": [
          "Lists"
        ],
        "parameters": [
          {
            "name": "listId",
            "description": "List ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "listEntryId",
            "description": "List Entry ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ListEntryBatchOperationRequest"
              },
              "examples": {
                "update-fields": {
                  "$ref": "#/components/examples/update-fields"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListEntryBatchOperationResponse"
                },
                "examples": {
                  "update-fields": {
                    "$ref": "#/components/examples/update-fields-2"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/lists/{listId}/list-entries/{listEntryId}/fields/{fieldId}": {
      "get": {
        "x-operation-type": "retrieval-single",
        "description": "Returns a single field value on a list entry.",
        "summary": "Get a single field value",
        "operationId": "v2_lists_listId_list-entries_listEntryId_fields_fieldId__GET",
        "tags": [
          "Lists"
        ],
        "parameters": [
          {
            "name": "listId",
            "description": "List ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "listEntryId",
            "description": "List Entry ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "fieldId",
            "description": "Field ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "examples": [
                "affinity-data-location",
                "field-1234"
              ]
            },
            "example": "field-1234"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Field"
                },
                "examples": {
                  "company": {
                    "$ref": "#/components/examples/company-3"
                  },
                  "company-multi": {
                    "$ref": "#/components/examples/company-multi"
                  },
                  "datetime": {
                    "$ref": "#/components/examples/datetime-3"
                  },
                  "dropdown": {
                    "$ref": "#/components/examples/dropdown-7"
                  },
                  "dropdown-multi": {
                    "$ref": "#/components/examples/dropdown-multi-3"
                  },
                  "filterable-text": {
                    "$ref": "#/components/examples/filterable-text-3"
                  },
                  "filterable-text-multi": {
                    "$ref": "#/components/examples/filterable-text-multi-3"
                  },
                  "formula-number": {
                    "$ref": "#/components/examples/formula-number-2"
                  },
                  "interaction": {
                    "$ref": "#/components/examples/interaction-2"
                  },
                  "location": {
                    "$ref": "#/components/examples/location-3"
                  },
                  "location-multi": {
                    "$ref": "#/components/examples/location-multi"
                  },
                  "number": {
                    "$ref": "#/components/examples/number-3"
                  },
                  "number-multi": {
                    "$ref": "#/components/examples/number-multi-3"
                  },
                  "person": {
                    "$ref": "#/components/examples/person-3"
                  },
                  "person-multi": {
                    "$ref": "#/components/examples/person-multi"
                  },
                  "ranked-dropdown": {
                    "$ref": "#/components/examples/ranked-dropdown-7"
                  },
                  "text": {
                    "$ref": "#/components/examples/text-3"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      },
      "post": {
        "x-operation-type": "update-single-sync",
        "description": "Update a single field value.\n    \nRequires the \"Export data from Lists\" [permission](/pages/external-api-v2/permissions).",
        "summary": "Update a single field value on a List Entry",
        "operationId": "v2_lists_listId_list-entries_listEntryId_fields_fieldId__POST",
        "tags": [
          "Lists"
        ],
        "parameters": [
          {
            "name": "listId",
            "description": "List ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "listEntryId",
            "description": "List Entry ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "fieldId",
            "description": "Field ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FieldUpdate"
              },
              "examples": {
                "company": {
                  "$ref": "#/components/examples/company-4"
                },
                "company-multi": {
                  "$ref": "#/components/examples/company-multi-3"
                },
                "datetime": {
                  "$ref": "#/components/examples/datetime-4"
                },
                "dropdown": {
                  "$ref": "#/components/examples/dropdown-8"
                },
                "dropdown-multi": {
                  "$ref": "#/components/examples/dropdown-multi-4"
                },
                "filterable-text": {
                  "$ref": "#/components/examples/filterable-text-4"
                },
                "filterable-text-multi": {
                  "$ref": "#/components/examples/filterable-text-multi-4"
                },
                "location": {
                  "$ref": "#/components/examples/location-4"
                },
                "location-multi": {
                  "$ref": "#/components/examples/location-multi-3"
                },
                "number": {
                  "$ref": "#/components/examples/number-4"
                },
                "number-multi": {
                  "$ref": "#/components/examples/number-multi-4"
                },
                "person": {
                  "$ref": "#/components/examples/person-4"
                },
                "person-multi": {
                  "$ref": "#/components/examples/person-multi-3"
                },
                "ranked-dropdown": {
                  "$ref": "#/components/examples/ranked-dropdown-8"
                },
                "text": {
                  "$ref": "#/components/examples/text-4"
                }
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content",
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/lists/{listId}/saved-views": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Paginate through all Saved Views you have access to view for a specific List.\nReturns basic information about each Saved View, including name, type, and creation date.",
        "summary": "Get metadata on Saved Views",
        "operationId": "v2_lists_listId_saved-views__GET",
        "tags": [
          "Lists"
        ],
        "parameters": [
          {
            "name": "listId",
            "description": "List ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string",
              "examples": [
                "ICAgICAgYmVmb3JlOjo6Nw"
              ]
            },
            "example": "ICAgICAgYmVmb3JlOjo6Nw"
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100,
              "examples": [
                100
              ]
            },
            "example": 100
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SavedViewPaged"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/lists/{listId}/saved-views/{viewId}": {
      "get": {
        "x-operation-type": "retrieval-single",
        "description": "Retrieve detailed information about a specific Saved View you have access to view.\nReturns Saved View configuration including name, type, and creation date.",
        "summary": "Get metadata on a single Saved View",
        "operationId": "v2_lists_listId_saved-views_viewId__GET",
        "tags": [
          "Lists"
        ],
        "parameters": [
          {
            "name": "listId",
            "description": "List ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "viewId",
            "description": "Saved view ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SavedView"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/lists/{listId}/saved-views/{viewId}/list-entries": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Paginate through the List Entries (AKA rows) on a given Saved View.\nUse this endpoint when you need to filter entities or only want **some**\nfield data to be returned: This endpoint respects the filters set on a Saved View\nvia web app, and only returns field data corresponding to the columns that have been\npulled into the Saved View via web app.\n\nThough this endpoint respects the Saved View's filters and column/Field selection,\nit does not yet preserve sort order. This endpoint also only supports **sheet-type\nSaved Views**, and not board- or dashboard-type Saved Views.\n\nSee the [Data Model](/pages/data-model/the-basics) section for more information about Saved Views.\n\nRequires the \"Export data from Lists\" [permission](/pages/external-api-v2/permissions).",
        "summary": "Get all List Entries on a Saved View",
        "operationId": "v2_lists_listId_saved-views_viewId_list-entries__GET",
        "tags": [
          "Lists"
        ],
        "parameters": [
          {
            "name": "listId",
            "description": "List ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "viewId",
            "description": "Saved view ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string",
              "examples": [
                "ICAgICAgYmVmb3JlOjo6Nw"
              ]
            },
            "example": "ICAgICAgYmVmb3JlOjo6Nw"
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100,
              "examples": [
                100
              ]
            },
            "example": 100
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListEntryWithEntityPaged"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/meetings": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Paginate through all Meetings in Affinity. Returns basic information about past and future meeting interactions\nand its attendees.\n\nYou can filter meetings using the `filter` query parameter. The filter parameter is a string that you can specify conditions based on the following properties.\n| **Property Name** | **Type** | **Allowed Operators** | **Examples** |\n|---|---|---|---|\n| `id` | `int64` | `=` | `id=1\\|id=2\\|id=3` |\n| `startTime` | `datetime` | `>`, `<`, `>=`, `<=` | `startTime>2025-01-01T01:00:00Z` |\n| `createdAt` | `datetime` | `>`, `<`, `>=`, `<=` | `createdAt<2025-01-01T01:00:00Z` |\n| `updatedAt` | `datetime` | `>`, `<`, `>=`, `<=` | `updatedAt>=2025-01-01T01:00:00Z` |\n",
        "summary": "Get metadata on all Meetings",
        "operationId": "v2_meetings__GET",
        "tags": [
          "Meetings"
        ],
        "parameters": [
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string",
              "examples": [
                "ICAgICAgYmVmb3JlOjo6Nw"
              ]
            },
            "example": "ICAgICAgYmVmb3JlOjo6Nw"
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100,
              "examples": [
                100
              ]
            },
            "example": 100
          },
          {
            "name": "filter",
            "description": "Filter options",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "example": "id=1234|id=5678|id=9012"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/interactions.MeetingPaged"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/notes": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Returns all notes, with the exception of replies.\nYou can filter notes using the `filter` query parameter. The filter parameter is a string that you can specify conditions based on the following properties.\n| **Property Name** | **Type** | **Allowed Operators** | **Examples** |\n|---|---|---|---|\n| `id` | `int32` | `=` | `id=1\\|id=2\\|id=3` |\n| `creator.id` | `int32` | `=` | `creator.id=1` |\n| `createdAt` | `datetime` | `>`, `<`, `>=`, `<=` | `createdAt<2025-02-04T10:48:24Z` |\n| `updatedAt` | `datetime` | `>`, `<`, `>=`, `<=` | `updatedAt>=2025-02-03T10:48:24Z` |\n",
        "summary": "Get all Notes",
        "operationId": "v2_notes__GET",
        "tags": [
          "Notes"
        ],
        "parameters": [
          {
            "name": "totalCount",
            "description": "Include total count of the collection in the pagination response",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "maximum": 100,
              "default": 20
            }
          },
          {
            "name": "filter",
            "description": "Filter options",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "example": "id=1234|id=5678|id=9012"
          },
          {
            "$ref": "#/components/parameters/notes.includes"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/notes.NotesPaged"
                },
                "examples": {
                  "ai-notetaker": {
                    "$ref": "#/components/examples/ai-notetaker"
                  },
                  "entities": {
                    "$ref": "#/components/examples/entities"
                  },
                  "interaction": {
                    "$ref": "#/components/examples/interaction-3"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      },
      "post": {
        "x-operation-type": "creation-single-sync",
        "description": "Create a new note. By default it is authored by the calling user; set `creator` to attribute\nit to a different internal person in your organization. Notes can be attached directly to\nentities (`Persons`, `Companies`, `Opportunities`), anchored to an interaction (`meeting`,\n`call`, or `chat message`), or written as a reply to an existing note.\n\nThe `type` field selects the shape of the request body. AI Notetaker note types\n(`ai-notetaker`, `ai-notetaker-reply`) are system-generated and cannot be created through\nthis endpoint.\n\n| **`type`** | **Description** | **Required** | **Optional** |\n|------------|-----------------|--------------|--------------|\n| `entities` | A note attached directly to one or more entities. | `content`, and at least one of `persons` / `companies` / `opportunities`. | Any combination of `persons` / `companies` / `opportunities`. |\n| `interaction` | A note anchored to a meeting, call, or chat message. | `content`, `interaction.{type,id}`. | `persons` / `companies` / `opportunities`, added as direct associations on top of the interaction's own participants. |\n| `user-reply` | A reply to an existing root note. Replies have no entity associations or interaction attachment of their own. | `content`, `parent.id` (must reference an existing root note the caller can access). | None |\n\nBy default a note is authored by the calling user. To attribute a note to a different member\nof your organization, set the optional `creator` field to reference that person by id. The\nreferenced person must be an active internal person in your organization.\n\nBy default a note's creation time is the time of the request. To backfill a historical note,\nset the optional `createdAt` field to the time the note should be recorded as created.\n\n**Body content.** `content.html` is rendered HTML that must use only the allowed tags;\nsubmitting restricted tags, attributes, URL schemes, or mention spans will cause the request to\nfail. See the request examples below for representative payloads.\n",
        "summary": "Create a Note",
        "operationId": "v2_notes__POST",
        "tags": [
          "Notes"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/notes.NoteToBeCreated"
              },
              "examples": {
                "entities": {
                  "$ref": "#/components/examples/entities-2"
                },
                "interaction": {
                  "$ref": "#/components/examples/interaction-4"
                },
                "user-reply": {
                  "$ref": "#/components/examples/user-reply"
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/notes.Note"
                },
                "examples": {
                  "entities": {
                    "$ref": "#/components/examples/entities-3"
                  },
                  "interaction": {
                    "$ref": "#/components/examples/interaction-5"
                  },
                  "user-reply": {
                    "$ref": "#/components/examples/user-reply-2"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/notes/search": {
      "post": {
        "x-operation-type": "retrieval-multiple-search",
        "description": "Search notes by keyword. The scope of the search is controlled by the request body:\n\n- Provide `noteIds` to limit the search to specific notes.\n- Provide `companyId` to limit the search to notes associated with a specific company.\n- Omit both to search across your entire account.\n\n`noteIds` and `companyId` are mutually exclusive.\n\nReturns up to `limit` notes ordered by relevance. Prompts with no strong matches may\nstill return low-relevance results.\n\nEach result contains a matched note and a single representative excerpt (a matching\npassage from that note). Even if a note contains multiple matching passages, it appears\nexactly once in the response with one excerpt.\n",
        "summary": "Search Notes by Keyword",
        "operationId": "v2_notes_search__POST",
        "tags": [
          "Notes"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/notes.KeywordSearchCriteria"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/notes.KeywordSearchResult"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/notes/{noteId}": {
      "get": {
        "x-operation-type": "retrieval-single",
        "description": "Get a Note with a given id",
        "summary": "Get a single Note",
        "operationId": "v2_notes_noteId__GET",
        "tags": [
          "Notes"
        ],
        "parameters": [
          {
            "name": "noteId",
            "description": "The id of the Note",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 2147483647
            }
          },
          {
            "$ref": "#/components/parameters/note.includes"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/notes.Note"
                },
                "examples": {
                  "ai-notetaker": {
                    "$ref": "#/components/examples/ai-notetaker-2"
                  },
                  "ai-notetaker-reply": {
                    "$ref": "#/components/examples/ai-notetaker-reply"
                  },
                  "entities": {
                    "$ref": "#/components/examples/entities-4"
                  },
                  "interaction": {
                    "$ref": "#/components/examples/interaction-6"
                  },
                  "user-reply": {
                    "$ref": "#/components/examples/user-reply-3"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      },
      "post": {
        "x-operation-type": "update-single-sync",
        "description": "Make an update to an existing note's body content or its entity associations.\n\nYou can only update notes you have write access to. You can update any type of note including\nAI Notetaker notes (`ai-notetaker`, `ai-notetaker-reply`), but a note's type itself cannot be\nchanged.\n\nAll body properties are optional: only the properties supplied are updated, and other\nproperties are left unchanged. For each of `persons`, `companies`, and `opportunities`, you\nmay:\n\n- omit the field to leave existing associations unchanged\n- send an empty array (`[]`) to clear all associations of that kind\n- send a non-empty array to replace the existing set with the supplied list.\n\nReply notes (`user-reply`, `ai-notetaker-reply`) have no entity associations, so only\n`content` can be updated for replies.\n\nUpdating `content` is subject to the same HTML restrictions as creation; submitting restricted\nHTML will cause the request to fail. See the request examples below.\n\nThe content of notes that contain @mentions cannot be updated through this endpoint;\nattempting to do so returns `400 Bad Request`.\n\nReturns `204 No Content` on success, regardless of whether any properties actually changed.\n",
        "summary": "Update a single Note",
        "operationId": "v2_notes_noteId__POST",
        "tags": [
          "Notes"
        ],
        "parameters": [
          {
            "name": "noteId",
            "description": "The id of the Note to update",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 2147483647
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/notes.NoteToBeUpdated"
              },
              "examples": {
                "content-only": {
                  "$ref": "#/components/examples/content-only"
                },
                "replace-associations": {
                  "$ref": "#/components/examples/replace-associations"
                },
                "clear-associations": {
                  "$ref": "#/components/examples/clear-associations"
                },
                "reply-content-only": {
                  "$ref": "#/components/examples/reply-content-only"
                }
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content",
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      },
      "delete": {
        "x-operation-type": "deletion-single-sync",
        "description": "Delete a note. You can only delete notes you created. Deleting a root note also deletes its\nreplies (both user replies and AI Notetaker replies); deleting a reply removes only that reply.\n",
        "summary": "Delete a single Note",
        "operationId": "v2_notes_noteId__DELETE",
        "tags": [
          "Notes"
        ],
        "parameters": [
          {
            "name": "noteId",
            "description": "The id of the Note to delete",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 2147483647
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/notes/{noteId}/attached-companies": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Returns directly attached companies for a given Note.",
        "summary": "Get Companies attached to a Note",
        "operationId": "v2_notes_noteId_attached-companies__GET",
        "tags": [
          "Notes"
        ],
        "parameters": [
          {
            "name": "noteId",
            "description": "The id of the Note to get attached Companies",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 2147483647
            }
          },
          {
            "name": "totalCount",
            "description": "Include total count of the collection in the pagination response",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "maximum": 100,
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyDataPaged"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/notes/{noteId}/attached-opportunities": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Returns directly attached opportunities for a given Note.",
        "summary": "Get Opportunities attached to a Note",
        "operationId": "v2_notes_noteId_attached-opportunities__GET",
        "tags": [
          "Notes"
        ],
        "parameters": [
          {
            "name": "noteId",
            "description": "The id of the Note to get attached Opportunities",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 2147483647
            }
          },
          {
            "name": "totalCount",
            "description": "Include total count of the collection in the pagination response",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "maximum": 100,
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OpportunityPaged"
                },
                "examples": {
                  "success": {
                    "$ref": "#/components/examples/success-2"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/notes/{noteId}/attached-persons": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Returns directly attached persons for a given Note.",
        "summary": "Get Persons attached to a Note",
        "operationId": "v2_notes_noteId_attached-persons__GET",
        "tags": [
          "Notes"
        ],
        "parameters": [
          {
            "name": "noteId",
            "description": "The id of the Note to get attached Persons",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 2147483647
            }
          },
          {
            "name": "totalCount",
            "description": "Include total count of the collection in the pagination response",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "maximum": 100,
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PersonDataPaged"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/notes/{noteId}/replies": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "This endpoint returns reply notes for a given note id.\nYou can filter replies using the `filter` query parameter. The filter parameter is a string that you can specify conditions based on the following properties.\n| **Property Name** | **Type** | **Allowed Operators** | **Examples** |\n|---|---|---|---|\n| `creator.id` | `int32` | `=` | `creator.id=1` |\n| `createdAt` | `datetime` | `>`, `<`, `>=`, `<=` | `createdAt<2025-02-04T10:48:24Z` |\n| `updatedAt` | `datetime` | `>`, `<`, `>=`, `<=` | `updatedAt>=2025-02-03T10:48:24Z` |\n",
        "summary": "Get replies for a Note",
        "operationId": "v2_notes_noteId_replies__GET",
        "tags": [
          "Notes"
        ],
        "parameters": [
          {
            "name": "noteId",
            "description": "Note ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 2147483647
            }
          },
          {
            "name": "filter",
            "description": "Filter options",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "maximum": 100,
              "default": 20
            }
          },
          {
            "name": "totalCount",
            "description": "Include total count of the collection in the pagination response",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/notes.RepliesPaged"
                },
                "examples": {
                  "user-reply": {
                    "$ref": "#/components/examples/user-reply-4"
                  },
                  "ai-notetaker-reply": {
                    "$ref": "#/components/examples/ai-notetaker-reply-2"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/opportunities": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Paginate through Opportunities in Affinity.\nReturns basic information but **not** field data on each Opportunity.\n\nTo access field data on Opportunities, use the `/lists/{list_id}/list-entries`\nor the `/v2/lists/{list_id}/saved-views/{view_id}/list-entries` GET endpoint.\n\nRequires the \"Export data from Lists\" [permission](/pages/external-api-v2/permissions).",
        "summary": "Get all Opportunities",
        "operationId": "v2_opportunities__GET",
        "tags": [
          "Opportunities"
        ],
        "parameters": [
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string",
              "examples": [
                "ICAgICAgYmVmb3JlOjo6Nw"
              ]
            },
            "example": "ICAgICAgYmVmb3JlOjo6Nw"
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100,
              "examples": [
                100
              ]
            },
            "example": 100
          },
          {
            "name": "ids",
            "description": "Opportunity IDs",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int64",
                "minimum": 1,
                "maximum": 9007199254740991
              }
            },
            "example": [
              1,
              2
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OpportunityPaged"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/opportunities/{opportunityId}": {
      "get": {
        "x-operation-type": "retrieval-single",
        "description": "Returns basic information but **not** field data on the requested Opportunity.\n\nTo access field data on Opportunities, use the `/lists/{list_id}/list-entries`\nor the `/v2/lists/{list_id}/saved-views/{view_id}/list-entries` GET endpoint.",
        "summary": "Get a single Opportunity",
        "operationId": "v2_opportunities_opportunityId__GET",
        "tags": [
          "Opportunities"
        ],
        "parameters": [
          {
            "name": "opportunityId",
            "description": "Opportunity ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Opportunity"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/opportunities/{opportunityId}/notes": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Returns Notes for a given Opportunity which includes directly attached notes and those attached to persons on this Opportunity.\n\nYou can filter notes using the `filter` query parameter. The filter parameter is a string that you can specify conditions based on the following properties.\n| **Property Name** | **Type** | **Allowed Operators** | **Examples** |\n|---|---|---|---|\n| `creator.id` | `int32` | `=` | `creator.id=1` |\n| `createdAt` | `datetime` | `>`, `<`, `>=`, `<=` | `createdAt<2025-02-04T10:48:24Z` |\n| `updatedAt` | `datetime` | `>`, `<`, `>=`, `<=` | `updatedAt>=2025-02-03T10:48:24Z` |\n",
        "summary": "Get Notes for an Opportunity",
        "operationId": "v2_opportunities_opportunityId_notes__GET",
        "tags": [
          "Opportunities"
        ],
        "parameters": [
          {
            "name": "opportunityId",
            "description": "Opportunity ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "filter",
            "description": "Filter options",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "maximum": 100,
              "default": 20
            }
          },
          {
            "name": "totalCount",
            "description": "Include total count of the collection in the pagination response",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/notes.NotesPaged"
                },
                "examples": {
                  "entities": {
                    "$ref": "#/components/examples/entities-5"
                  },
                  "interaction": {
                    "$ref": "#/components/examples/interaction-7"
                  },
                  "ai-notetaker": {
                    "$ref": "#/components/examples/ai-notetaker-3"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/person-merges": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Retrieve paginated person merges for the organization.\n\n\nReturns all person merges initiated by users in your organization, including their current\nstatus, the persons involved, and merge details. You can filter person merges using the `filter` query parameter. The filter parameter is a string that you can specify conditions based on the following properties:\n\n\n| **Property Name** | **Type** | **Allowed Operators** | **Examples** |\n|---|---|---|---|\n| `status` | `enum` | `=` | `status=in-progress`, `status=success`, `status=failed` |\n| `taskId` | `text` | `=` | `taskId=789e0123-e45b-67c8-d901-234567890123` |\n\n\nPerson merges are returned in reverse chronological order (most recent first).\n\n\nRequires the \"Manage duplicates\" [permission](/pages/external-api-v2/permissions) and\norganization admin role.\n",
        "summary": "Get All Person Merges",
        "operationId": "v2_person-merges__GET",
        "tags": [
          "Person Merges"
        ],
        "parameters": [
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "example": "ICAgICAgYmVmb3JlOjo6Nw"
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            },
            "example": 25
          },
          {
            "name": "filter",
            "description": "Filter person merges using Affinity Filtering Language",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "example": "status=failed | taskId=789e0123-e45b-67c8-d901-234567890123"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PersonMergeStatePaged"
                },
                "examples": {
                  "merges-list": {
                    "$ref": "#/components/examples/merges-list-2"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      },
      "post": {
        "x-operation-type": "creation-single-async",
        "description": "Initiate a person merge to combine a duplicate person profile into a primary person profile.\n\nThis is an asynchronous process that will merge all data from the duplicate person into the primary person. Once the merge is initiated, you can track its progress using the returned task URL.\n\nRequires the \"Manage duplicates\" [permission](/pages/external-api-v2/permissions) and organization admin role.",
        "summary": "Initiate Person Merge",
        "operationId": "v2_person-merges__POST",
        "tags": [
          "Person Merges"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PersonMergeRequest"
              },
              "examples": {
                "merge-persons": {
                  "$ref": "#/components/examples/merge-persons"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PersonMergeResponse"
                },
                "examples": {
                  "merge-initiated": {
                    "$ref": "#/components/examples/merge-initiated-2"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/person-merges/{mergeId}": {
      "get": {
        "x-operation-type": "retrieval-single",
        "description": "Retrieve the status and details of a specific person merge.\n\nReturns information about the person merge including its current status, the persons involved, timestamps, and any error information if the merge failed.\n\nThe `mergeId` can be obtained from the response of the [Get All Person Merges](/api-reference/person-merges/get-all-person-merges) endpoint, or by filtering person merges by task ID using `/v2/person-merges?filter=taskId={taskId}` after initiating a merge.\n\nRequires the \"Manage duplicates\" [permission](/pages/external-api-v2/permissions) and organization admin role.",
        "summary": "Get Person Merge",
        "operationId": "v2_person-merges_mergeId__GET",
        "tags": [
          "Person Merges"
        ],
        "parameters": [
          {
            "name": "mergeId",
            "description": "Person merge ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991,
              "examples": [
                12345
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PersonMergeState"
                },
                "examples": {
                  "completed-merge": {
                    "$ref": "#/components/examples/succeeded-merge-2"
                  },
                  "failed-merge": {
                    "$ref": "#/components/examples/failed-merge-2"
                  },
                  "in-progress-merge": {
                    "$ref": "#/components/examples/in-progress-merge-2"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/persons": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Paginate through Persons in Affinity.\nReturns basic information and non-list-specific field data on each Person.\n\nTo retrieve field data, you must use either the `fieldIds` or the `fieldTypes` parameter\nto specify the Fields for which you want data returned.\nThese Field IDs and Types can be found using the GET `/v2/persons/fields` endpoint.\nWhen no `fieldIds` or `fieldTypes` are provided, Persons will be returned without any field data attached.\nTo supply multiple `fieldIds` or `fieldTypes` parameters, generate a query string that looks like this:\n`?fieldIds=field-1234&fieldIds=affinity-data-location` or `?fieldTypes=enriched&fieldTypes=global`.\n\nRequires the \"Export All People directory\" [permission](/pages/external-api-v2/permissions).",
        "summary": "Get all Persons",
        "operationId": "v2_persons__GET",
        "tags": [
          "Persons"
        ],
        "parameters": [
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string",
              "examples": [
                "ICAgICAgYmVmb3JlOjo6Nw"
              ]
            },
            "example": "ICAgICAgYmVmb3JlOjo6Nw"
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100,
              "examples": [
                100
              ]
            },
            "example": 100
          },
          {
            "name": "ids",
            "description": "People IDs",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int64",
                "minimum": 1,
                "maximum": 9007199254740991
              }
            },
            "example": [
              1,
              2
            ]
          },
          {
            "name": "fieldIds",
            "description": "Field IDs for which to return field data",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "examples": [
                [
                  "field-1"
                ]
              ]
            },
            "example": [
              "field-1",
              "field-2"
            ]
          },
          {
            "name": "fieldTypes",
            "description": "Field Types for which to return field data",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "enriched",
                  "global",
                  "relationship-intelligence"
                ]
              }
            },
            "example": [
              "enriched",
              "global"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PersonPaged"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/persons/fields": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Returns metadata on non-list-specific Person Fields.\n\nUse the returned Field IDs to request field data from the GET `/v2/persons` and GET `/v2/persons/{id}` endpoints.\n\nYou can filter Fields using the `filter` query parameter. The filter parameter is a string that you can specify conditions based on the following properties.\n| **Property Name** | **Type** | **Allowed Operators** | **Examples** |\n|---|---|---|---|\n| `name` | `text` | `=`, `=~` | `name=\"Location\"`, `name=~loc` |\n\nUse the `includes` query parameter to add optional metadata to each Field in the response. Pass `includes` more than once to request multiple values.\n| **Value** | **Adds to each Field** |\n|---|---|\n| `filterability` | How the field can be used in filter expressions on GET `/v2/persons` and POST `/v2/persons/search` |\n| `sortability` | How the field can be used in sort expressions on those endpoints |\n\nExample: `GET /v2/persons/fields?includes=filterability&includes=sortability`\n",
        "summary": "Get metadata on Person Fields",
        "operationId": "v2_persons_fields__GET",
        "tags": [
          "Persons"
        ],
        "parameters": [
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100,
              "examples": [
                100
              ]
            },
            "example": 100
          },
          {
            "name": "filter",
            "description": "Filter options",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "example": "name=~location"
          },
          {
            "$ref": "#/components/parameters/fields.includes"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FieldMetadataPaged"
                },
                "examples": {
                  "default": {
                    "$ref": "#/components/examples/default-2"
                  },
                  "filterability-sortability": {
                    "$ref": "#/components/examples/filterability-sortability-2"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/persons/fields/{fieldId}/dropdown-options": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Returns the dropdown options for a specific dropdown or ranked-dropdown field on a Person.\n\nUse the returned dropdown option IDs when writing dropdown field values via the field update\nendpoints.\n",
        "summary": "Get dropdown options for a Person Field",
        "operationId": "v2_persons_fields_fieldId_dropdown-options__GET",
        "tags": [
          "Persons"
        ],
        "parameters": [
          {
            "name": "fieldId",
            "description": "Field ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "example": "field-1234",
              "examples": [
                "field-1234"
              ]
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string",
              "example": "ICAgICAgYmVmb3JlOjo6Nw",
              "examples": [
                "ICAgICAgYmVmb3JlOjo6Nw"
              ]
            }
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DropdownOptionPaged"
                },
                "examples": {
                  "dropdown-options": {
                    "$ref": "#/components/examples/dropdown-options-2"
                  },
                  "dropdown-options-ranked": {
                    "$ref": "#/components/examples/dropdown-options-ranked-2"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/persons/search": {
      "post": {
        "x-operation-type": "retrieval-multiple-search",
        "x-stability-level": "beta",
        "description": "| ⚠️  This endpoint is currently in BETA |\n|--|\n\nSearch for Persons matching the given criteria.\n\nAccepts an optional combination of filters, sorts, and a search term. Omitting the body is equivalent to `GET /v2/persons` with default pagination.\n\nRequires the \"Export All People directory\" [permission](/pages/external-api-v2/permissions).\n\n### Field IDs\n\nField IDs used in `filters`, `sorts`, and `search.fieldIds` follow the formats described in [Working with Field Data](/pages/data-model/working-with-field-data). Use `GET /v2/persons/fields` to discover the available fields and their `valueType`.\n\n### `attributeId`\n\nSome fields require an `attributeId` to specify which aspect to filter or sort on. The following relationship intelligence fields all use `attributeId: \"date-of-activity\"`: `last-email`, `first-email`, `last-contact`, `last-event`, `first-event`, `next-event`.\n\nUse `GET /v2/persons/fields` to confirm which fields require an `attributeId`.\n\n### Search\n\nThe `search.term` is always matched against the person's first name, last name, and primary email address. Providing `search.fieldIds` extends the search to those additional fields; it does not restrict matching to only those fields. Fields with a `valueType` of `datetime` are not searchable and are silently ignored if included in `search.fieldIds`.\n\n### Limits\n\n- **Items per filter group** (filters or nested groups): 50\n\n- **Values per filter** (e.g. options in `is-any-of`): 100\n\n- **Sort criteria**: 5\n\n- **Search term minimum length**: 3 characters\n\n- **Results per page**: 100\n\n### Pagination\n\nUses cursor-based pagination.\n",
        "summary": "Search Persons",
        "operationId": "v2_persons_search__POST",
        "tags": [
          "Persons"
        ],
        "parameters": [
          {
            "name": "fieldIds",
            "description": "Specific field IDs for which to return field data on each Person. Cannot be used together with `fieldTypes`; use one or the other. Use `GET /v2/persons/fields` to discover available field IDs.",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "example": [
              "field-1234",
              "affinity-data-location"
            ]
          },
          {
            "name": "fieldTypes",
            "description": "A category of fields for which to return field data on each Person. Cannot be used together with `fieldIds`; use one or the other.",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "enriched",
                  "global",
                  "relationship-intelligence"
                ]
              }
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page.",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "description": "Maximum number of Persons to return per page.",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100
            }
          },
          {
            "name": "totalCount",
            "description": "When `true`, includes the total count of matching Persons in the pagination response. Adds additional query cost; use only when needed.",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SearchCriteria"
              },
              "examples": {
                "filter-by-dropdown": {
                  "$ref": "#/components/examples/filter-by-dropdown-3"
                },
                "filter-and-sort": {
                  "$ref": "#/components/examples/filter-and-sort-3"
                },
                "grouped-filter": {
                  "$ref": "#/components/examples/grouped-filter-3"
                },
                "search-with-filter": {
                  "$ref": "#/components/examples/search-with-filter-3"
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PersonPaged"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/persons/{personId}": {
      "get": {
        "x-operation-type": "retrieval-single",
        "description": "Returns basic information and non-list-specific field data on the requested Person.\n\nTo retrieve field data, you must use either the `fieldIds` or the `fieldTypes` parameter\nto specify the Fields for which you want data returned.\nThese Field IDs and Types can be found using the GET `/v2/persons/fields` endpoint.\nWhen no `fieldIds` or `fieldTypes` are provided, Persons will be returned without any field data attached.\nTo supply multiple `fieldIds` or `fieldTypes` parameters, generate a query string that looks like this:\n`?fieldIds=field-1234&fieldIds=affinity-data-location` or `?fieldTypes=enriched&fieldTypes=global`.",
        "summary": "Get a single Person",
        "operationId": "v2_persons_personId__GET",
        "tags": [
          "Persons"
        ],
        "parameters": [
          {
            "name": "personId",
            "description": "Person ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "fieldIds",
            "description": "Field IDs for which to return field data",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "examples": [
                [
                  "field-1"
                ]
              ]
            },
            "example": [
              "field-1",
              "field-2"
            ]
          },
          {
            "name": "fieldTypes",
            "description": "Field Types for which to return field data",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "enriched",
                  "global",
                  "relationship-intelligence"
                ]
              }
            },
            "example": [
              "enriched",
              "global"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Person"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/persons/{personId}/fields": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "x-stability-level": "beta",
        "description": "| ⚠️  This endpoint is currently in BETA |\n|--|\n\nPaginate through field values on a single person.\n\n\nEnriched, global, and relationship-intelligence fields will be included by default. The `ids` and `types` parameters can be used to filter\nthe collection. These parameters are mutually exclusive.\n\nList fields are not returned by this endpoint. To retrieve or update list field values, use the\n[list entry fields](/api-reference/lists/get-field-values-on-a-single-list-entry) endpoints.\n",
        "summary": "Get field values on a single Person",
        "operationId": "v2_persons_personId_fields__GET",
        "tags": [
          "Persons"
        ],
        "parameters": [
          {
            "name": "personId",
            "description": "Person ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "ids",
            "description": "Field IDs for which to return field data",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "examples": [
                [
                  "field-1"
                ]
              ]
            },
            "example": [
              "field-1",
              "field-2"
            ]
          },
          {
            "name": "types",
            "description": "Field Types for which to return field data",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "enriched",
                  "global",
                  "relationship-intelligence"
                ]
              }
            },
            "example": [
              "enriched",
              "global"
            ]
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string",
              "examples": [
                "ICAgICAgYmVmb3JlOjo6Nw"
              ]
            },
            "example": "ICAgICAgYmVmb3JlOjo6Nw"
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 20,
              "examples": [
                20
              ]
            },
            "example": 20
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FieldPaged"
                },
                "examples": {
                  "person-enriched": {
                    "$ref": "#/components/examples/person-enriched"
                  },
                  "person-relationship-intelligence": {
                    "$ref": "#/components/examples/person-relationship-intelligence"
                  },
                  "person-global": {
                    "$ref": "#/components/examples/person-global"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      },
      "patch": {
        "x-operation-type": "batch",
        "description": "Perform batch operations on a person's fields.\n\n\nCurrently the only operation at the endpoint is `update-fields`, which allows you to update\nmultiple field values with a single request. This is equivalent to calling [the single field\nupdate](/api-reference/persons/update-a-single-field-value-on-a-person) endpoint multiple times. You can\nupdate up to 100 fields per request.\n",
        "summary": "Perform batch operations on a person's fields",
        "operationId": "v2_persons_personId_fields__PATCH",
        "tags": [
          "Persons"
        ],
        "parameters": [
          {
            "name": "personId",
            "description": "Person ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PersonBatchOperationRequest"
              },
              "examples": {
                "update-fields": {
                  "$ref": "#/components/examples/update-fields"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PersonBatchOperationResponse"
                },
                "examples": {
                  "update-fields": {
                    "$ref": "#/components/examples/update-fields-2"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/persons/{personId}/fields/{fieldId}": {
      "get": {
        "x-operation-type": "retrieval-single",
        "x-stability-level": "beta",
        "description": "| ⚠️  This endpoint is currently in BETA |\n|--|\n\nRetrieve a single field on a person. Returns basic information and the field value.\n",
        "summary": "Get a single field on a Person",
        "operationId": "v2_persons_personId_fields_fieldId__GET",
        "tags": [
          "Persons"
        ],
        "parameters": [
          {
            "name": "personId",
            "description": "Person ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "fieldId",
            "description": "Field ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "examples": [
                "affinity-data-location",
                "field-1234"
              ]
            },
            "example": "field-1234"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Field"
                },
                "examples": {
                  "company": {
                    "$ref": "#/components/examples/company"
                  },
                  "company-multi": {
                    "$ref": "#/components/examples/company-multi"
                  },
                  "datetime": {
                    "$ref": "#/components/examples/datetime"
                  },
                  "dropdown": {
                    "$ref": "#/components/examples/dropdown"
                  },
                  "dropdown-multi": {
                    "$ref": "#/components/examples/dropdown-multi"
                  },
                  "filterable-text": {
                    "$ref": "#/components/examples/filterable-text"
                  },
                  "filterable-text-multi": {
                    "$ref": "#/components/examples/filterable-text-multi"
                  },
                  "formula-number": {
                    "$ref": "#/components/examples/formula-number"
                  },
                  "interaction": {
                    "$ref": "#/components/examples/interaction"
                  },
                  "location": {
                    "$ref": "#/components/examples/location"
                  },
                  "location-multi": {
                    "$ref": "#/components/examples/location-multi"
                  },
                  "number": {
                    "$ref": "#/components/examples/number"
                  },
                  "number-multi": {
                    "$ref": "#/components/examples/number-multi"
                  },
                  "person": {
                    "$ref": "#/components/examples/person"
                  },
                  "person-multi": {
                    "$ref": "#/components/examples/person-multi"
                  },
                  "ranked-dropdown": {
                    "$ref": "#/components/examples/ranked-dropdown"
                  },
                  "text": {
                    "$ref": "#/components/examples/text"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      },
      "post": {
        "x-operation-type": "update-single-sync",
        "description": "Update a single field value on a person.\n",
        "summary": "Update a single field value on a Person",
        "operationId": "v2_persons_personId_fields_fieldId__POST",
        "tags": [
          "Persons"
        ],
        "parameters": [
          {
            "name": "personId",
            "description": "Person ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "fieldId",
            "description": "Field ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "examples": [
                "affinity-data-location",
                "field-1234"
              ]
            },
            "example": "field-1234"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FieldUpdate"
              },
              "examples": {
                "company": {
                  "$ref": "#/components/examples/company-2"
                },
                "company-multi": {
                  "$ref": "#/components/examples/company-multi-2"
                },
                "datetime": {
                  "$ref": "#/components/examples/datetime-2"
                },
                "dropdown": {
                  "$ref": "#/components/examples/dropdown-2"
                },
                "dropdown-multi": {
                  "$ref": "#/components/examples/dropdown-multi-2"
                },
                "filterable-text": {
                  "$ref": "#/components/examples/filterable-text-2"
                },
                "filterable-text-multi": {
                  "$ref": "#/components/examples/filterable-text-multi-2"
                },
                "location": {
                  "$ref": "#/components/examples/location-2"
                },
                "location-multi": {
                  "$ref": "#/components/examples/location-multi-2"
                },
                "number": {
                  "$ref": "#/components/examples/number-2"
                },
                "number-multi": {
                  "$ref": "#/components/examples/number-multi-2"
                },
                "person": {
                  "$ref": "#/components/examples/person-2"
                },
                "person-multi": {
                  "$ref": "#/components/examples/person-multi-2"
                },
                "ranked-dropdown": {
                  "$ref": "#/components/examples/ranked-dropdown-2"
                },
                "text": {
                  "$ref": "#/components/examples/text-2"
                }
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content",
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/persons/{personId}/list-entries": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Paginate through the List Entries (AKA rows) for the given Person across all Lists.\nEach List Entry includes field data for the Person, including list-specific field data.\nEach List Entry also includes metadata about its creation, i.e., when it was added to the List and by whom.",
        "summary": "Get a Person's List Entries",
        "operationId": "v2_persons_personId_list-entries__GET",
        "tags": [
          "Persons"
        ],
        "parameters": [
          {
            "name": "personId",
            "description": "Persons ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string",
              "examples": [
                "ICAgICAgYmVmb3JlOjo6Nw"
              ]
            },
            "example": "ICAgICAgYmVmb3JlOjo6Nw"
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100,
              "examples": [
                100
              ]
            },
            "example": 100
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListEntryPaged"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/persons/{personId}/lists": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Paginate through all Lists where the given Person appears as an entry and that you have access to view.\nReturns basic List information for each List that contains this Person.",
        "summary": "Get a Person's Lists",
        "operationId": "v2_persons_personId_lists__GET",
        "tags": [
          "Persons"
        ],
        "parameters": [
          {
            "name": "personId",
            "description": "Persons ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string",
              "examples": [
                "ICAgICAgYmVmb3JlOjo6Nw"
              ]
            },
            "example": "ICAgICAgYmVmb3JlOjo6Nw"
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100,
              "examples": [
                100
              ]
            },
            "example": 100
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListPaged"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/persons/{personId}/notes": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Returns notes for a given person id which includes directly attached notes, notes on meetings this person attended, and notes where this person is mentioned.\n\nYou can filter notes using the `filter` query parameter. The filter parameter is a string that you can specify conditions based on the following properties.\n| **Property Name** | **Type** | **Allowed Operators** | **Examples** |\n|---|---|---|---|\n| `creator.id` | `int32` | `=` | `creator.id=1` |\n| `createdAt` | `datetime` | `>`, `<`, `>=`, `<=` | `createdAt<2025-02-04T10:48:24Z` |\n| `updatedAt` | `datetime` | `>`, `<`, `>=`, `<=` | `updatedAt>=2025-02-03T10:48:24Z` |\n",
        "summary": "Get Notes for a Person",
        "operationId": "v2_persons_personId_notes__GET",
        "tags": [
          "Persons"
        ],
        "parameters": [
          {
            "name": "personId",
            "description": "Persons ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "filter",
            "description": "Filter options",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "maximum": 100,
              "default": 20
            }
          },
          {
            "name": "totalCount",
            "description": "Include total count of the collection in the pagination response",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/notes.NotesPaged"
                },
                "examples": {
                  "entities": {
                    "$ref": "#/components/examples/entities-6"
                  },
                  "interaction": {
                    "$ref": "#/components/examples/interaction-8"
                  },
                  "ai-notetaker": {
                    "$ref": "#/components/examples/ai-notetaker-4"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/persons/{personId}/relationships": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Returns the relationships for a given person, including the interaction score that measures the\nstrength of each relationship based on communication patterns such as emails, meetings, and\nother interactions.\n\nEach relationship includes two persons (person1 and person2) who have a connection.\n\n## Interaction score\n\nThe `interactionScore` is a value between `0.0` and `1.0` that reflects how frequently the\ntwo persons interact across email, calendar events, and chat messages. The more interactions,\nthe higher the score. Recent interactions are weighted slightly higher than older ones. As\nrough guidance, scores at or above `0.7` typically indicate two persons that communicate\nregularly, scores between `0.4` and `0.7` indicate occasional communication, and scores below\n`0.4` indicate only sporadic communication.\n\n## LinkedIn connections\n\nThe collection also includes relationships based on a LinkedIn connection between the given\nperson and their internal team member counterpart.\n\nWhenever a LinkedIn connection exists between the two persons in a relationship, `linkedIn` is\npopulated with the date the connection was made.`linkedIn` is `null` when no\nLinkedIn connection exists between the two persons. Note that LinkedIn-based relationships \nwhich do not have any interaction data will have an `interactionScore` of `0`.\n\n## Filters\n\nYou can filter relationships using the `filter` query parameter. The filter parameter is a string that you can specify conditions based on the following properties.\n| **Property Name** | **Type** | **Description** | **Allowed Operators** | **Examples** |\n|---|---|---|---|---|\n| `interactionScore` | `double` | Strength of the relationship, between `0.0` and `1.0`. Higher means stronger. | `>`, `<`, `>=`, `<=` | `interactionScore>=0.5` |\n\n## Sorting\n\nYou can sort relationships using the `orderBy` query parameter. `interactionScore` is the only\nsortable property.\n",
        "summary": "Get Relationships for a Person",
        "operationId": "v2_persons_personId_relationships__GET",
        "tags": [
          "Persons"
        ],
        "parameters": [
          {
            "name": "personId",
            "description": "Person ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            }
          },
          {
            "name": "filter",
            "description": "Filter options",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "orderBy",
            "description": "Properties to sort by. Defaults to `-interactionScore`. Prefix with `-` for descending order.",
            "in": "query",
            "style": "form",
            "explode": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "interactionScore",
                  "-interactionScore"
                ]
              },
              "default": [
                "-interactionScore"
              ]
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 20
            }
          },
          {
            "name": "totalCount",
            "description": "Include total count of the collection in the pagination response",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RelationshipsPaged"
                },
                "examples": {
                  "relationships": {
                    "$ref": "#/components/examples/relationships-2"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/reminders": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Returns a page of Reminders visible to the caller.\n\nYou can filter reminders using the `filter` query parameter. The filter parameter is a string\nthat you can specify conditions based on the following properties.\n| **Property Name** | **Type** | **Allowed Operators** | **Examples** |\n|---|---|---|---|\n| `id` | `int64` | `=` | `id=1\\|id=2\\|id=3` |\n| `type` | `enum` | `=` | `type=one-time`, `type=recurring` |\n| `status` | `enum` | `=` | `status=active`, `status=overdue`, `status=completed` |\n| `resetTrigger` | `enum` | `=` | `resetTrigger=interaction`, `resetTrigger=email`, `resetTrigger=event` |\n| `dueDate` | `datetime` | `>`, `<`, `>=`, `<=` | `dueDate>=2026-01-01T00:00:00Z` |\n| `completedAt` | `datetime` | `>`, `<`, `>=`, `<=` | `completedAt=2026-01-01T00:00:00Z` |\n| `createdAt` | `datetime` | `>`, `<`, `>=`, `<=` | `createdAt>=2026-01-01T00:00:00Z` |\n| `updatedAt` | `datetime` | `>`, `<`, `>=`, `<=` | `updatedAt>=2026-01-01T00:00:00Z` |\n| `owner.id` | `int64` | `=`, `!=` | `owner.id=1\\|owner.id=2`, `owner.id!=3` |\n| `creator.id` | `int64` | `=` | `creator.id=1` |\n| `completer.id` | `int64` | `=` | `completer.id=1` |\n| `company.id` | `int64` | `=` | `company.id=42` |\n| `person.id` | `int64` | `=` | `person.id=42` |\n| `opportunity.id` | `int64` | `=` | `opportunity.id=42` |\n\nResults are ordered by `dueDate` ascending (soonest-due first).\n",
        "summary": "Get all Reminders",
        "operationId": "v2_reminders__GET",
        "tags": [
          "Reminders"
        ],
        "parameters": [
          {
            "name": "totalCount",
            "description": "Include total count of the collection in the pagination response",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "examples": [
                "ICAgICAgYmVmb3JlOjo6Nw"
              ]
            }
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100,
              "examples": [
                100
              ]
            }
          },
          {
            "name": "filter",
            "description": "Filter options",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "status=active&owner.id=1"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/reminders.ReminderPaged"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      },
      "post": {
        "x-operation-type": "creation-single-sync",
        "description": "Creates a new Reminder. Exactly one of `company`, `person`, or `opportunity` must be provided.\n\nThe `creator` of the new reminder is the user associated with the API key.\n",
        "summary": "Create a Reminder",
        "operationId": "v2_reminders__POST",
        "tags": [
          "Reminders"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/reminders.ReminderToBeCreated"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/reminders.Reminder"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/semantic-search": {
      "post": {
        "x-operation-type": "retrieval-multiple-search",
        "description": "Perform an AI-powered semantic search. Use the `entityType` field in the request body to specify which entity type to search. Currently only supports companies.\n\nThe `prompt` field accepts natural language describing the companies to find. Supported query dimensions include:\n\n- Industry or sector\n  - Example: `climate tech companies in our pipeline`\n- Descriptive technology or business concepts\n  - Example: `biotech companies working on extracellular vesicles`\n- Funding information: investment stage, funding date, amount raised, and year founded\n  - Example: `Series A companies that raised more than $10M`\n- Employee metrics: headcount, hiring rate, and departure rate\n  - Example: `companies with more than 100 employees`\n- Interaction history\n  - Example: `companies our firm emailed recently`\n- Relationship strength\n  - Example: `companies where we have strong connections`\n- Relative time references\n  - Example: `AI companies founded in the past 3 years`\n- Headquarters location: city, state, country, or region\n  - Example: `fintech startups in San Francisco`\n- Investor name\n  - Example: `companies backed by Sequoia Capital`\n\nThese dimensions can be combined in a single prompt, for example `climate tech companies in San Francisco that raised a Series A in the past year`.\n\nResults can be sorted by including the desired sort in the prompt itself, for example `Series B companies with the most funding`. Only one sortable attribute is supported per request.\n\nUse the `listIds` field to scope results to companies on specific lists, and combine it with `prompt` to search semantically within those lists. Retrieve list IDs from `GET /v2/lists`.\n\nThe phrases `I`, `we`, and `our firm` always refer to firm-wide data: interaction history and relationship strength cannot be filtered to a specific team member. The phrases `in our pipeline` and `in our network` match companies your firm has interacted with or added to Affinity in general. They do not search for membership in a list literally named \"Pipeline\" or similar. To search a specific named list, use `listIds`.\n\nThe following are not supported:\n\n- Third-party enrichment data such as Crunchbase, PitchBook, or Dealroom.\n- Company valuation and revenue metrics.\n- Lookup by similarity to a named company, for example `companies like OpenAI`.\n- Notes, email body content, or file attachments.\n- Custom fields.\n- Computed or formula-based sorts, such as a ratio between two fields.",
        "summary": "Semantic Search",
        "operationId": "v2_semantic-search__POST",
        "tags": [
          "Semantic Search"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SemanticSearchCriteria"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SemanticSearchResult"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/tasks/company-merges": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Retrieve paginated company merge tasks for the organization.\n\n\nReturns all merge tasks initiated by users in your organization, including their current status,\nthe companies involved, and task details.\n\n\nYou can filter tasks using the `filter` query parameter. The filter parameter is a string that you can specify conditions based on the following properties:\n\n| **Property Name** | **Type** | **Allowed Operators** | **Examples** |\n|---|---|---|---|\n| `status` | `enum` | `=` | `status=in-progress`, `status=success`, `status=failed` |\n\n\nTasks are returned in reverse chronological order (most recent first).\n\n\nRequires the \"Manage duplicates\" [permission](/pages/external-api-v2/permissions) and\norganization admin role.\n",
        "summary": "Get All Company Merge Tasks",
        "operationId": "v2_tasks_company-merges__GET",
        "tags": [
          "Company Merges"
        ],
        "parameters": [
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string",
              "examples": [
                "ICAgICAgYmVmb3JlOjo6Nw"
              ]
            },
            "example": "ICAgICAgYmVmb3JlOjo6Nw"
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100
            },
            "example": 100
          },
          {
            "name": "filter",
            "description": "Filter tasks using Affinity Filtering Language",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "example": "status=failed"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyMergeTaskPaged"
                },
                "examples": {
                  "tasks-list": {
                    "$ref": "#/components/examples/tasks-list"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/tasks/company-merges/{taskId}": {
      "get": {
        "x-operation-type": "retrieval-single",
        "description": "Retrieve the status and details of a specific task for company merges.\n\n\nReturns information about the company merges for a specific task including its overall status,\nnumber of merges in-progress, completed, and failed.\n\n\nDetailed information about individual merges for this task can be found by querying:\n`/v2/company-merges?filter=taskId={taskId}` See\n[Company Merges](/api-reference/company-merges/get-all-company-merges) for more details.\n\n\nTask statuses:\n\n- `in-progress`: The merge task is currently being processed.\n- `success`: The merge task completed successfully.\n- `failed`: The merge task failed.\n\n\nRequires the \"Manage duplicates\" [permission](/pages/external-api-v2/permissions) and\norganization admin role.\n",
        "summary": "Get Company Merge Task",
        "operationId": "v2_tasks_company-merges_taskId__GET",
        "tags": [
          "Company Merges"
        ],
        "parameters": [
          {
            "name": "taskId",
            "description": "Company merge task ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "examples": [
                "123e4567-e89b-12d3-a456-426614174000"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyMergeTask"
                },
                "examples": {
                  "task-in-progress": {
                    "$ref": "#/components/examples/task-in-progress"
                  },
                  "task-success": {
                    "$ref": "#/components/examples/task-success"
                  },
                  "task-failed": {
                    "$ref": "#/components/examples/task-failed"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/tasks/person-merges": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Retrieve paginated person merge tasks for the organization.\n\n\nReturns all merge tasks initiated by users in your organization, including their current status,\nthe persons involved, and task details.\n\n\nYou can filter tasks using the `filter` query parameter. The filter parameter is a string that you can specify conditions based on the following properties:\n\n| **Property Name** | **Type** | **Allowed Operators** | **Examples** |\n|---|---|---|---|\n| `status` | `enum` | `=` | `status=in-progress`, `status=success`, `status=failed` |\n\n\nTasks are returned in reverse chronological order (most recent first).\n\n\nRequires the \"Manage duplicates\" [permission](/pages/external-api-v2/permissions) and\norganization admin role.\n",
        "summary": "Get All Person Merge Tasks",
        "operationId": "v2_tasks_person-merges__GET",
        "tags": [
          "Person Merges"
        ],
        "parameters": [
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string",
              "examples": [
                "ICAgICAgYmVmb3JlOjo6Nw"
              ]
            },
            "example": "ICAgICAgYmVmb3JlOjo6Nw"
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 25,
              "examples": [
                25
              ]
            },
            "example": 25
          },
          {
            "name": "filter",
            "description": "Filter tasks using Affinity Filtering Language",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "example": "status=failed"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PersonMergeTaskPaged"
                },
                "examples": {
                  "tasks-list": {
                    "$ref": "#/components/examples/tasks-list-2"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/tasks/person-merges/{taskId}": {
      "get": {
        "x-operation-type": "retrieval-single",
        "description": "Retrieve the status and details of a specific task for person merges.\n\n\nReturns information about the person merges for a specific task including its overall status,\nnumber of merges in-progress, completed, and failed.\n\n\nDetailed information about individual merges for this task can be found by querying:\n`/v2/person-merges?filter=taskId={taskId}` See\n[Person Merges](/api-reference/person-merges/get-all-person-merges) for more details.\n\n\nTask statuses:\n\n- `in-progress`: The merge task is currently being processed.\n- `success`: The merge task completed successfully.\n- `failed`: The merge task failed.\n\n\nRequires the \"Manage duplicates\" [permission](/pages/external-api-v2/permissions) and\norganization admin role.\n",
        "summary": "Get Person Merge Task",
        "operationId": "v2_tasks_person-merges_taskId__GET",
        "tags": [
          "Person Merges"
        ],
        "parameters": [
          {
            "name": "taskId",
            "description": "Person merge task ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid",
              "examples": [
                "123e4567-e89b-12d3-a456-426614174000"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PersonMergeTask"
                },
                "examples": {
                  "task-in-progress": {
                    "$ref": "#/components/examples/task-in-progress"
                  },
                  "task-success": {
                    "$ref": "#/components/examples/task-success-2"
                  },
                  "task-failed": {
                    "$ref": "#/components/examples/task-failed"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/transcripts": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Paginate through all transcripts and return basic metadata only. Use the single transcript endpoint to fetch the entire transcript data. \nWill only return transcripts that the current authenticated user has permission to see.\n\nYou can filter transcripts using the `filter` query parameter. The filter parameter is a string that you can specify conditions based on the following properties.\n| **Property Name** | **Type** | **Allowed Operators** | **Examples** |\n|---|---|---|---|\n| `id` | `int32` | `=` | `id=1` |\n| `createdAt` | `datetime` | `>`, `<`, `>=`, `<=` | `createdAt<2025-02-04T10:48:24Z` |\n",
        "summary": "Get all Transcripts",
        "operationId": "v2_transcripts__GET",
        "tags": [
          "Transcripts"
        ],
        "parameters": [
          {
            "name": "totalCount",
            "description": "Include total count of the collection in the pagination response",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "maximum": 100,
              "default": 20
            }
          },
          {
            "name": "filter",
            "description": "Filter options",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/transcripts.TranscriptPaged"
                },
                "examples": {
                  "success": {
                    "$ref": "#/components/examples/success-3"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/transcripts/{transcriptId}": {
      "get": {
        "x-operation-type": "retrieval-single",
        "description": "Get a transcript with a given id with the first 100 fragments of the transcript. Use the /fragments endpoint to fetch all fragments of the transcript.\n",
        "summary": "Get a single Transcript",
        "operationId": "v2_transcripts_transcriptId__GET",
        "tags": [
          "Transcripts"
        ],
        "parameters": [
          {
            "name": "transcriptId",
            "description": "The id of the Transcript",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 2147483647
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/transcripts.Transcript"
                },
                "examples": {
                  "success": {
                    "$ref": "#/components/examples/success-4"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/transcripts/{transcriptId}/fragments": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "description": "Get fragments of a transcript given a transcript id.\n",
        "summary": "Get fragments of a transcript",
        "operationId": "v2_transcripts_transcriptId_fragments__GET",
        "tags": [
          "Transcripts"
        ],
        "parameters": [
          {
            "name": "transcriptId",
            "description": "The id of the Transcript",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 2147483647
            }
          },
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "maximum": 100,
              "default": 20
            }
          },
          {
            "name": "totalCount",
            "description": "Include total count of the collection in the pagination response",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/transcripts.FragmentPaged"
                },
                "examples": {
                  "success": {
                    "$ref": "#/components/examples/success-5"
                  }
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/users": {
      "get": {
        "x-operation-type": "retrieval-multiple",
        "x-stability-level": "beta",
        "description": "| ⚠️  This endpoint is currently in BETA |\n|--|\n\nPaginate through internal Users in your organization.\n\nReturns information about each User, including name, primary email address, all email\naddresses, photo URL, account status, and account role.\n\nThe `emailAddresses` and `role` properties are only returned to callers with the \"Manage\nUsers\" [permission](/pages/external-api-v2/permissions).\n\nUse the optional `term` parameter to filter by first name, last name, or primary email address.\n\nYou can also filter users using the `filter` query parameter. The filter parameter is a string\nthat you can specify conditions based on the following properties.\n| **Property Name** | **Type** | **Allowed Operators** | **Examples** |\n|---|---|---|---|\n| `id` | `int32` | `=` | `id=1\\|id=2\\|id=3` |\n| `status` | `enum` | `=` | `status=active` |\n",
        "summary": "Get all Users",
        "operationId": "v2_users__GET",
        "tags": [
          "Users"
        ],
        "parameters": [
          {
            "name": "cursor",
            "description": "Cursor for the next or previous page",
            "in": "query",
            "schema": {
              "type": "string",
              "examples": [
                "ICAgICAgYmVmb3JlOjo6Nw"
              ]
            },
            "example": "ICAgICAgYmVmb3JlOjo6Nw"
          },
          {
            "name": "limit",
            "description": "Number of items to include in the page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 100,
              "default": 100,
              "examples": [
                100
              ]
            },
            "example": 100
          },
          {
            "name": "term",
            "description": "Case-insensitive search across first name, last name, and primary email address. Returns users matching the term as a substring.",
            "in": "query",
            "schema": {
              "type": "string",
              "examples": [
                "jane"
              ]
            },
            "example": "jane"
          },
          {
            "name": "filter",
            "description": "Filter options",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "example": "id=1|id=2|id=3"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDataPaged"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    },
    "/v2/users/{userId}": {
      "get": {
        "x-operation-type": "retrieval-single",
        "x-stability-level": "beta",
        "description": "| ⚠️  This endpoint is currently in BETA |\n|--|\n\nReturns information about a single internal User, including name, primary email\naddress, all email addresses, photo URL, account status, and account role.\n\nThe `userId` path parameter is the same identifier as the User's corresponding Person ID —\nevery internal User has a matching Person record, and they share the same numeric ID. You can\nuse a Person ID returned from any Persons endpoint here, and vice versa.\n\nThe `emailAddresses` and `role` properties are only returned to callers with the \"Manage\nUsers\" [permission](/pages/external-api-v2/permissions).\n",
        "summary": "Get a single User",
        "operationId": "v2_users_userId__GET",
        "tags": [
          "Users"
        ],
        "parameters": [
          {
            "name": "userId",
            "description": "User ID",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "minimum": 1,
              "maximum": 2147483647
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserData"
                }
              }
            },
            "headers": {
              "x-ratelimit-limit-user": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User"
              },
              "x-ratelimit-limit-user-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
              },
              "x-ratelimit-limit-user-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
              },
              "x-ratelimit-limit-org": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
              },
              "x-ratelimit-limit-org-remaining": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
              },
              "x-ratelimit-limit-org-reset": {
                "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "404": {
            "$ref": "#/components/responses/404"
          },
          "default": {
            "$ref": "#/components/responses/default"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer"
      }
    },
    "headers": {
      "X-Ratelimit-Limit-User": {
        "description": "Number of requests allowed per minute for the user",
        "schema": {
          "type": "integer"
        }
      },
      "X-Ratelimit-Limit-User-Remaining": {
        "description": "Number of requests remaining for the user",
        "schema": {
          "type": "integer"
        }
      },
      "X-Ratelimit-Limit-User-Reset": {
        "description": "Time in seconds before the limit resets for the user",
        "schema": {
          "type": "integer"
        }
      },
      "X-Ratelimit-Limit-Org": {
        "description": "Number of requests allowed per month for the account",
        "schema": {
          "type": "integer"
        }
      },
      "X-Ratelimit-Limit-Org-Remaining": {
        "description": "Number of requests remaining for the account",
        "schema": {
          "type": "integer"
        }
      },
      "X-Ratelimit-Limit-Org-Reset": {
        "description": "Time in seconds before the limit resets for the account",
        "schema": {
          "type": "integer"
        }
      }
    },
    "schemas": {
      "AuthenticationError": {
        "title": "AuthenticationError",
        "type": "object",
        "properties": {
          "code": {
            "description": "Error code",
            "type": "string",
            "const": "authentication",
            "example": "authentication"
          },
          "message": {
            "description": "Error message",
            "type": "string"
          }
        },
        "required": [
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "AuthorizationError": {
        "title": "AuthorizationError",
        "type": "object",
        "properties": {
          "code": {
            "description": "Error code",
            "type": "string",
            "const": "authorization",
            "example": "authorization"
          },
          "message": {
            "description": "Error message",
            "type": "string"
          }
        },
        "required": [
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "BadRequestError": {
        "title": "BadRequestError",
        "type": "object",
        "properties": {
          "code": {
            "description": "Error code",
            "type": "string",
            "const": "bad-request",
            "example": "bad-request"
          },
          "message": {
            "description": "Error message",
            "type": "string"
          }
        },
        "required": [
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "ConflictError": {
        "title": "ConflictError",
        "type": "object",
        "properties": {
          "code": {
            "description": "Error code",
            "type": "string",
            "const": "conflict",
            "example": "conflict"
          },
          "message": {
            "description": "Error message",
            "type": "string"
          }
        },
        "required": [
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "MethodNotAllowedError": {
        "title": "MethodNotAllowedError",
        "type": "object",
        "properties": {
          "code": {
            "description": "Error code",
            "type": "string",
            "const": "method-not-allowed",
            "example": "method-not-allowed"
          },
          "message": {
            "description": "Error message",
            "type": "string"
          }
        },
        "required": [
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "NotAcceptableError": {
        "title": "NotAcceptableError",
        "type": "object",
        "properties": {
          "code": {
            "description": "Error code",
            "type": "string",
            "const": "not-acceptable",
            "example": "not-acceptable"
          },
          "message": {
            "description": "Error message",
            "type": "string"
          }
        },
        "required": [
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "NotFoundError": {
        "title": "NotFoundError",
        "type": "object",
        "properties": {
          "code": {
            "description": "Error code",
            "type": "string",
            "const": "not-found",
            "example": "not-found"
          },
          "message": {
            "description": "Error message",
            "type": "string"
          }
        },
        "required": [
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "NotImplementedError": {
        "title": "NotImplementedError",
        "type": "object",
        "properties": {
          "code": {
            "description": "Error code",
            "type": "string",
            "const": "not-implemented",
            "example": "not-implemented"
          },
          "message": {
            "description": "Error message",
            "type": "string"
          }
        },
        "required": [
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "RateLimitError": {
        "title": "RateLimitError",
        "type": "object",
        "properties": {
          "code": {
            "description": "Error code",
            "type": "string",
            "const": "rate-limit",
            "example": "rate-limit"
          },
          "message": {
            "description": "Error message",
            "type": "string"
          }
        },
        "required": [
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "ServerError": {
        "title": "ServerError",
        "type": "object",
        "properties": {
          "code": {
            "description": "Error code",
            "type": "string",
            "const": "server",
            "example": "server"
          },
          "message": {
            "description": "Error message",
            "type": "string"
          }
        },
        "required": [
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "TimeoutError": {
        "title": "TimeoutError",
        "type": "object",
        "properties": {
          "code": {
            "description": "Error code",
            "type": "string",
            "const": "timeout",
            "example": "timeout"
          },
          "message": {
            "description": "Error message",
            "type": "string"
          }
        },
        "required": [
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "UnprocessableEntityError": {
        "title": "UnprocessableEntityError",
        "type": "object",
        "properties": {
          "code": {
            "description": "Error code",
            "type": "string",
            "const": "unprocessable-entity",
            "example": "unprocessable-entity"
          },
          "message": {
            "description": "Error message",
            "type": "string"
          }
        },
        "required": [
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "UnsupportedMediaTypeError": {
        "title": "UnsupportedMediaTypeError",
        "type": "object",
        "properties": {
          "code": {
            "description": "Error code",
            "type": "string",
            "const": "unsupported-media-type",
            "example": "unsupported-media-type"
          },
          "message": {
            "description": "Error message",
            "type": "string"
          }
        },
        "required": [
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "ValidationError": {
        "title": "ValidationError",
        "type": "object",
        "properties": {
          "code": {
            "description": "Error code",
            "type": "string",
            "const": "validation",
            "example": "validation"
          },
          "message": {
            "description": "Error message",
            "type": "string"
          },
          "param": {
            "description": "Param the error refers to",
            "type": "string",
            "example": "limit"
          }
        },
        "required": [
          "code",
          "message",
          "param"
        ],
        "additionalProperties": false
      },
      "Error": {
        "title": "Error",
        "oneOf": [
          {
            "$ref": "#/components/schemas/AuthenticationError"
          },
          {
            "$ref": "#/components/schemas/AuthorizationError"
          },
          {
            "$ref": "#/components/schemas/BadRequestError"
          },
          {
            "$ref": "#/components/schemas/ConflictError"
          },
          {
            "$ref": "#/components/schemas/MethodNotAllowedError"
          },
          {
            "$ref": "#/components/schemas/NotAcceptableError"
          },
          {
            "$ref": "#/components/schemas/NotFoundError"
          },
          {
            "$ref": "#/components/schemas/NotImplementedError"
          },
          {
            "$ref": "#/components/schemas/RateLimitError"
          },
          {
            "$ref": "#/components/schemas/ServerError"
          },
          {
            "$ref": "#/components/schemas/TimeoutError"
          },
          {
            "$ref": "#/components/schemas/UnprocessableEntityError"
          },
          {
            "$ref": "#/components/schemas/UnsupportedMediaTypeError"
          },
          {
            "$ref": "#/components/schemas/ValidationError"
          }
        ],
        "discriminator": {
          "propertyName": "code",
          "mapping": {
            "authentication": "#/components/schemas/AuthenticationError",
            "authorization": "#/components/schemas/AuthorizationError",
            "bad-request": "#/components/schemas/BadRequestError",
            "conflict": "#/components/schemas/ConflictError",
            "method-not-allowed": "#/components/schemas/MethodNotAllowedError",
            "not-acceptable": "#/components/schemas/NotAcceptableError",
            "not-found": "#/components/schemas/NotFoundError",
            "not-implemented": "#/components/schemas/NotImplementedError",
            "rate-limit": "#/components/schemas/RateLimitError",
            "server": "#/components/schemas/ServerError",
            "timeout": "#/components/schemas/TimeoutError",
            "unprocessable-entity": "#/components/schemas/UnprocessableEntityError",
            "unsupported-media-type": "#/components/schemas/UnsupportedMediaTypeError",
            "validation": "#/components/schemas/ValidationError"
          }
        }
      },
      "Errors": {
        "title": "Errors",
        "type": "object",
        "properties": {
          "errors": {
            "description": "Errors",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Error"
            }
          }
        },
        "required": [
          "errors"
        ],
        "additionalProperties": false
      },
      "Tenant": {
        "title": "Tenant",
        "type": "object",
        "properties": {
          "id": {
            "description": "The tenant's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "name": {
            "description": "The name of the tenant",
            "type": "string",
            "example": "Contoso Ltd."
          },
          "subdomain": {
            "description": "The tenant's subdomain under affinity.co",
            "type": "string",
            "format": "hostname",
            "example": "contoso"
          }
        },
        "required": [
          "id",
          "name",
          "subdomain"
        ],
        "additionalProperties": false
      },
      "User": {
        "title": "User",
        "type": "object",
        "properties": {
          "id": {
            "description": "The user's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "firstName": {
            "description": "The user's first name",
            "type": "string",
            "example": "John"
          },
          "lastName": {
            "description": "The user's last name",
            "type": [
              "string",
              "null"
            ],
            "example": "Smith"
          },
          "emailAddress": {
            "description": "The user's email address",
            "type": "string",
            "format": "email",
            "example": "john.smith@contoso.com"
          }
        },
        "required": [
          "emailAddress",
          "firstName",
          "id",
          "lastName"
        ],
        "additionalProperties": false
      },
      "Grant": {
        "title": "Grant",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of grant used to authenticate",
            "type": "string",
            "enum": [
              "api-key",
              "access-token"
            ],
            "example": "api-key"
          },
          "scopes": {
            "description": "The scopes available to the current grant",
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": [
              "api"
            ]
          },
          "createdAt": {
            "description": "When the grant was created",
            "type": "string",
            "format": "date-time",
            "example": "2023-01-01T00:00:00Z"
          }
        },
        "required": [
          "createdAt",
          "scopes",
          "type"
        ],
        "additionalProperties": false
      },
      "WhoAmI": {
        "title": "WhoAmI",
        "description": "WhoAmI model",
        "type": "object",
        "properties": {
          "tenant": {
            "$ref": "#/components/schemas/Tenant"
          },
          "user": {
            "$ref": "#/components/schemas/User"
          },
          "grant": {
            "$ref": "#/components/schemas/Grant"
          }
        },
        "required": [
          "grant",
          "tenant",
          "user"
        ],
        "additionalProperties": false
      },
      "NotFoundErrors": {
        "title": "NotFoundErrors",
        "description": "NotFoundErrors model",
        "type": "object",
        "properties": {
          "errors": {
            "description": "NotFoundError errors",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/NotFoundError"
            }
          }
        },
        "required": [
          "errors"
        ],
        "additionalProperties": false
      },
      "PersonData": {
        "title": "PersonData",
        "type": "object",
        "properties": {
          "id": {
            "description": "The persons's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "firstName": {
            "description": "The person's first name",
            "type": [
              "string",
              "null"
            ],
            "example": "Jane"
          },
          "lastName": {
            "description": "The person's last name",
            "type": [
              "string",
              "null"
            ],
            "example": "Doe"
          },
          "primaryEmailAddress": {
            "description": "The person's primary email address",
            "type": [
              "string",
              "null"
            ],
            "format": "email",
            "example": "jane.smith@northpointvc.com"
          },
          "type": {
            "description": "The person's type. `internal` - people who are users within your Affinity instance. `collaborator` - individuals outside of your company who have read-only access to specified Affinity list views and stay updated on your firm's activities. `external` - people who are not internal nor collaborators.",
            "type": "string",
            "enum": [
              "internal",
              "collaborator",
              "external"
            ],
            "example": "internal"
          }
        },
        "required": [
          "firstName",
          "id",
          "lastName",
          "primaryEmailAddress",
          "type"
        ],
        "additionalProperties": false
      },
      "Attendee": {
        "title": "Attendee",
        "type": "object",
        "properties": {
          "emailAddress": {
            "description": "The email addresses of the attendee",
            "type": [
              "string",
              "null"
            ],
            "format": "email",
            "example": "john.smith@contoso.com"
          },
          "person": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/PersonData"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "emailAddress",
          "person"
        ],
        "additionalProperties": false
      },
      "AttendeesPreview": {
        "title": "AttendeesPreview",
        "type": "object",
        "properties": {
          "data": {
            "description": "A preview of Attendees",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Attendee"
            },
            "maxItems": 100
          },
          "totalCount": {
            "description": "The total count of Attendees",
            "type": "integer",
            "format": "int64",
            "minimum": 0,
            "maximum": 9007199254740991,
            "example": 200
          }
        },
        "required": [
          "data",
          "totalCount"
        ],
        "additionalProperties": false
      },
      "interactions.Call": {
        "title": "interactions.Call",
        "type": "object",
        "properties": {
          "id": {
            "description": "The call's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "loggingType": {
            "description": "Indicates how the interaction was added to Affinity: either manually by a user ('manual') or automatically through Affinity's capture process ('automated'). Currently, calls can only be logged as 'manual'.",
            "type": "string",
            "const": "manual",
            "example": "manual"
          },
          "title": {
            "description": "The call's title",
            "type": [
              "string",
              "null"
            ],
            "example": "Example title"
          },
          "startTime": {
            "description": "The timestamp of when the call starts",
            "type": "string",
            "format": "date-time",
            "example": "2023-01-01T00:00:00Z"
          },
          "endTime": {
            "description": "The timestamp of when the call ends",
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "example": "2023-01-01T00:00:00Z"
          },
          "allDay": {
            "description": "Whether the call is all day",
            "type": "boolean",
            "example": false
          },
          "creator": {
            "description": "The person who created the call",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Attendee"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "description": "The timestamp of when the call was created",
            "type": "string",
            "format": "date-time",
            "example": "2023-01-01T00:00:00Z"
          },
          "updatedAt": {
            "description": "The timestamp of when the call was updated",
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "example": "2023-01-01T00:00:00Z"
          },
          "attendeesPreview": {
            "description": "A preview of the attendees in the call",
            "$ref": "#/components/schemas/AttendeesPreview"
          }
        },
        "required": [
          "id",
          "loggingType",
          "title",
          "startTime",
          "endTime",
          "allDay",
          "creator",
          "createdAt",
          "updatedAt",
          "attendeesPreview"
        ],
        "additionalProperties": false
      },
      "Pagination": {
        "title": "Pagination",
        "type": "object",
        "properties": {
          "prevUrl": {
            "description": "URL for the previous page",
            "type": [
              "string",
              "null"
            ],
            "format": "uri",
            "example": "https://api.affinity.co/v2/foo?cursor=ICAgICAgYmVmb3JlOjo6Nw"
          },
          "nextUrl": {
            "description": "URL for the next page",
            "type": [
              "string",
              "null"
            ],
            "format": "uri",
            "example": "https://api.affinity.co/v2/foo?cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "interactions.CallPaged": {
        "title": "interactions.CallPaged",
        "description": "CallPaged model",
        "type": "object",
        "properties": {
          "data": {
            "description": "A page of Call results",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/interactions.Call"
            },
            "maxItems": 100
          },
          "pagination": {
            "$ref": "#/components/schemas/Pagination"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "additionalProperties": false
      },
      "PersonDataPreview": {
        "title": "PersonDataPreview",
        "type": "object",
        "properties": {
          "data": {
            "description": "A preview of persons",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PersonData"
            },
            "maxItems": 100
          },
          "totalCount": {
            "description": "The total count of persons",
            "type": "integer",
            "format": "int64",
            "minimum": 0,
            "maximum": 9007199254740991,
            "example": 200
          }
        },
        "required": [
          "data",
          "totalCount"
        ],
        "additionalProperties": false
      },
      "interactions.ChatMessage": {
        "title": "interactions.ChatMessage",
        "type": "object",
        "properties": {
          "id": {
            "description": "The chat message's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "sentAt": {
            "description": "The timestamp of when the chat message was sent",
            "type": "string",
            "format": "date-time",
            "example": "2023-01-01T00:00:00Z"
          },
          "loggingType": {
            "description": "Indicates how the interaction was added to Affinity: either manually by a user ('manual') or automatically through Affinity's capture process ('automated'). Currently, chat messages can only be logged as 'manual'.",
            "type": "string",
            "const": "manual",
            "example": "manual"
          },
          "direction": {
            "description": "The direction of the chat message",
            "type": "string",
            "enum": [
              "sent",
              "received"
            ],
            "example": "sent"
          },
          "creator": {
            "description": "The creator of the chat message",
            "$ref": "#/components/schemas/PersonData"
          },
          "createdAt": {
            "description": "The timestamp of when the chat message was created",
            "type": "string",
            "format": "date-time",
            "example": "2022-01-01T00:00:00Z"
          },
          "updatedAt": {
            "description": "The timestamp of when the chat message was updated",
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "example": "2023-01-01T00:00:00Z"
          },
          "participantsPreview": {
            "description": "A preview of the participants who are in the chat message",
            "$ref": "#/components/schemas/PersonDataPreview"
          }
        },
        "required": [
          "id",
          "sentAt",
          "loggingType",
          "direction",
          "creator",
          "createdAt",
          "updatedAt",
          "participantsPreview"
        ],
        "additionalProperties": false
      },
      "interactions.ChatMessagePaged": {
        "title": "interactions.ChatMessagePaged",
        "description": "ChatMessagePaged model",
        "type": "object",
        "properties": {
          "data": {
            "description": "A page of ChatMessage results",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/interactions.ChatMessage"
            },
            "maxItems": 100
          },
          "pagination": {
            "$ref": "#/components/schemas/Pagination"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "additionalProperties": false
      },
      "CompanyData": {
        "title": "CompanyData",
        "type": "object",
        "properties": {
          "id": {
            "description": "The company's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "name": {
            "description": "The company's name",
            "type": "string",
            "example": "Horizon Technologies"
          },
          "domain": {
            "description": "The company's primary domain",
            "type": [
              "string",
              "null"
            ],
            "format": "hostname",
            "example": "horizontech.com"
          }
        },
        "required": [
          "domain",
          "id",
          "name"
        ],
        "additionalProperties": false
      },
      "CompanyValue": {
        "title": "CompanyValue",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "company"
          },
          "data": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/CompanyData"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "data",
          "type"
        ],
        "additionalProperties": false,
        "example": {
          "type": "company",
          "data": {
            "id": 1,
            "name": "Horizon Technologies",
            "domain": "horizontech.com"
          }
        }
      },
      "CompaniesValue": {
        "title": "CompaniesValue",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "company-multi"
          },
          "data": {
            "description": "The values for many companies",
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/CompanyData"
            },
            "maxItems": 100
          },
          "totalCount": {
            "description": "The total number of values for this field. When totalCount exceeds the length of data, additional values can be retrieved using the field values endpoint.",
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 2147483647
          }
        },
        "required": [
          "data",
          "type"
        ],
        "additionalProperties": false,
        "example": {
          "type": "company-multi",
          "data": [
            {
              "id": 1,
              "name": "Horizon Technologies",
              "domain": "horizontech.com"
            },
            {
              "id": 2,
              "name": "Crestwood Capital",
              "domain": "crestwoodcap.com"
            }
          ]
        }
      },
      "DateValue": {
        "title": "DateValue",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "datetime"
          },
          "data": {
            "description": "The value for a date",
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        },
        "required": [
          "data",
          "type"
        ],
        "additionalProperties": false,
        "example": {
          "type": "datetime",
          "data": "2023-01-01T00:00:00Z"
        }
      },
      "Dropdown": {
        "title": "Dropdown",
        "type": "object",
        "properties": {
          "dropdownOptionId": {
            "description": "Dropdown item's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "text": {
            "description": "Dropdown item text",
            "type": "string",
            "example": "first"
          }
        },
        "required": [
          "dropdownOptionId",
          "text"
        ],
        "additionalProperties": false
      },
      "DropdownValue": {
        "title": "DropdownValue",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "dropdown"
          },
          "data": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/Dropdown"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "data",
          "type"
        ],
        "additionalProperties": false,
        "example": {
          "type": "dropdown",
          "data": {
            "dropdownOptionId": 1,
            "text": "Option 1"
          }
        }
      },
      "DropdownsValue": {
        "title": "DropdownsValue",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "dropdown-multi"
          },
          "data": {
            "description": "The value for many dropdown items",
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Dropdown"
            },
            "maxItems": 100
          },
          "totalCount": {
            "description": "The total number of values for this field. When totalCount exceeds the length of data, additional values can be retrieved using the field values endpoint.",
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 2147483647
          }
        },
        "required": [
          "data",
          "type"
        ],
        "additionalProperties": false,
        "example": {
          "type": "dropdown-multi",
          "data": [
            {
              "dropdownOptionId": 1,
              "text": "Option 1"
            },
            {
              "dropdownOptionId": 2,
              "text": "Option 2"
            }
          ]
        }
      },
      "FloatValue": {
        "title": "FloatValue",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "number"
          },
          "data": {
            "description": "The value for a number",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "data",
          "type"
        ],
        "additionalProperties": false,
        "example": {
          "type": "number",
          "data": 100
        }
      },
      "FloatsValue": {
        "title": "FloatsValue",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "number-multi"
          },
          "data": {
            "description": "The value for many numbers",
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "number"
            },
            "maxItems": 100
          },
          "totalCount": {
            "description": "The total number of values for this field. When totalCount exceeds the length of data, additional values can be retrieved using the field values endpoint.",
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 2147483647
          }
        },
        "required": [
          "data",
          "type"
        ],
        "additionalProperties": false,
        "example": {
          "type": "number-multi",
          "data": [
            100,
            200,
            300
          ]
        }
      },
      "TextValue": {
        "title": "TextValue",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "enum": [
              "filterable-text",
              "text"
            ],
            "example": "filterable-text"
          },
          "data": {
            "description": "The value for a string",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "data",
          "type"
        ],
        "additionalProperties": false,
        "example": {
          "type": "text",
          "data": "Some new text"
        }
      },
      "TextsValue": {
        "title": "TextsValue",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "filterable-text-multi"
          },
          "data": {
            "description": "The value for many strings",
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "string"
            },
            "maxItems": 100
          },
          "totalCount": {
            "description": "The total number of values for this field. When totalCount exceeds the length of data, additional values can be retrieved using the field values endpoint.",
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 2147483647
          }
        },
        "required": [
          "data",
          "type"
        ],
        "additionalProperties": false,
        "example": {
          "type": "filterable-text-multi",
          "data": [
            "A text value",
            "Another text value"
          ]
        }
      },
      "FormulaNumber": {
        "title": "FormulaNumber",
        "type": "object",
        "properties": {
          "calculatedValue": {
            "description": "Calculated value",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "additionalProperties": false
      },
      "FormulaValue": {
        "title": "FormulaValue",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "formula-number"
          },
          "data": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/FormulaNumber"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "data",
          "type"
        ],
        "additionalProperties": false,
        "example": {
          "type": "formula-number",
          "data": {
            "calculatedValue": 100
          }
        }
      },
      "ChatMessage": {
        "title": "ChatMessage",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of interaction",
            "type": "string",
            "const": "chat-message",
            "example": "chat-message"
          },
          "id": {
            "description": "The chat message's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "direction": {
            "description": "The direction of the chat message",
            "type": "string",
            "enum": [
              "received",
              "sent"
            ],
            "example": "sent"
          },
          "sentAt": {
            "description": "The time the chat message was sent",
            "type": "string",
            "format": "date-time",
            "example": "2023-01-01T00:00:00Z"
          },
          "manualCreator": {
            "$ref": "#/components/schemas/PersonData"
          },
          "participants": {
            "description": "The participants of the chat",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PersonData"
            }
          }
        },
        "required": [
          "direction",
          "id",
          "manualCreator",
          "participants",
          "sentAt",
          "type"
        ],
        "additionalProperties": false,
        "example": {
          "type": "chat-message",
          "id": 1,
          "direction": "sent",
          "sentAt": "2023-01-01T00:00:00Z",
          "manualCreator": {
            "id": 1,
            "firstName": "Alex",
            "lastName": "Rivera",
            "primaryEmailAddress": "alex.rivera@horizontech.com",
            "type": "internal"
          },
          "participants": [
            {
              "id": 2,
              "firstName": "Jordan",
              "lastName": "Lee",
              "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
              "type": "external"
            }
          ]
        }
      },
      "Email": {
        "title": "Email",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of interaction",
            "type": "string",
            "const": "email",
            "example": "email"
          },
          "id": {
            "description": "The email's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "subject": {
            "description": "The subject of the email",
            "type": [
              "string",
              "null"
            ],
            "example": "Horizon Technologies Upsell $10k"
          },
          "sentAt": {
            "description": "The time the email was sent",
            "type": "string",
            "format": "date-time",
            "example": "2023-01-01T00:00:00Z"
          },
          "from": {
            "$ref": "#/components/schemas/Attendee"
          },
          "to": {
            "description": "The recipients of the email",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Attendee"
            }
          },
          "cc": {
            "description": "The cc recipients of the email",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Attendee"
            }
          }
        },
        "required": [
          "cc",
          "from",
          "id",
          "sentAt",
          "subject",
          "to",
          "type"
        ],
        "additionalProperties": false,
        "example": {
          "type": "email",
          "id": 1,
          "subject": "Horizon Technologies Upsell $10k",
          "sentAt": "2023-01-01T00:00:00Z",
          "from": {
            "emailAddress": "alex.rivera@horizontech.com",
            "person": {
              "id": 1,
              "firstName": "Alex",
              "lastName": "Rivera",
              "primaryEmailAddress": "alex.rivera@horizontech.com",
              "type": "internal"
            }
          },
          "to": [
            {
              "emailAddress": "jordan.lee@crestwoodcap.com",
              "person": {
                "id": 2,
                "firstName": "Jordan",
                "lastName": "Lee",
                "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                "type": "external"
              }
            }
          ],
          "cc": []
        }
      },
      "Meeting": {
        "title": "Meeting",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of interaction",
            "type": "string",
            "const": "meeting",
            "example": "meeting"
          },
          "id": {
            "description": "The meeting's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "title": {
            "description": "The meeting's title",
            "type": [
              "string",
              "null"
            ],
            "example": "Horizon Technologies Upsell $10k"
          },
          "allDay": {
            "description": "Whether the meeting is an all-day event",
            "type": "boolean",
            "example": false
          },
          "startTime": {
            "description": "The meeting start time",
            "type": "string",
            "format": "date-time",
            "example": "2023-02-03T04:00:00Z"
          },
          "endTime": {
            "description": "The meeting end time",
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "example": "2023-02-03T05:00:00Z"
          },
          "attendees": {
            "description": "People attending the meeting",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Attendee"
            }
          }
        },
        "required": [
          "allDay",
          "attendees",
          "endTime",
          "id",
          "startTime",
          "title",
          "type"
        ],
        "additionalProperties": false,
        "example": {
          "type": "meeting",
          "id": 1,
          "title": "Defective Products",
          "allDay": false,
          "startTime": "2020-01-02T00:00:00Z",
          "endTime": "2020-01-02T01:00:00Z",
          "attendees": [
            {
              "emailAddress": "alex.rivera@horizontech.com",
              "person": {
                "id": 1,
                "firstName": "Alex",
                "lastName": "Rivera",
                "primaryEmailAddress": "alex.rivera@horizontech.com",
                "type": "internal"
              }
            },
            {
              "emailAddress": "jordan.lee@crestwoodcap.com",
              "person": {
                "id": 2,
                "firstName": "Jordan",
                "lastName": "Lee",
                "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                "type": "external"
              }
            }
          ]
        }
      },
      "PhoneCall": {
        "title": "PhoneCall",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of interaction",
            "type": "string",
            "const": "call",
            "example": "call"
          },
          "id": {
            "description": "The phone call's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "startTime": {
            "description": "The call start time",
            "type": "string",
            "format": "date-time",
            "example": "2023-02-03T04:00:00Z"
          },
          "attendees": {
            "description": "People attending the call",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Attendee"
            }
          }
        },
        "required": [
          "attendees",
          "id",
          "startTime",
          "type"
        ],
        "additionalProperties": false,
        "example": {
          "type": "call",
          "id": 1,
          "startTime": "2023-02-03T04:00:00Z",
          "attendees": [
            {
              "emailAddress": "alex.rivera@horizontech.com",
              "person": {
                "id": 1,
                "firstName": "Alex",
                "lastName": "Rivera",
                "primaryEmailAddress": "alex.rivera@horizontech.com",
                "type": "internal"
              }
            }
          ]
        }
      },
      "Interaction": {
        "title": "Interaction",
        "oneOf": [
          {
            "$ref": "#/components/schemas/ChatMessage"
          },
          {
            "$ref": "#/components/schemas/Email"
          },
          {
            "$ref": "#/components/schemas/Meeting"
          },
          {
            "$ref": "#/components/schemas/PhoneCall"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "chat-message": "#/components/schemas/ChatMessage",
            "email": "#/components/schemas/Email",
            "meeting": "#/components/schemas/Meeting",
            "call": "#/components/schemas/PhoneCall"
          }
        }
      },
      "InteractionValue": {
        "title": "InteractionValue",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "interaction"
          },
          "data": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/Interaction"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "data",
          "type"
        ],
        "additionalProperties": false,
        "example": {
          "type": "interaction",
          "data": {
            "id": 1,
            "type": "meeting",
            "title": "Defective Products",
            "allDay": false,
            "startTime": "2020-01-02T00:00:00Z",
            "endTime": "2020-01-02T01:00:00Z",
            "attendees": [
              {
                "emailAddress": "alex.rivera@horizontech.com",
                "person": {
                  "id": 1,
                  "firstName": "Alex",
                  "lastName": "Rivera",
                  "primaryEmailAddress": "alex.rivera@horizontech.com",
                  "type": "internal"
                }
              },
              {
                "emailAddress": "jordan.lee@crestwoodcap.com",
                "person": {
                  "id": 2,
                  "firstName": "Jordan",
                  "lastName": "Lee",
                  "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                  "type": "external"
                }
              }
            ]
          }
        }
      },
      "Location": {
        "title": "Location",
        "type": "object",
        "properties": {
          "streetAddress": {
            "description": "Street address",
            "type": [
              "string",
              "null"
            ],
            "example": "1 Main Street"
          },
          "city": {
            "description": "City",
            "type": [
              "string",
              "null"
            ],
            "example": "San Francisco"
          },
          "state": {
            "description": "State",
            "type": [
              "string",
              "null"
            ],
            "example": "California"
          },
          "country": {
            "description": "Country",
            "type": [
              "string",
              "null"
            ],
            "example": "United States"
          },
          "continent": {
            "description": "Continent",
            "type": [
              "string",
              "null"
            ],
            "example": "North America"
          }
        },
        "required": [
          "city",
          "continent",
          "country",
          "state",
          "streetAddress"
        ],
        "additionalProperties": false
      },
      "LocationValue": {
        "title": "LocationValue",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "location"
          },
          "data": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/Location"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "data",
          "type"
        ],
        "additionalProperties": false,
        "example": {
          "type": "location",
          "data": {
            "streetAddress": "1 Main Street",
            "city": "San Francisco",
            "state": "California",
            "country": "United States",
            "continent": "North America"
          }
        }
      },
      "LocationsValue": {
        "title": "LocationsValue",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "location-multi"
          },
          "data": {
            "description": "The values for many locations",
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/Location"
            },
            "maxItems": 100
          },
          "totalCount": {
            "description": "The total number of values for this field. When totalCount exceeds the length of data, additional values can be retrieved using the field values endpoint.",
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 2147483647
          }
        },
        "required": [
          "data",
          "type"
        ],
        "additionalProperties": false,
        "example": {
          "type": "location-multi",
          "data": [
            {
              "streetAddress": "1 Main Street",
              "city": "San Francisco",
              "state": "California",
              "country": "United States",
              "continent": "North America"
            },
            {
              "streetAddress": "1600 Pennsylvania Avenue NW",
              "city": "Washington",
              "state": "DC",
              "country": "United States",
              "continent": "North America"
            }
          ]
        }
      },
      "PersonValue": {
        "title": "PersonValue",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "person"
          },
          "data": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/PersonData"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "data",
          "type"
        ],
        "additionalProperties": false,
        "example": {
          "type": "person",
          "data": {
            "id": 1,
            "firstName": "Alex",
            "lastName": "Rivera",
            "primaryEmailAddress": "alex.rivera@horizontech.com",
            "type": "internal"
          }
        }
      },
      "PersonsValue": {
        "title": "PersonsValue",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "person-multi"
          },
          "data": {
            "description": "The values for many persons",
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/PersonData"
            },
            "maxItems": 100
          },
          "totalCount": {
            "description": "The total number of values for this field. When totalCount exceeds the length of data, additional values can be retrieved using the field values endpoint.",
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 2147483647
          }
        },
        "required": [
          "data",
          "type"
        ],
        "additionalProperties": false,
        "example": {
          "type": "person-multi",
          "data": [
            {
              "id": 1,
              "firstName": "Alex",
              "lastName": "Rivera",
              "primaryEmailAddress": "alex.rivera@horizontech.com",
              "type": "internal"
            },
            {
              "id": 2,
              "firstName": "Jordan",
              "lastName": "Lee",
              "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
              "type": "external"
            }
          ]
        }
      },
      "RankedDropdown": {
        "title": "RankedDropdown",
        "type": "object",
        "properties": {
          "dropdownOptionId": {
            "description": "Dropdown item's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "text": {
            "description": "Dropdown item text",
            "type": "string",
            "example": "first"
          },
          "rank": {
            "description": "Dropdown item rank",
            "type": "integer",
            "format": "int64",
            "minimum": 0,
            "maximum": 9007199254740991,
            "example": 0
          },
          "color": {
            "description": "Dropdown item color",
            "type": [
              "string",
              "null"
            ],
            "example": "white"
          }
        },
        "required": [
          "color",
          "dropdownOptionId",
          "rank",
          "text"
        ],
        "additionalProperties": false
      },
      "RankedDropdownValue": {
        "title": "RankedDropdownValue",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "ranked-dropdown"
          },
          "data": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/RankedDropdown"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "data",
          "type"
        ],
        "additionalProperties": false,
        "example": {
          "type": "ranked-dropdown",
          "data": {
            "dropdownOptionId": 1,
            "text": "Option 1",
            "rank": 1,
            "color": "gray"
          }
        }
      },
      "FieldValue": {
        "title": "FieldValue",
        "oneOf": [
          {
            "$ref": "#/components/schemas/CompaniesValue"
          },
          {
            "$ref": "#/components/schemas/CompanyValue"
          },
          {
            "$ref": "#/components/schemas/DateValue"
          },
          {
            "$ref": "#/components/schemas/DropdownsValue"
          },
          {
            "$ref": "#/components/schemas/DropdownValue"
          },
          {
            "$ref": "#/components/schemas/FloatsValue"
          },
          {
            "$ref": "#/components/schemas/FloatValue"
          },
          {
            "$ref": "#/components/schemas/FormulaValue"
          },
          {
            "$ref": "#/components/schemas/InteractionValue"
          },
          {
            "$ref": "#/components/schemas/LocationsValue"
          },
          {
            "$ref": "#/components/schemas/LocationValue"
          },
          {
            "$ref": "#/components/schemas/PersonsValue"
          },
          {
            "$ref": "#/components/schemas/PersonValue"
          },
          {
            "$ref": "#/components/schemas/RankedDropdownValue"
          },
          {
            "$ref": "#/components/schemas/TextsValue"
          },
          {
            "$ref": "#/components/schemas/TextValue"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "company": "#/components/schemas/CompanyValue",
            "company-multi": "#/components/schemas/CompaniesValue",
            "datetime": "#/components/schemas/DateValue",
            "dropdown": "#/components/schemas/DropdownValue",
            "dropdown-multi": "#/components/schemas/DropdownsValue",
            "number": "#/components/schemas/FloatValue",
            "number-multi": "#/components/schemas/FloatsValue",
            "filterable-text": "#/components/schemas/TextValue",
            "filterable-text-multi": "#/components/schemas/TextsValue",
            "formula-number": "#/components/schemas/FormulaValue",
            "interaction": "#/components/schemas/InteractionValue",
            "location": "#/components/schemas/LocationValue",
            "location-multi": "#/components/schemas/LocationsValue",
            "person": "#/components/schemas/PersonValue",
            "person-multi": "#/components/schemas/PersonsValue",
            "ranked-dropdown": "#/components/schemas/RankedDropdownValue",
            "text": "#/components/schemas/TextValue"
          }
        }
      },
      "Field": {
        "title": "Field",
        "type": "object",
        "properties": {
          "id": {
            "description": "The field's unique identifier",
            "type": "string",
            "example": "affinity-data-location"
          },
          "name": {
            "description": "The field's name",
            "type": "string",
            "example": "Location"
          },
          "type": {
            "description": "The field's category. `hidden` is a redaction state rather than a category: it signals a field on a restricted opportunity the caller cannot manage, whose value is masked.",
            "type": "string",
            "enum": [
              "enriched",
              "global",
              "list",
              "relationship-intelligence",
              "hidden"
            ],
            "example": "enriched"
          },
          "enrichmentSource": {
            "description": "The source of the data in this Field (if it is enriched)",
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "affinity-data",
              "dealroom",
              "eventbrite",
              "mailchimp",
              null
            ],
            "example": "affinity-data"
          },
          "value": {
            "$ref": "#/components/schemas/FieldValue"
          }
        },
        "required": [
          "enrichmentSource",
          "id",
          "name",
          "type",
          "value"
        ],
        "additionalProperties": false
      },
      "Company": {
        "title": "Company",
        "description": "Company model",
        "type": "object",
        "properties": {
          "id": {
            "description": "The company's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "name": {
            "description": "The company's name",
            "type": "string",
            "example": "Horizon Technologies"
          },
          "domain": {
            "description": "The company's primary domain",
            "type": [
              "string",
              "null"
            ],
            "format": "hostname",
            "example": "horizontech.com"
          },
          "domains": {
            "description": "All of the company's domains",
            "type": "array",
            "items": {
              "type": "string",
              "format": "hostname"
            },
            "example": [
              "horizontech.com"
            ]
          },
          "isGlobal": {
            "description": "Whether or not the company is tenant specific",
            "type": "boolean",
            "example": true
          },
          "fields": {
            "description": "The fields associated with the company",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Field"
            }
          }
        },
        "required": [
          "domain",
          "domains",
          "id",
          "isGlobal",
          "name"
        ],
        "additionalProperties": false
      },
      "CompanyPaged": {
        "title": "CompanyPaged",
        "description": "CompanyPaged model",
        "type": "object",
        "properties": {
          "data": {
            "description": "A page of Company results",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Company"
            },
            "maxItems": 100
          },
          "pagination": {
            "$ref": "#/components/schemas/Pagination"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "additionalProperties": false,
        "example": {
          "data": [
            {
              "id": 1,
              "name": "Horizon Technologies",
              "domain": "horizontech.com",
              "domains": [
                "horizontech.com"
              ],
              "isGlobal": false,
              "fields": []
            },
            {
              "id": 2,
              "name": "Crestwood Capital",
              "domain": "crestwoodcap.com",
              "domains": [
                "crestwoodcap.com"
              ],
              "isGlobal": false,
              "fields": []
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/companies?cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/companies?cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "AuthorizationErrors": {
        "title": "AuthorizationErrors",
        "description": "AuthorizationErrors model",
        "type": "object",
        "properties": {
          "errors": {
            "description": "AuthorizationError errors",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AuthorizationError"
            }
          }
        },
        "required": [
          "errors"
        ],
        "additionalProperties": false
      },
      "CompanyReference": {
        "title": "CompanyReference",
        "type": "object",
        "properties": {
          "id": {
            "description": "The company's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      },
      "CompaniesValueUpdate": {
        "title": "CompaniesValueUpdate",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "company-multi"
          },
          "data": {
            "description": "The values for many companies",
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/CompanyReference"
            },
            "maxItems": 100
          }
        },
        "required": [
          "data",
          "type"
        ],
        "additionalProperties": false,
        "example": {
          "type": "company-multi",
          "data": [
            {
              "id": 1
            },
            {
              "id": 2
            }
          ]
        }
      },
      "CompanyValueUpdate": {
        "title": "CompanyValueUpdate",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "company"
          },
          "data": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/CompanyReference"
              }
            ]
          }
        },
        "required": [
          "data",
          "type"
        ],
        "additionalProperties": false,
        "example": {
          "type": "company",
          "data": {
            "id": 1
          }
        }
      },
      "DropdownReference": {
        "title": "DropdownReference",
        "type": "object",
        "properties": {
          "dropdownOptionId": {
            "description": "Dropdown item's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          }
        },
        "required": [
          "dropdownOptionId"
        ],
        "additionalProperties": false
      },
      "DropdownValueUpdate": {
        "title": "DropdownValueUpdate",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "dropdown"
          },
          "data": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/DropdownReference"
              }
            ]
          }
        },
        "required": [
          "data",
          "type"
        ],
        "example": {
          "type": "dropdown",
          "data": {
            "dropdownOptionId": 1
          }
        }
      },
      "DropdownsValueUpdate": {
        "title": "DropdownsValueUpdate",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "dropdown-multi"
          },
          "data": {
            "description": "The value for many dropdown items",
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/DropdownReference"
            }
          }
        },
        "required": [
          "data",
          "type"
        ],
        "additionalProperties": false,
        "example": {
          "type": "dropdown-multi",
          "data": [
            {
              "dropdownOptionId": 1
            },
            {
              "dropdownOptionId": 2
            }
          ]
        }
      },
      "PersonReference": {
        "title": "PersonReference",
        "type": "object",
        "properties": {
          "id": {
            "description": "The persons's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      },
      "PersonValueUpdate": {
        "title": "PersonValueUpdate",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "person"
          },
          "data": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/PersonReference"
              }
            ]
          }
        },
        "required": [
          "data",
          "type"
        ],
        "additionalProperties": false,
        "example": {
          "type": "person",
          "data": {
            "id": 1
          }
        }
      },
      "PersonsValueUpdate": {
        "title": "PersonsValueUpdate",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "person-multi"
          },
          "data": {
            "description": "The values for many persons",
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/PersonReference"
            },
            "maxItems": 100
          }
        },
        "required": [
          "data",
          "type"
        ],
        "additionalProperties": false,
        "example": {
          "type": "person-multi",
          "data": [
            {
              "id": 1
            },
            {
              "id": 2
            }
          ]
        }
      },
      "RankedDropdownReference": {
        "title": "RankedDropdownReference",
        "type": "object",
        "properties": {
          "dropdownOptionId": {
            "description": "Ranked Dropdown item's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          }
        },
        "required": [
          "dropdownOptionId"
        ],
        "additionalProperties": false
      },
      "RankedDropdownValueUpdate": {
        "title": "RankedDropdownValueUpdate",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "ranked-dropdown"
          },
          "data": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/RankedDropdownReference"
              }
            ]
          }
        },
        "required": [
          "data",
          "type"
        ],
        "example": {
          "type": "ranked-dropdown",
          "data": {
            "dropdownOptionId": 1
          }
        }
      },
      "FieldValueUpdate": {
        "title": "FieldValueUpdate",
        "oneOf": [
          {
            "$ref": "#/components/schemas/CompaniesValueUpdate"
          },
          {
            "$ref": "#/components/schemas/CompanyValueUpdate"
          },
          {
            "$ref": "#/components/schemas/DateValue"
          },
          {
            "$ref": "#/components/schemas/DropdownValueUpdate"
          },
          {
            "$ref": "#/components/schemas/DropdownsValueUpdate"
          },
          {
            "$ref": "#/components/schemas/FloatValue"
          },
          {
            "$ref": "#/components/schemas/FloatsValue"
          },
          {
            "$ref": "#/components/schemas/LocationValue"
          },
          {
            "$ref": "#/components/schemas/LocationsValue"
          },
          {
            "$ref": "#/components/schemas/PersonValueUpdate"
          },
          {
            "$ref": "#/components/schemas/PersonsValueUpdate"
          },
          {
            "$ref": "#/components/schemas/RankedDropdownValueUpdate"
          },
          {
            "$ref": "#/components/schemas/TextValue"
          },
          {
            "$ref": "#/components/schemas/TextsValue"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "company-multi": "#/components/schemas/CompaniesValueUpdate",
            "company": "#/components/schemas/CompanyValueUpdate",
            "datetime": "#/components/schemas/DateValue",
            "dropdown": "#/components/schemas/DropdownValueUpdate",
            "dropdown-multi": "#/components/schemas/DropdownsValueUpdate",
            "number": "#/components/schemas/FloatValue",
            "number-multi": "#/components/schemas/FloatsValue",
            "location": "#/components/schemas/LocationValue",
            "location-multi": "#/components/schemas/LocationsValue",
            "person": "#/components/schemas/PersonValueUpdate",
            "person-multi": "#/components/schemas/PersonsValueUpdate",
            "ranked-dropdown": "#/components/schemas/RankedDropdownValueUpdate",
            "filterable-text": "#/components/schemas/TextValue",
            "filterable-text-multi": "#/components/schemas/TextsValue",
            "text": "#/components/schemas/TextValue"
          }
        }
      },
      "fields.FieldUpdate": {
        "title": "fields.FieldUpdate",
        "type": "object",
        "properties": {
          "id": {
            "description": "The field's unique identifier.",
            "type": "string",
            "example": "affinity-data-location"
          },
          "value": {
            "$ref": "#/components/schemas/FieldValueUpdate"
          }
        },
        "required": [
          "id",
          "value"
        ],
        "additionalProperties": false
      },
      "FilterableFieldOperator": {
        "title": "FilterableFieldOperator",
        "description": "An operator that can be applied to a filterable field or attribute. Use the `id` as the `operator` value in filter requests.",
        "type": "object",
        "properties": {
          "id": {
            "description": "The operator identifier",
            "type": "string",
            "enum": [
              "contains",
              "does-not-contain",
              "ends-with",
              "has-all-of",
              "has-any-of",
              "has-exactly",
              "has-none-of",
              "is-after",
              "is-any-of",
              "is-before",
              "is-between",
              "is-between-relative",
              "is-empty",
              "is-equal-to",
              "is-exactly",
              "is-exactly-relative",
              "is-greater-than",
              "is-greater-than-or-equal-to",
              "is-less-than",
              "is-less-than-or-equal-to",
              "is-less-than-relative",
              "is-less-than-or-equal-to-relative",
              "is-more-than",
              "is-more-than-or-equal-to",
              "is-more-than-relative",
              "is-more-than-or-equal-to-relative",
              "is-none-of",
              "is-not-empty",
              "is-not-equal-to",
              "is-not-exactly-relative",
              "is-not-on",
              "is-not-within-the-last",
              "is-not-within-the-next",
              "is-on",
              "is-on-or-after",
              "is-on-or-before",
              "is-within-the-last",
              "is-within-the-next",
              "starts-with"
            ],
            "example": "is-any-of"
          },
          "name": {
            "description": "Human-readable name for the operator",
            "type": "string",
            "example": "Is any of"
          },
          "numberOfValuesRequired": {
            "description": "The number of values required for this operator. `none` means no value is needed (e.g. `is-empty`). `one` means a single value. `two` means a range (e.g. `is-between`). `multi` means one or more values (e.g. `has-any-of`).",
            "type": "string",
            "enum": [
              "none",
              "one",
              "two",
              "multi"
            ]
          },
          "relativeDateUnits": {
            "description": "For relative date operators, the list of time units that can be used as the value (e.g. `days`, `weeks`, `months`). Only present on relative date operators.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "minute",
                "hour",
                "day",
                "week",
                "month",
                "quarter",
                "year"
              ]
            },
            "uniqueItems": true
          }
        },
        "required": [
          "id",
          "name",
          "numberOfValuesRequired"
        ],
        "additionalProperties": false
      },
      "FieldFilterabilityFieldOnly": {
        "title": "FieldFilterabilityFieldOnly",
        "description": "A field that is filtered directly using the field `id` and one of the listed `operators`.",
        "type": "object",
        "properties": {
          "filterableFieldType": {
            "type": "string",
            "const": "field-only"
          },
          "operators": {
            "description": "The operators supported for filtering on this field",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FilterableFieldOperator"
            },
            "maxItems": 100
          }
        },
        "required": [
          "filterableFieldType",
          "operators"
        ],
        "additionalProperties": false
      },
      "FilterableFieldAttribute": {
        "title": "FilterableFieldAttribute",
        "description": "A sub-attribute of a filterable field, used when a field has multiple independent filterable dimensions (e.g. an interaction field with a `date-of-activity` attribute).",
        "type": "object",
        "properties": {
          "id": {
            "description": "The attribute identifier",
            "type": "string",
            "example": "date-of-activity"
          },
          "name": {
            "description": "Human-readable name for the attribute",
            "type": "string",
            "example": "Date of Activity"
          },
          "valueType": {
            "description": "The value type of this attribute",
            "type": "string",
            "enum": [
              "date",
              "number",
              "person-multi",
              "text"
            ],
            "example": "date"
          },
          "operators": {
            "description": "The operators supported for this attribute",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FilterableFieldOperator"
            },
            "maxItems": 100
          }
        },
        "required": [
          "id",
          "name",
          "valueType",
          "operators"
        ],
        "additionalProperties": false
      },
      "FieldFilterabilityAttributeOnField": {
        "title": "FieldFilterabilityAttributeOnField",
        "description": "A field with sub-attributes that are each filtered independently using the field `id`, an attribute `id`, and an operator from that attribute's `operators` list.",
        "type": "object",
        "properties": {
          "filterableFieldType": {
            "type": "string",
            "const": "attribute-on-field"
          },
          "attributes": {
            "description": "The sub-attributes of this field, each with their own supported operators",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FilterableFieldAttribute"
            },
            "maxItems": 100
          }
        },
        "required": [
          "filterableFieldType",
          "attributes"
        ],
        "additionalProperties": false
      },
      "FieldFilterability": {
        "title": "FieldFilterability",
        "description": "Describes how a field can be used in filter expressions.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/FieldFilterabilityFieldOnly"
          },
          {
            "$ref": "#/components/schemas/FieldFilterabilityAttributeOnField"
          }
        ],
        "discriminator": {
          "propertyName": "filterableFieldType",
          "mapping": {
            "field-only": "#/components/schemas/FieldFilterabilityFieldOnly",
            "attribute-on-field": "#/components/schemas/FieldFilterabilityAttributeOnField"
          }
        }
      },
      "FieldSortabilityFieldOnly": {
        "title": "FieldSortabilityFieldOnly",
        "description": "A field that is sorted directly by its value. Use the field `id` as `fieldId` in sort expressions.",
        "type": "object",
        "properties": {
          "sortableFieldType": {
            "type": "string",
            "const": "field-only"
          }
        },
        "required": [
          "sortableFieldType"
        ],
        "additionalProperties": false
      },
      "FieldSortabilityAttribute": {
        "title": "FieldSortabilityAttribute",
        "description": "A sub-attribute of a sortable field.",
        "type": "object",
        "properties": {
          "id": {
            "description": "The attribute identifier",
            "type": "string",
            "example": "date-of-activity"
          },
          "name": {
            "description": "Human-readable name for the attribute",
            "type": "string",
            "example": "Date of Activity"
          },
          "valueType": {
            "description": "The value type of this attribute",
            "type": "string",
            "enum": [
              "company-multi",
              "date",
              "number",
              "person",
              "person-multi",
              "ranked-dropdown",
              "text"
            ],
            "example": "date"
          }
        },
        "required": [
          "id",
          "name",
          "valueType"
        ],
        "additionalProperties": false
      },
      "FieldSortabilityAttributeOnField": {
        "title": "FieldSortabilityAttributeOnField",
        "description": "A field with sub-attributes that can each be sorted on independently using the field `id` and an attribute `id`.",
        "type": "object",
        "properties": {
          "sortableFieldType": {
            "type": "string",
            "const": "attribute-on-field"
          },
          "attributes": {
            "description": "The sub-attributes that can be sorted on",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FieldSortabilityAttribute"
            },
            "maxItems": 5
          }
        },
        "required": [
          "sortableFieldType",
          "attributes"
        ],
        "additionalProperties": false
      },
      "FieldSortability": {
        "title": "FieldSortability",
        "description": "Describes how a field can be used in sort expressions.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/FieldSortabilityFieldOnly"
          },
          {
            "$ref": "#/components/schemas/FieldSortabilityAttributeOnField"
          }
        ],
        "discriminator": {
          "propertyName": "sortableFieldType",
          "mapping": {
            "field-only": "#/components/schemas/FieldSortabilityFieldOnly",
            "attribute-on-field": "#/components/schemas/FieldSortabilityAttributeOnField"
          }
        }
      },
      "FieldMetadata": {
        "title": "FieldMetadata",
        "type": "object",
        "properties": {
          "id": {
            "description": "The field's unique identifier",
            "type": "string",
            "example": "affinity-data-location"
          },
          "name": {
            "description": "The field's name",
            "type": "string",
            "example": "Location"
          },
          "type": {
            "description": "The field's type",
            "type": "string",
            "enum": [
              "enriched",
              "global",
              "list",
              "relationship-intelligence"
            ],
            "example": "enriched"
          },
          "enrichmentSource": {
            "description": "The source of the data in this Field (if it is enriched)",
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "affinity-data",
              "dealroom",
              "eventbrite",
              "mailchimp",
              null
            ],
            "example": "affinity-data"
          },
          "valueType": {
            "description": "The type of the data in this Field",
            "type": "string",
            "enum": [
              "person",
              "person-multi",
              "company",
              "company-multi",
              "filterable-text",
              "filterable-text-multi",
              "number",
              "number-multi",
              "datetime",
              "location",
              "location-multi",
              "text",
              "ranked-dropdown",
              "dropdown",
              "dropdown-multi",
              "formula-number",
              "interaction"
            ],
            "example": "location"
          },
          "createdAt": {
            "description": "The date and time this field was created, or `null` for built-in fields that Affinity provides automatically and that therefore have no creation time (for example identity, association, interaction, and some enriched fields).",
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "example": "2024-03-07T20:21:42Z"
          },
          "filterability": {
            "description": "How this field can be used in filter expressions. Only present on endpoints that support the `includes` query parameter when `filterability` is requested. `null` if the field is not filterable.",
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/FieldFilterability"
              }
            ]
          },
          "sortability": {
            "description": "How this field can be used in sort expressions. Only present on endpoints that support the `includes` query parameter when `sortability` is requested. `null` if the field is not sortable.",
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/FieldSortability"
              }
            ]
          }
        },
        "required": [
          "createdAt",
          "enrichmentSource",
          "id",
          "name",
          "type",
          "valueType"
        ],
        "additionalProperties": false
      },
      "FieldMetadataPaged": {
        "title": "FieldMetadataPaged",
        "description": "FieldMetadataPaged model",
        "type": "object",
        "properties": {
          "data": {
            "description": "A page of FieldMetadata results",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FieldMetadata"
            },
            "maxItems": 100
          },
          "pagination": {
            "$ref": "#/components/schemas/Pagination"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "additionalProperties": false
      },
      "DropdownOptionBase": {
        "title": "DropdownOptionBase",
        "type": "object",
        "properties": {
          "id": {
            "description": "Dropdown option's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "text": {
            "description": "Dropdown option text",
            "type": "string",
            "example": "Active"
          }
        },
        "required": [
          "id",
          "text"
        ]
      },
      "dropdownOptions.DropdownOption": {
        "title": "dropdownOptions.DropdownOption",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/DropdownOptionBase"
          }
        ],
        "properties": {
          "type": {
            "description": "The type of dropdown option",
            "type": "string",
            "const": "dropdown"
          }
        },
        "required": [
          "type"
        ],
        "unevaluatedProperties": false,
        "example": {
          "type": "dropdown",
          "id": 1,
          "text": "Seed"
        }
      },
      "dropdownOptions.RankedDropdownOption": {
        "title": "dropdownOptions.RankedDropdownOption",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/DropdownOptionBase"
          }
        ],
        "properties": {
          "type": {
            "description": "The type of dropdown option",
            "type": "string",
            "const": "ranked-dropdown"
          },
          "rank": {
            "description": "Dropdown option rank (sort order)",
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 2147483647,
            "example": 0
          },
          "color": {
            "description": "Dropdown option color",
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "white",
              "gray",
              "blue",
              "green",
              "purple",
              "orange",
              "red",
              null
            ],
            "example": "blue"
          }
        },
        "required": [
          "type",
          "rank",
          "color"
        ],
        "unevaluatedProperties": false,
        "example": {
          "type": "ranked-dropdown",
          "id": 1,
          "text": "High",
          "rank": 0,
          "color": "green"
        }
      },
      "dropdownOptions.StatusDropdownOption": {
        "title": "dropdownOptions.StatusDropdownOption",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/DropdownOptionBase"
          }
        ],
        "properties": {
          "type": {
            "description": "The type of dropdown option",
            "type": "string",
            "const": "status-dropdown"
          },
          "rank": {
            "description": "Dropdown option rank (sort order)",
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 2147483647,
            "example": 0
          },
          "color": {
            "description": "Dropdown option color",
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "white",
              "gray",
              "blue",
              "green",
              "purple",
              "orange",
              "red",
              null
            ],
            "example": "green"
          },
          "statusCategory": {
            "description": "Dropdown option's status category",
            "type": "string",
            "enum": [
              "open",
              "won",
              "lost",
              "on-hold"
            ],
            "example": "open"
          },
          "winRate": {
            "description": "The user-designated probability that an entity in this status will progress to a `won` status. Only set on options whose `statusCategory` is `open`; null otherwise.",
            "type": [
              "integer",
              "null"
            ],
            "format": "int32",
            "minimum": 0,
            "maximum": 100,
            "example": 25
          }
        },
        "required": [
          "type",
          "rank",
          "color",
          "statusCategory",
          "winRate"
        ],
        "unevaluatedProperties": false,
        "example": {
          "type": "status-dropdown",
          "id": 1,
          "text": "In Progress",
          "rank": 0,
          "color": "green",
          "statusCategory": "open",
          "winRate": 25
        }
      },
      "DropdownOption": {
        "title": "DropdownOption",
        "oneOf": [
          {
            "$ref": "#/components/schemas/dropdownOptions.DropdownOption"
          },
          {
            "$ref": "#/components/schemas/dropdownOptions.RankedDropdownOption"
          },
          {
            "$ref": "#/components/schemas/dropdownOptions.StatusDropdownOption"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "dropdown": "#/components/schemas/dropdownOptions.DropdownOption",
            "ranked-dropdown": "#/components/schemas/dropdownOptions.RankedDropdownOption",
            "status-dropdown": "#/components/schemas/dropdownOptions.StatusDropdownOption"
          }
        }
      },
      "DropdownOptionPaged": {
        "title": "DropdownOptionPaged",
        "description": "DropdownOptionPaged model",
        "type": "object",
        "properties": {
          "data": {
            "description": "A page of DropdownOption results",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DropdownOption"
            },
            "maxItems": 100
          },
          "pagination": {
            "$ref": "#/components/schemas/Pagination"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "additionalProperties": false
      },
      "CompanyFilterMultiValues": {
        "title": "CompanyFilterMultiValues",
        "description": "Filter for single-company fields matching against one or more companies",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "company"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "attributeId": {
            "description": "The ID of the attribute to filter on. Required for some fields such as relationship intelligence fields. Use `GET /v2/lists/{listId}/fields?includes=filterability` to discover which fields require an `attributeId` and what values are valid.",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "enum": [
              "is-any-of",
              "is-none-of"
            ]
          },
          "value": {
            "description": "One or more companies to match against",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanyReference"
            },
            "minItems": 1,
            "maxItems": 100
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator",
          "value"
        ],
        "additionalProperties": false
      },
      "CompanyFilterNoValue": {
        "title": "CompanyFilterNoValue",
        "description": "Filter for single-company fields based on presence or absence of a value",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "company"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "attributeId": {
            "description": "The ID of the attribute to filter on. Required for some fields such as relationship intelligence fields. Use `GET /v2/lists/{listId}/fields?includes=filterability` to discover which fields require an `attributeId` and what values are valid.",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "enum": [
              "is-empty",
              "is-not-empty"
            ]
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator"
        ],
        "additionalProperties": false
      },
      "CompanyFilter": {
        "title": "CompanyFilter",
        "description": "Filter for single-company fields",
        "oneOf": [
          {
            "$ref": "#/components/schemas/CompanyFilterMultiValues"
          },
          {
            "$ref": "#/components/schemas/CompanyFilterNoValue"
          }
        ],
        "discriminator": {
          "propertyName": "operator",
          "mapping": {
            "is-any-of": "#/components/schemas/CompanyFilterMultiValues",
            "is-none-of": "#/components/schemas/CompanyFilterMultiValues",
            "is-empty": "#/components/schemas/CompanyFilterNoValue",
            "is-not-empty": "#/components/schemas/CompanyFilterNoValue"
          }
        }
      },
      "CompaniesFilterMultiValues": {
        "title": "CompaniesFilterMultiValues",
        "description": "Filter for multi-company fields matching against one or more companies",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "company-multi"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "attributeId": {
            "description": "The ID of the attribute to filter on. Required for some fields such as relationship intelligence fields. Use `GET /v2/lists/{listId}/fields?includes=filterability` to discover which fields require an `attributeId` and what values are valid.",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "enum": [
              "has-any-of",
              "has-none-of",
              "has-all-of"
            ]
          },
          "value": {
            "description": "One or more companies to match against",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanyReference"
            },
            "minItems": 1,
            "maxItems": 100
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator",
          "value"
        ],
        "additionalProperties": false
      },
      "CompaniesFilterNoValue": {
        "title": "CompaniesFilterNoValue",
        "description": "Filter for multi-company fields based on presence or absence of a value",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "company-multi"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "attributeId": {
            "description": "The ID of the attribute to filter on. Required for some fields such as relationship intelligence fields. Use `GET /v2/lists/{listId}/fields?includes=filterability` to discover which fields require an `attributeId` and what values are valid.",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "enum": [
              "is-empty",
              "is-not-empty"
            ]
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator"
        ],
        "additionalProperties": false
      },
      "CompaniesFilter": {
        "title": "CompaniesFilter",
        "description": "Filter for multi-company fields",
        "oneOf": [
          {
            "$ref": "#/components/schemas/CompaniesFilterMultiValues"
          },
          {
            "$ref": "#/components/schemas/CompaniesFilterNoValue"
          }
        ],
        "discriminator": {
          "propertyName": "operator",
          "mapping": {
            "has-any-of": "#/components/schemas/CompaniesFilterMultiValues",
            "has-none-of": "#/components/schemas/CompaniesFilterMultiValues",
            "has-all-of": "#/components/schemas/CompaniesFilterMultiValues",
            "is-empty": "#/components/schemas/CompaniesFilterNoValue",
            "is-not-empty": "#/components/schemas/CompaniesFilterNoValue"
          }
        }
      },
      "PersonFilterMultiValues": {
        "title": "PersonFilterMultiValues",
        "description": "Filter for single-person fields matching against one or more persons",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "person"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "attributeId": {
            "description": "The ID of the attribute to filter on. Required for some fields such as relationship intelligence fields. Use `GET /v2/lists/{listId}/fields?includes=filterability` to discover which fields require an `attributeId` and what values are valid.",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "enum": [
              "is-any-of",
              "is-none-of"
            ]
          },
          "value": {
            "description": "One or more persons to match against",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PersonReference"
            },
            "minItems": 1,
            "maxItems": 100
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator",
          "value"
        ],
        "additionalProperties": false
      },
      "PersonFilterNoValue": {
        "title": "PersonFilterNoValue",
        "description": "Filter for single-person fields based on presence or absence of a value",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "person"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "attributeId": {
            "description": "The ID of the attribute to filter on. Required for some fields such as relationship intelligence fields. Use `GET /v2/lists/{listId}/fields?includes=filterability` to discover which fields require an `attributeId` and what values are valid.",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "enum": [
              "is-empty",
              "is-not-empty"
            ]
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator"
        ],
        "additionalProperties": false
      },
      "PersonFilter": {
        "title": "PersonFilter",
        "description": "Filter for single-person fields",
        "oneOf": [
          {
            "$ref": "#/components/schemas/PersonFilterMultiValues"
          },
          {
            "$ref": "#/components/schemas/PersonFilterNoValue"
          }
        ],
        "discriminator": {
          "propertyName": "operator",
          "mapping": {
            "is-any-of": "#/components/schemas/PersonFilterMultiValues",
            "is-none-of": "#/components/schemas/PersonFilterMultiValues",
            "is-empty": "#/components/schemas/PersonFilterNoValue",
            "is-not-empty": "#/components/schemas/PersonFilterNoValue"
          }
        }
      },
      "PersonsFilterMultiValues": {
        "title": "PersonsFilterMultiValues",
        "description": "Filter for multi-person fields matching against one or more persons",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "person-multi"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "attributeId": {
            "description": "The ID of the attribute to filter on. Required for some fields such as relationship intelligence fields. Use `GET /v2/lists/{listId}/fields?includes=filterability` to discover which fields require an `attributeId` and what values are valid.",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "enum": [
              "has-any-of",
              "has-none-of",
              "has-all-of"
            ]
          },
          "value": {
            "description": "One or more persons to match against",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PersonReference"
            },
            "minItems": 1,
            "maxItems": 100
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator",
          "value"
        ],
        "additionalProperties": false
      },
      "PersonsFilterNoValue": {
        "title": "PersonsFilterNoValue",
        "description": "Filter for multi-person fields based on presence or absence of a value",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "person-multi"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "attributeId": {
            "description": "The ID of the attribute to filter on. Required for some fields such as relationship intelligence fields. Use `GET /v2/lists/{listId}/fields?includes=filterability` to discover which fields require an `attributeId` and what values are valid.",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "enum": [
              "is-empty",
              "is-not-empty"
            ]
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator"
        ],
        "additionalProperties": false
      },
      "PersonsFilter": {
        "title": "PersonsFilter",
        "description": "Filter for multi-person fields",
        "oneOf": [
          {
            "$ref": "#/components/schemas/PersonsFilterMultiValues"
          },
          {
            "$ref": "#/components/schemas/PersonsFilterNoValue"
          }
        ],
        "discriminator": {
          "propertyName": "operator",
          "mapping": {
            "has-any-of": "#/components/schemas/PersonsFilterMultiValues",
            "has-none-of": "#/components/schemas/PersonsFilterMultiValues",
            "has-all-of": "#/components/schemas/PersonsFilterMultiValues",
            "is-empty": "#/components/schemas/PersonsFilterNoValue",
            "is-not-empty": "#/components/schemas/PersonsFilterNoValue"
          }
        }
      },
      "DropdownFilterMultiValues": {
        "title": "DropdownFilterMultiValues",
        "description": "Filter for dropdown fields matching against one or more dropdown options",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "dropdown"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "enum": [
              "is-any-of",
              "is-none-of"
            ]
          },
          "value": {
            "description": "One or more dropdown options to match against",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DropdownReference"
            },
            "minItems": 1,
            "maxItems": 100
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator",
          "value"
        ],
        "additionalProperties": false
      },
      "DropdownFilterNoValue": {
        "title": "DropdownFilterNoValue",
        "description": "Filter for dropdown fields based on presence or absence of a value",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "dropdown"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "enum": [
              "is-empty",
              "is-not-empty"
            ]
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator"
        ],
        "additionalProperties": false
      },
      "DropdownFilter": {
        "title": "DropdownFilter",
        "description": "Filter for dropdown fields",
        "oneOf": [
          {
            "$ref": "#/components/schemas/DropdownFilterMultiValues"
          },
          {
            "$ref": "#/components/schemas/DropdownFilterNoValue"
          }
        ],
        "discriminator": {
          "propertyName": "operator",
          "mapping": {
            "is-any-of": "#/components/schemas/DropdownFilterMultiValues",
            "is-none-of": "#/components/schemas/DropdownFilterMultiValues",
            "is-empty": "#/components/schemas/DropdownFilterNoValue",
            "is-not-empty": "#/components/schemas/DropdownFilterNoValue"
          }
        }
      },
      "DropdownsFilterMultiValues": {
        "title": "DropdownsFilterMultiValues",
        "description": "Filter for multi-dropdown fields matching against one or more dropdown options",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "dropdown-multi"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "enum": [
              "has-any-of",
              "has-none-of",
              "has-all-of"
            ]
          },
          "value": {
            "description": "One or more dropdown options to match against",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DropdownReference"
            },
            "minItems": 1,
            "maxItems": 100
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator",
          "value"
        ],
        "additionalProperties": false
      },
      "DropdownsFilterNoValue": {
        "title": "DropdownsFilterNoValue",
        "description": "Filter for multi-dropdown fields based on presence or absence of a value",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "dropdown-multi"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "enum": [
              "is-empty",
              "is-not-empty"
            ]
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator"
        ],
        "additionalProperties": false
      },
      "DropdownsFilter": {
        "title": "DropdownsFilter",
        "description": "Filter for multi-dropdown fields",
        "oneOf": [
          {
            "$ref": "#/components/schemas/DropdownsFilterMultiValues"
          },
          {
            "$ref": "#/components/schemas/DropdownsFilterNoValue"
          }
        ],
        "discriminator": {
          "propertyName": "operator",
          "mapping": {
            "has-any-of": "#/components/schemas/DropdownsFilterMultiValues",
            "has-none-of": "#/components/schemas/DropdownsFilterMultiValues",
            "has-all-of": "#/components/schemas/DropdownsFilterMultiValues",
            "is-empty": "#/components/schemas/DropdownsFilterNoValue",
            "is-not-empty": "#/components/schemas/DropdownsFilterNoValue"
          }
        }
      },
      "RankedDropdownFilterMultiValues": {
        "title": "RankedDropdownFilterMultiValues",
        "description": "Filter for ranked-dropdown fields matching against one or more ranked dropdown options",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "ranked-dropdown"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "enum": [
              "is-any-of",
              "is-none-of"
            ]
          },
          "value": {
            "description": "One or more ranked dropdown options to match against",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RankedDropdownReference"
            },
            "minItems": 1,
            "maxItems": 100
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator",
          "value"
        ],
        "additionalProperties": false
      },
      "RankedDropdownFilterNoValue": {
        "title": "RankedDropdownFilterNoValue",
        "description": "Filter for ranked-dropdown fields based on presence or absence of a value",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "ranked-dropdown"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "enum": [
              "is-empty",
              "is-not-empty"
            ]
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator"
        ],
        "additionalProperties": false
      },
      "RankedDropdownFilter": {
        "title": "RankedDropdownFilter",
        "description": "Filter for ranked-dropdown fields",
        "oneOf": [
          {
            "$ref": "#/components/schemas/RankedDropdownFilterMultiValues"
          },
          {
            "$ref": "#/components/schemas/RankedDropdownFilterNoValue"
          }
        ],
        "discriminator": {
          "propertyName": "operator",
          "mapping": {
            "is-any-of": "#/components/schemas/RankedDropdownFilterMultiValues",
            "is-none-of": "#/components/schemas/RankedDropdownFilterMultiValues",
            "is-empty": "#/components/schemas/RankedDropdownFilterNoValue",
            "is-not-empty": "#/components/schemas/RankedDropdownFilterNoValue"
          }
        }
      },
      "DateFilterOneValue": {
        "title": "DateFilterOneValue",
        "description": "Filter for date fields relative to or matching a single date",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "date"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "attributeId": {
            "description": "The ID of the attribute to filter on. Required for some fields such as relationship intelligence fields. Use `GET /v2/lists/{listId}/fields?includes=filterability` to discover which fields require an `attributeId` and what values are valid.",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "enum": [
              "is-on",
              "is-not-on",
              "is-before",
              "is-on-or-before",
              "is-after",
              "is-on-or-after"
            ]
          },
          "value": {
            "description": "The date to filter against",
            "type": "string",
            "format": "date"
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator",
          "value"
        ],
        "additionalProperties": false
      },
      "DateFilterRange": {
        "title": "DateFilterRange",
        "description": "Filter for date fields within an absolute date range (inclusive)",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "date"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "attributeId": {
            "description": "The ID of the attribute to filter on. Required for some fields such as relationship intelligence fields. Use `GET /v2/lists/{listId}/fields?includes=filterability` to discover which fields require an `attributeId` and what values are valid.",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "const": "is-between"
          },
          "value": {
            "description": "Two dates defining the inclusive range, start date first, end date second",
            "type": "array",
            "items": {
              "type": "string",
              "format": "date"
            },
            "minItems": 2,
            "maxItems": 2
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator",
          "value"
        ],
        "additionalProperties": false
      },
      "RelativeDates": {
        "title": "RelativeDates",
        "type": "object",
        "properties": {
          "amount": {
            "description": "The number of units for the relative date window. Provide one value (e.g. `[30]` means 30 days). For a range, provide two values where the first is the start offset and the second is the end offset from today (e.g. `[7, 30]` means between 7 and 30 days ago).",
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32",
              "minimum": 0,
              "maximum": 2147483647
            },
            "minItems": 1,
            "maxItems": 2
          },
          "unit": {
            "description": "The unit for the relative date filter",
            "type": "string",
            "enum": [
              "minute",
              "hour",
              "day",
              "week",
              "month",
              "quarter",
              "year"
            ]
          }
        },
        "required": [
          "amount",
          "unit"
        ],
        "additionalProperties": false
      },
      "DateFilterRelative": {
        "title": "DateFilterRelative",
        "description": "Filter for date fields within a relative date window",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "date"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "attributeId": {
            "description": "The ID of the attribute to filter on. Required for some fields such as relationship intelligence fields. Use `GET /v2/lists/{listId}/fields?includes=filterability` to discover which fields require an `attributeId` and what values are valid.",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "enum": [
              "is-within-the-last",
              "is-not-within-the-last",
              "is-within-the-next",
              "is-not-within-the-next",
              "is-between-relative"
            ]
          },
          "value": {
            "description": "The relative date window definition, specifying an amount and unit",
            "$ref": "#/components/schemas/RelativeDates"
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator",
          "value"
        ],
        "additionalProperties": false
      },
      "RelativeDate": {
        "title": "RelativeDate",
        "description": "A single relative duration, specifying an amount and unit",
        "type": "object",
        "properties": {
          "amount": {
            "description": "The number of units",
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 2147483647
          },
          "unit": {
            "description": "The time unit for the duration",
            "type": "string",
            "enum": [
              "minute",
              "hour",
              "day",
              "week",
              "month",
              "quarter",
              "year"
            ]
          }
        },
        "required": [
          "amount",
          "unit"
        ],
        "additionalProperties": false
      },
      "DateFilterRelativeDate": {
        "title": "DateFilterRelativeDate",
        "description": "Filter for date fields using a single relative duration threshold",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "date"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "attributeId": {
            "description": "The ID of the attribute to filter on. Required for some fields such as relationship intelligence fields. Use `GET /v2/lists/{listId}/fields?includes=filterability` to discover which fields require an `attributeId` and what values are valid.",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "enum": [
              "is-exactly-relative",
              "is-not-exactly-relative",
              "is-more-than-relative",
              "is-more-than-or-equal-to-relative",
              "is-less-than-relative",
              "is-less-than-or-equal-to-relative"
            ]
          },
          "value": {
            "description": "The relative duration threshold",
            "$ref": "#/components/schemas/RelativeDate"
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator",
          "value"
        ],
        "additionalProperties": false
      },
      "DateFilterNoValue": {
        "title": "DateFilterNoValue",
        "description": "Filter for date fields based on presence or absence of a value",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "date"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "attributeId": {
            "description": "The ID of the attribute to filter on. Required for some fields such as relationship intelligence fields. Use `GET /v2/lists/{listId}/fields?includes=filterability` to discover which fields require an `attributeId` and what values are valid.",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "enum": [
              "is-empty",
              "is-not-empty"
            ]
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator"
        ],
        "additionalProperties": false
      },
      "DateFilter": {
        "title": "DateFilter",
        "description": "Filter for date fields",
        "oneOf": [
          {
            "$ref": "#/components/schemas/DateFilterOneValue"
          },
          {
            "$ref": "#/components/schemas/DateFilterRange"
          },
          {
            "$ref": "#/components/schemas/DateFilterRelative"
          },
          {
            "$ref": "#/components/schemas/DateFilterRelativeDate"
          },
          {
            "$ref": "#/components/schemas/DateFilterNoValue"
          }
        ],
        "discriminator": {
          "propertyName": "operator",
          "mapping": {
            "is-on": "#/components/schemas/DateFilterOneValue",
            "is-not-on": "#/components/schemas/DateFilterOneValue",
            "is-before": "#/components/schemas/DateFilterOneValue",
            "is-on-or-before": "#/components/schemas/DateFilterOneValue",
            "is-after": "#/components/schemas/DateFilterOneValue",
            "is-on-or-after": "#/components/schemas/DateFilterOneValue",
            "is-between": "#/components/schemas/DateFilterRange",
            "is-within-the-last": "#/components/schemas/DateFilterRelative",
            "is-not-within-the-last": "#/components/schemas/DateFilterRelative",
            "is-within-the-next": "#/components/schemas/DateFilterRelative",
            "is-not-within-the-next": "#/components/schemas/DateFilterRelative",
            "is-between-relative": "#/components/schemas/DateFilterRelative",
            "is-exactly-relative": "#/components/schemas/DateFilterRelativeDate",
            "is-not-exactly-relative": "#/components/schemas/DateFilterRelativeDate",
            "is-more-than-relative": "#/components/schemas/DateFilterRelativeDate",
            "is-more-than-or-equal-to-relative": "#/components/schemas/DateFilterRelativeDate",
            "is-less-than-relative": "#/components/schemas/DateFilterRelativeDate",
            "is-less-than-or-equal-to-relative": "#/components/schemas/DateFilterRelativeDate",
            "is-empty": "#/components/schemas/DateFilterNoValue",
            "is-not-empty": "#/components/schemas/DateFilterNoValue"
          }
        }
      },
      "NumberFilterOneValue": {
        "title": "NumberFilterOneValue",
        "description": "Filter for number fields comparing against a single numeric value",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "number"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "attributeId": {
            "description": "The ID of the attribute to filter on. Required for some fields such as relationship intelligence fields. Use `GET /v2/lists/{listId}/fields?includes=filterability` to discover which fields require an `attributeId` and what values are valid.",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "enum": [
              "is-equal-to",
              "is-not-equal-to",
              "is-greater-than",
              "is-greater-than-or-equal-to",
              "is-less-than",
              "is-less-than-or-equal-to"
            ]
          },
          "value": {
            "description": "The number to compare against",
            "type": "number"
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator",
          "value"
        ],
        "additionalProperties": false
      },
      "NumberFilterRange": {
        "title": "NumberFilterRange",
        "description": "Filter for number fields within a numeric range (inclusive)",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "number"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "attributeId": {
            "description": "The ID of the attribute to filter on. Required for some fields such as relationship intelligence fields. Use `GET /v2/lists/{listId}/fields?includes=filterability` to discover which fields require an `attributeId` and what values are valid.",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "const": "is-between"
          },
          "value": {
            "description": "Exactly two numbers defining the inclusive range (lower bound first, upper bound second)",
            "type": "array",
            "items": {
              "type": "number"
            },
            "minItems": 2,
            "maxItems": 2
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator",
          "value"
        ],
        "additionalProperties": false
      },
      "NumberFilterNoValue": {
        "title": "NumberFilterNoValue",
        "description": "Filter for number fields based on presence or absence of a value",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "number"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "attributeId": {
            "description": "The ID of the attribute to filter on. Required for some fields such as relationship intelligence fields. Use `GET /v2/lists/{listId}/fields?includes=filterability` to discover which fields require an `attributeId` and what values are valid.",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "enum": [
              "is-empty",
              "is-not-empty"
            ]
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator"
        ],
        "additionalProperties": false
      },
      "NumberFilter": {
        "title": "NumberFilter",
        "description": "Filter for number fields",
        "oneOf": [
          {
            "$ref": "#/components/schemas/NumberFilterOneValue"
          },
          {
            "$ref": "#/components/schemas/NumberFilterRange"
          },
          {
            "$ref": "#/components/schemas/NumberFilterNoValue"
          }
        ],
        "discriminator": {
          "propertyName": "operator",
          "mapping": {
            "is-equal-to": "#/components/schemas/NumberFilterOneValue",
            "is-not-equal-to": "#/components/schemas/NumberFilterOneValue",
            "is-greater-than": "#/components/schemas/NumberFilterOneValue",
            "is-greater-than-or-equal-to": "#/components/schemas/NumberFilterOneValue",
            "is-less-than": "#/components/schemas/NumberFilterOneValue",
            "is-less-than-or-equal-to": "#/components/schemas/NumberFilterOneValue",
            "is-between": "#/components/schemas/NumberFilterRange",
            "is-empty": "#/components/schemas/NumberFilterNoValue",
            "is-not-empty": "#/components/schemas/NumberFilterNoValue"
          }
        }
      },
      "FilterableTextFilterMultiValues": {
        "title": "FilterableTextFilterMultiValues",
        "description": "Filter for filterable-text fields matching against one or more text values",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "filterable-text"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "enum": [
              "is-any-of",
              "is-none-of"
            ]
          },
          "value": {
            "description": "One or more text values to match against",
            "type": "array",
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "maxItems": 100
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator",
          "value"
        ],
        "additionalProperties": false
      },
      "FilterableTextFilterNoValue": {
        "title": "FilterableTextFilterNoValue",
        "description": "Filter for filterable-text fields based on presence or absence of a value",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "filterable-text"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "enum": [
              "is-empty",
              "is-not-empty"
            ]
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator"
        ],
        "additionalProperties": false
      },
      "FilterableTextFilter": {
        "title": "FilterableTextFilter",
        "description": "Filter for filterable-text fields (single-value structured text with predefined options)",
        "oneOf": [
          {
            "$ref": "#/components/schemas/FilterableTextFilterMultiValues"
          },
          {
            "$ref": "#/components/schemas/FilterableTextFilterNoValue"
          }
        ],
        "discriminator": {
          "propertyName": "operator",
          "mapping": {
            "is-any-of": "#/components/schemas/FilterableTextFilterMultiValues",
            "is-none-of": "#/components/schemas/FilterableTextFilterMultiValues",
            "is-empty": "#/components/schemas/FilterableTextFilterNoValue",
            "is-not-empty": "#/components/schemas/FilterableTextFilterNoValue"
          }
        }
      },
      "FilterableTextsFilterMultiValues": {
        "title": "FilterableTextsFilterMultiValues",
        "description": "Filter for filterable-text-multi fields matching against one or more text values",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "filterable-text-multi"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "enum": [
              "has-any-of",
              "has-none-of",
              "has-all-of"
            ]
          },
          "value": {
            "description": "One or more text values to match against",
            "type": "array",
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "maxItems": 100
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator",
          "value"
        ],
        "additionalProperties": false
      },
      "FilterableTextsFilterNoValue": {
        "title": "FilterableTextsFilterNoValue",
        "description": "Filter for filterable-text-multi fields based on presence or absence of a value",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "filterable-text-multi"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "enum": [
              "is-empty",
              "is-not-empty"
            ]
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator"
        ],
        "additionalProperties": false
      },
      "FilterableTextsFilter": {
        "title": "FilterableTextsFilter",
        "description": "Filter for filterable-text-multi fields (multi-value structured text with predefined options)",
        "oneOf": [
          {
            "$ref": "#/components/schemas/FilterableTextsFilterMultiValues"
          },
          {
            "$ref": "#/components/schemas/FilterableTextsFilterNoValue"
          }
        ],
        "discriminator": {
          "propertyName": "operator",
          "mapping": {
            "has-any-of": "#/components/schemas/FilterableTextsFilterMultiValues",
            "has-none-of": "#/components/schemas/FilterableTextsFilterMultiValues",
            "has-all-of": "#/components/schemas/FilterableTextsFilterMultiValues",
            "is-empty": "#/components/schemas/FilterableTextsFilterNoValue",
            "is-not-empty": "#/components/schemas/FilterableTextsFilterNoValue"
          }
        }
      },
      "TextFilterOneValue": {
        "title": "TextFilterOneValue",
        "description": "Filter for free-text fields using a string match against a single value",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "text"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "attributeId": {
            "description": "The ID of the attribute to filter on. Required for some fields such as relationship intelligence fields. Use `GET /v2/lists/{listId}/fields?includes=filterability` to discover which fields require an `attributeId` and what values are valid.",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "enum": [
              "contains",
              "does-not-contain",
              "starts-with",
              "ends-with"
            ]
          },
          "value": {
            "description": "The text string to match against",
            "type": "string"
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator",
          "value"
        ],
        "additionalProperties": false
      },
      "TextFilterNoValue": {
        "title": "TextFilterNoValue",
        "description": "Filter for free-text fields based on presence or absence of a value",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "text"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "attributeId": {
            "description": "The ID of the attribute to filter on. Required for some fields such as relationship intelligence fields. Use `GET /v2/lists/{listId}/fields?includes=filterability` to discover which fields require an `attributeId` and what values are valid.",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "enum": [
              "is-empty",
              "is-not-empty"
            ]
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator"
        ],
        "additionalProperties": false
      },
      "TextFilter": {
        "title": "TextFilter",
        "description": "Filter for free-text fields",
        "oneOf": [
          {
            "$ref": "#/components/schemas/TextFilterOneValue"
          },
          {
            "$ref": "#/components/schemas/TextFilterNoValue"
          }
        ],
        "discriminator": {
          "propertyName": "operator",
          "mapping": {
            "contains": "#/components/schemas/TextFilterOneValue",
            "does-not-contain": "#/components/schemas/TextFilterOneValue",
            "starts-with": "#/components/schemas/TextFilterOneValue",
            "ends-with": "#/components/schemas/TextFilterOneValue",
            "is-empty": "#/components/schemas/TextFilterNoValue",
            "is-not-empty": "#/components/schemas/TextFilterNoValue"
          }
        }
      },
      "LocationFilterValue": {
        "title": "LocationFilterValue",
        "type": "object",
        "properties": {
          "streetAddress": {
            "description": "Street address",
            "type": "string"
          },
          "city": {
            "description": "City",
            "type": "string"
          },
          "state": {
            "description": "State",
            "type": "string"
          },
          "country": {
            "description": "Country",
            "type": "string"
          },
          "continent": {
            "description": "Continent",
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "LocationFilterMultiValues": {
        "title": "LocationFilterMultiValues",
        "description": "Filter for single-location fields matching against one or more location values",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "location"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "enum": [
              "is-any-of",
              "is-none-of"
            ]
          },
          "value": {
            "description": "One or more locations to match against",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LocationFilterValue"
            },
            "minItems": 1,
            "maxItems": 100
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator",
          "value"
        ],
        "additionalProperties": false
      },
      "LocationFilterNoValue": {
        "title": "LocationFilterNoValue",
        "description": "Filter for single-location fields based on presence or absence of a value",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "location"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "enum": [
              "is-empty",
              "is-not-empty"
            ]
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator"
        ],
        "additionalProperties": false
      },
      "LocationFilter": {
        "title": "LocationFilter",
        "description": "Filter for single-location fields",
        "oneOf": [
          {
            "$ref": "#/components/schemas/LocationFilterMultiValues"
          },
          {
            "$ref": "#/components/schemas/LocationFilterNoValue"
          }
        ],
        "discriminator": {
          "propertyName": "operator",
          "mapping": {
            "is-any-of": "#/components/schemas/LocationFilterMultiValues",
            "is-none-of": "#/components/schemas/LocationFilterMultiValues",
            "is-empty": "#/components/schemas/LocationFilterNoValue",
            "is-not-empty": "#/components/schemas/LocationFilterNoValue"
          }
        }
      },
      "LocationsFilterMultiValues": {
        "title": "LocationsFilterMultiValues",
        "description": "Filter for multi-location fields matching against one or more location values",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "location-multi"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "enum": [
              "has-any-of",
              "has-none-of",
              "has-all-of"
            ]
          },
          "value": {
            "description": "One or more locations to match against",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LocationFilterValue"
            },
            "minItems": 1,
            "maxItems": 100
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator",
          "value"
        ],
        "additionalProperties": false
      },
      "LocationsFilterNoValue": {
        "title": "LocationsFilterNoValue",
        "description": "Filter for multi-location fields based on presence or absence of a value",
        "type": "object",
        "properties": {
          "valueType": {
            "description": "The type of the field value",
            "type": "string",
            "const": "location-multi"
          },
          "fieldId": {
            "description": "The ID of the field to filter on",
            "type": "string"
          },
          "operator": {
            "description": "The filter operator",
            "type": "string",
            "enum": [
              "is-empty",
              "is-not-empty"
            ]
          }
        },
        "required": [
          "valueType",
          "fieldId",
          "operator"
        ],
        "additionalProperties": false
      },
      "LocationsFilter": {
        "title": "LocationsFilter",
        "description": "Filter for multi-location fields",
        "oneOf": [
          {
            "$ref": "#/components/schemas/LocationsFilterMultiValues"
          },
          {
            "$ref": "#/components/schemas/LocationsFilterNoValue"
          }
        ],
        "discriminator": {
          "propertyName": "operator",
          "mapping": {
            "has-any-of": "#/components/schemas/LocationsFilterMultiValues",
            "has-none-of": "#/components/schemas/LocationsFilterMultiValues",
            "has-all-of": "#/components/schemas/LocationsFilterMultiValues",
            "is-empty": "#/components/schemas/LocationsFilterNoValue",
            "is-not-empty": "#/components/schemas/LocationsFilterNoValue"
          }
        }
      },
      "ValueFilter": {
        "title": "ValueFilter",
        "description": "A filter applied to a single field value. The `valueType` determines which filter variant applies and what operators and `value` shapes are valid.\nEach filter requires `fieldId`, `valueType`, and `operator`. The `value` field is required for most operators and absent for `is-empty` and `is-not-empty`. Some fields also require an `attributeId` — use the relevant fields endpoint for your resource type to discover available fields, their `valueType`, supported operators, and required `attributeId` values.",
        "anyOf": [
          {
            "$ref": "#/components/schemas/CompanyFilter"
          },
          {
            "$ref": "#/components/schemas/CompaniesFilter"
          },
          {
            "$ref": "#/components/schemas/PersonFilter"
          },
          {
            "$ref": "#/components/schemas/PersonsFilter"
          },
          {
            "$ref": "#/components/schemas/DropdownFilter"
          },
          {
            "$ref": "#/components/schemas/DropdownsFilter"
          },
          {
            "$ref": "#/components/schemas/RankedDropdownFilter"
          },
          {
            "$ref": "#/components/schemas/DateFilter"
          },
          {
            "$ref": "#/components/schemas/NumberFilter"
          },
          {
            "$ref": "#/components/schemas/FilterableTextFilter"
          },
          {
            "$ref": "#/components/schemas/FilterableTextsFilter"
          },
          {
            "$ref": "#/components/schemas/TextFilter"
          },
          {
            "$ref": "#/components/schemas/LocationFilter"
          },
          {
            "$ref": "#/components/schemas/LocationsFilter"
          }
        ],
        "discriminator": {
          "propertyName": "valueType",
          "mapping": {
            "company": "#/components/schemas/CompanyFilter",
            "company-multi": "#/components/schemas/CompaniesFilter",
            "person": "#/components/schemas/PersonFilter",
            "person-multi": "#/components/schemas/PersonsFilter",
            "dropdown": "#/components/schemas/DropdownFilter",
            "dropdown-multi": "#/components/schemas/DropdownsFilter",
            "ranked-dropdown": "#/components/schemas/RankedDropdownFilter",
            "date": "#/components/schemas/DateFilter",
            "number": "#/components/schemas/NumberFilter",
            "filterable-text": "#/components/schemas/FilterableTextFilter",
            "filterable-text-multi": "#/components/schemas/FilterableTextsFilter",
            "text": "#/components/schemas/TextFilter",
            "location": "#/components/schemas/LocationFilter",
            "location-multi": "#/components/schemas/LocationsFilter"
          }
        }
      },
      "FilterGroup": {
        "title": "FilterGroup",
        "description": "A logical group of filters combined with AND or OR. Groups can be nested to build complex filter trees. Each group may contain up to 50 items. Items can be individual filters or nested filter groups.",
        "type": "object",
        "properties": {
          "operator": {
            "description": "The logical operator applied to all filters in this group",
            "type": "string",
            "enum": [
              "and",
              "or"
            ]
          },
          "filters": {
            "description": "A list of filters or nested filter groups.",
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/ValueFilter"
                },
                {
                  "$ref": "#/components/schemas/FilterGroup"
                }
              ]
            },
            "minItems": 0,
            "maxItems": 50
          }
        },
        "required": [
          "operator",
          "filters"
        ],
        "additionalProperties": false
      },
      "SearchSort": {
        "title": "SearchSort",
        "description": "A single sort criterion. Up to 5 sorts may be specified and are applied in order. Use the relevant fields endpoint for your resource type to discover sortable fields and valid `attributeId` values.",
        "type": "object",
        "properties": {
          "fieldId": {
            "description": "The ID of the field to sort on",
            "type": "string",
            "minLength": 1
          },
          "attributeId": {
            "description": "The ID of the attribute to sort on. Required for some fields such as relationship intelligence fields. Use the relevant fields endpoint for your resource type to discover which fields require an `attributeId` and what values are valid.",
            "type": "string",
            "minLength": 1
          },
          "direction": {
            "description": "The sort direction",
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ]
          }
        },
        "required": [
          "fieldId",
          "direction"
        ],
        "additionalProperties": false
      },
      "SearchTerm": {
        "title": "SearchTerm",
        "description": "A single keyword or phrase to match against field values. Multiple terms or comma-separated values are not supported; use a single search string.",
        "type": "object",
        "properties": {
          "term": {
            "description": "The text to search for. Minimum 3 characters.",
            "type": "string",
            "minLength": 3
          },
          "fieldIds": {
            "description": "The IDs of additional fields to match the term against, extending the default identity search. Use the relevant fields endpoint for your resource type to discover available field IDs. Supports up to 100 field IDs.\n\nFields with a `valueType` of `datetime` are not searchable and are silently ignored if included.",
            "type": "array",
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "maxItems": 100
          }
        },
        "required": [
          "term"
        ],
        "additionalProperties": false
      },
      "SearchCriteria": {
        "title": "SearchCriteria",
        "description": "Search criteria for filtering, sorting, and searching. All fields are optional — omitting the body returns all results with default pagination.",
        "type": "object",
        "properties": {
          "filters": {
            "description": "A tree of filter conditions to apply. Supports nested AND/OR grouping. Use the relevant fields endpoint for your resource type to discover available fields, their `valueType`, and supported operators.",
            "$ref": "#/components/schemas/FilterGroup"
          },
          "sorts": {
            "description": "One or more sort criteria, applied in order. Supports up to 5 sort items. Use the relevant fields endpoint for your resource type to discover sortable fields.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SearchSort"
            },
            "minItems": 1,
            "maxItems": 5
          },
          "search": {
            "description": "An optional keyword to match against field values. Results must satisfy both the search term AND any provided filters (intersection). Only one search object may be provided. The term is always matched against the entity name and primary identifier; providing `fieldIds` extends the search to additional fields rather than replacing the identity match.",
            "$ref": "#/components/schemas/SearchTerm"
          }
        },
        "additionalProperties": false
      },
      "FieldPaged": {
        "title": "FieldPaged",
        "description": "FieldPaged model",
        "type": "object",
        "properties": {
          "data": {
            "description": "A page of Field results",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Field"
            },
            "maxItems": 100
          },
          "pagination": {
            "$ref": "#/components/schemas/Pagination"
          }
        },
        "required": [
          "data",
          "pagination"
        ]
      },
      "CompanyBatchOperationUpdateFields": {
        "title": "CompanyBatchOperationUpdateFields",
        "description": "Update multiple field values.",
        "type": "object",
        "properties": {
          "operation": {
            "type": "string",
            "const": "update-fields"
          },
          "updates": {
            "type": "array",
            "maxItems": 100,
            "items": {
              "$ref": "#/components/schemas/fields.FieldUpdate"
            }
          }
        },
        "required": [
          "operation",
          "updates"
        ]
      },
      "CompanyBatchOperationRequest": {
        "title": "CompanyBatchOperationRequest",
        "oneOf": [
          {
            "$ref": "#/components/schemas/CompanyBatchOperationUpdateFields"
          }
        ],
        "discriminator": {
          "propertyName": "operation",
          "mapping": {
            "update-fields": "#/components/schemas/CompanyBatchOperationUpdateFields"
          }
        }
      },
      "CompanyBatchOperations": {
        "title": "CompanyBatchOperations",
        "description": "The set of supported batch operation types for companies.",
        "type": "string",
        "enum": [
          "update-fields"
        ]
      },
      "CompanyBatchOperationResponse": {
        "title": "CompanyBatchOperationResponse",
        "description": "The response body for a single operation within a company batch request.",
        "type": "object",
        "properties": {
          "operation": {
            "description": "The type of batch operation that was performed on the company.",
            "$ref": "#/components/schemas/CompanyBatchOperations"
          }
        }
      },
      "FieldUpdate": {
        "title": "FieldUpdate",
        "type": "object",
        "properties": {
          "value": {
            "$ref": "#/components/schemas/FieldValueUpdate"
          }
        },
        "additionalProperties": false
      },
      "ListEntry": {
        "title": "ListEntry",
        "type": "object",
        "properties": {
          "id": {
            "description": "The list entry's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "listId": {
            "description": "The ID of the list that this list entry belongs to",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "listName": {
            "description": "The name of the list that this list entry belongs to",
            "type": "string",
            "example": "All companies"
          },
          "createdAt": {
            "description": "The date that the list entry was created",
            "type": "string",
            "format": "date-time",
            "example": "2023-01-01T00:00:00Z"
          },
          "creatorId": {
            "description": "The ID of the user that created this list entry",
            "type": [
              "integer",
              "null"
            ],
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "fields": {
            "description": "The fields associated with the list entry",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Field"
            }
          }
        },
        "required": [
          "createdAt",
          "creatorId",
          "fields",
          "id",
          "listId",
          "listName"
        ],
        "additionalProperties": false
      },
      "ListEntryPaged": {
        "title": "ListEntryPaged",
        "description": "ListEntryPaged model",
        "type": "object",
        "properties": {
          "data": {
            "description": "A page of ListEntry results",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListEntry"
            },
            "maxItems": 100
          },
          "pagination": {
            "$ref": "#/components/schemas/Pagination"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "additionalProperties": false
      },
      "List": {
        "title": "List",
        "type": "object",
        "properties": {
          "id": {
            "description": "The unique identifier for the list",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "name": {
            "description": "The name of the list",
            "type": "string",
            "example": "All companies"
          },
          "creatorId": {
            "description": "The ID of the user that created this list",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "ownerId": {
            "description": "The ID of the user that owns this list",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "isPublic": {
            "description": "Whether or not the list is public",
            "type": "boolean",
            "example": false
          },
          "createdAt": {
            "description": "The date and time the list was created",
            "type": "string",
            "format": "date-time",
            "example": "2024-03-07T20:21:42Z"
          }
        },
        "required": [
          "createdAt",
          "creatorId",
          "id",
          "isPublic",
          "name",
          "ownerId"
        ],
        "additionalProperties": false
      },
      "ListPaged": {
        "title": "ListPaged",
        "description": "ListPaged model",
        "type": "object",
        "properties": {
          "data": {
            "description": "A page of List results",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/List"
            },
            "maxItems": 100
          },
          "pagination": {
            "$ref": "#/components/schemas/Pagination"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "additionalProperties": false
      },
      "notes.Content": {
        "title": "notes.Content",
        "description": "A note content",
        "type": "object",
        "properties": {
          "html": {
            "description": "The HTML content of the note",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "html"
        ]
      },
      "notes.PersonMention": {
        "title": "notes.PersonMention",
        "description": "A person mentioned in a note.",
        "type": "object",
        "properties": {
          "id": {
            "description": "The id of the mention",
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 2147483647
          },
          "type": {
            "description": "The type of mention",
            "type": "string",
            "const": "person"
          },
          "person": {
            "$ref": "#/components/schemas/PersonData"
          }
        },
        "required": [
          "id",
          "type",
          "person"
        ],
        "example": {
          "id": 1,
          "type": "person",
          "person": {
            "id": 1,
            "firstName": "Jane",
            "lastName": "Smith",
            "primaryEmailAddress": "jane.smith@northpointvc.com",
            "type": "internal"
          }
        }
      },
      "notes.Mention": {
        "title": "notes.Mention",
        "description": "A mention in a note.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/notes.PersonMention"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "person": "#/components/schemas/notes.PersonMention"
          }
        }
      },
      "notes.BaseNote": {
        "title": "notes.BaseNote",
        "description": "An abstract base class for notes",
        "type": "object",
        "properties": {
          "id": {
            "description": "The id of the note",
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 2147483647
          },
          "content": {
            "$ref": "#/components/schemas/notes.Content"
          },
          "creator": {
            "$ref": "#/components/schemas/PersonData"
          },
          "mentions": {
            "description": "The mentions in the note",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/notes.Mention"
            },
            "maxItems": 100
          },
          "createdAt": {
            "description": "The date and time the note was created",
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "description": "The date and time the note was last updated",
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "content",
          "creator",
          "mentions",
          "createdAt",
          "updatedAt"
        ]
      },
      "Opportunity": {
        "title": "Opportunity",
        "description": "Opportunity model.",
        "type": "object",
        "properties": {
          "id": {
            "description": "The unique identifier for the opportunity",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "name": {
            "description": "The name of the opportunity. When `isRedacted` is `true`, the real name\nis masked and this value is the literal string `[Hidden]`.\n",
            "type": "string",
            "example": "Horizon Technologies Upsell $10k"
          },
          "listId": {
            "description": "The ID of the list that the opportunity belongs to",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "listName": {
            "description": "The name of the list that the opportunity belongs to",
            "type": "string",
            "example": "Pipeline Q1 2024"
          },
          "isRestricted": {
            "description": "Whether the opportunity is restricted. `false` for customers without\nthe Restricted Opportunities feature enabled.\n",
            "type": "boolean",
            "example": false
          },
          "isRedacted": {
            "description": "Whether the response is redacted because the requesting user does not\nhave access to this restricted opportunity. The real name is masked as\n`[Hidden]` when `true`. Always `false` when `isRestricted` is `false`.\n",
            "type": "boolean",
            "example": false
          }
        },
        "required": [
          "id",
          "listId",
          "listName",
          "name",
          "isRestricted",
          "isRedacted"
        ],
        "additionalProperties": false
      },
      "notes.OpportunitiesPreview": {
        "title": "notes.OpportunitiesPreview",
        "description": "A preview for Opportunities directly attached to the Note",
        "type": "object",
        "properties": {
          "data": {
            "description": "Preview of Opportunities directly attached to the Note",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Opportunity"
            },
            "maxItems": 100
          },
          "totalCount": {
            "description": "The total count of Opportunities directly attached to the Note",
            "type": "integer",
            "format": "int64",
            "minimum": 0,
            "maximum": 9007199254740991,
            "example": 42
          }
        }
      },
      "notes.PersonsPreview": {
        "title": "notes.PersonsPreview",
        "description": "A preview for Persons directly attached to the Note",
        "type": "object",
        "properties": {
          "data": {
            "description": "Preview of Persons directly attached to the Note",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PersonData"
            },
            "maxItems": 100
          },
          "totalCount": {
            "description": "The total count of Persons directly attached to the Note",
            "type": "integer",
            "format": "int64",
            "minimum": 0,
            "maximum": 9007199254740991,
            "example": 42
          }
        }
      },
      "notes.CompaniesPreview": {
        "title": "notes.CompaniesPreview",
        "description": "A preview for Companies directly attached to the Note",
        "type": "object",
        "properties": {
          "data": {
            "description": "Preview of Companies directly attached to the Note",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanyData"
            },
            "maxItems": 100
          },
          "totalCount": {
            "description": "The total count of Companies directly attached to the Note",
            "type": "integer",
            "format": "int64",
            "minimum": 0,
            "maximum": 9007199254740991,
            "example": 42
          }
        }
      },
      "notes.BaseRootNote": {
        "title": "notes.BaseRootNote",
        "description": "A root note",
        "allOf": [
          {
            "$ref": "#/components/schemas/notes.BaseNote"
          }
        ],
        "properties": {
          "repliesCount": {
            "description": "The number of replies to this note. This is only included if the `repliesCount` parameter is passed in the `includes` in the request and the note is not a reply itself.",
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 2147483647
          },
          "opportunitiesPreview": {
            "$ref": "#/components/schemas/notes.OpportunitiesPreview"
          },
          "personsPreview": {
            "$ref": "#/components/schemas/notes.PersonsPreview"
          },
          "companiesPreview": {
            "$ref": "#/components/schemas/notes.CompaniesPreview"
          }
        }
      },
      "notes.EntitiesNote": {
        "title": "notes.EntitiesNote",
        "description": "A Note object attached to an entity (Person, Company, Opportunity)",
        "allOf": [
          {
            "$ref": "#/components/schemas/notes.BaseRootNote"
          }
        ],
        "properties": {
          "type": {
            "description": "The type of the note",
            "type": "string",
            "const": "entities"
          }
        },
        "required": [
          "type"
        ],
        "example": {
          "id": 1,
          "type": "entities",
          "content": {
            "html": "<p>This is a note!</p>"
          },
          "creator": {
            "id": 1,
            "firstName": "Jane",
            "lastName": "Smith",
            "primaryEmailAddress": "jane.smith@northpointvc.com",
            "type": "internal"
          },
          "mentions": [],
          "createdAt": "2023-01-01T00:00:00Z",
          "updatedAt": "2023-01-21T00:00:00Z"
        }
      },
      "notes.MeetingInteraction": {
        "title": "notes.MeetingInteraction",
        "description": "This is a Meeting (Event) object attached to a note",
        "type": "object",
        "properties": {
          "id": {
            "description": "The id of the Meeting (Event)",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991
          },
          "type": {
            "description": "The type of the Interaction",
            "type": "string",
            "const": "meeting"
          }
        },
        "required": [
          "id",
          "type"
        ],
        "example": {
          "id": 1,
          "type": "meeting"
        }
      },
      "notes.CallInteraction": {
        "title": "notes.CallInteraction",
        "description": "This is a Call (Event) object attached to a note",
        "type": "object",
        "properties": {
          "id": {
            "description": "The id of the Call (Event)",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991
          },
          "type": {
            "description": "The type of the Interaction",
            "type": "string",
            "const": "call"
          }
        },
        "required": [
          "id",
          "type"
        ],
        "example": {
          "id": 1,
          "type": "call"
        }
      },
      "notes.ChatMessageInteraction": {
        "title": "notes.ChatMessageInteraction",
        "description": "A ChatMessage object attached to a note",
        "type": "object",
        "properties": {
          "id": {
            "description": "The id of the ChatMessage",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991
          },
          "type": {
            "description": "The type of the Interaction",
            "type": "string",
            "const": "chat-message"
          }
        },
        "required": [
          "id",
          "type"
        ],
        "example": {
          "id": 1,
          "type": "chat-message"
        }
      },
      "notes.EmailInteraction": {
        "title": "notes.EmailInteraction",
        "description": "This is an Email object attached to a note",
        "type": "object",
        "properties": {
          "id": {
            "description": "The id of the Email",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991
          },
          "type": {
            "description": "The type of the Interaction",
            "type": "string",
            "const": "email"
          }
        },
        "required": [
          "id",
          "type"
        ],
        "example": {
          "id": 1,
          "type": "email"
        }
      },
      "notes.Interaction": {
        "title": "notes.Interaction",
        "description": "An interaction attached to a Note. It can be a Meeting, a Call or an ChatMessage.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/notes.MeetingInteraction"
          },
          {
            "$ref": "#/components/schemas/notes.CallInteraction"
          },
          {
            "$ref": "#/components/schemas/notes.ChatMessageInteraction"
          },
          {
            "$ref": "#/components/schemas/notes.EmailInteraction"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "meeting": "#/components/schemas/notes.MeetingInteraction",
            "call": "#/components/schemas/notes.CallInteraction",
            "chat-message": "#/components/schemas/notes.ChatMessageInteraction",
            "email": "#/components/schemas/notes.EmailInteraction"
          }
        }
      },
      "notes.InteractionNote": {
        "title": "notes.InteractionNote",
        "description": "A Note object attached to an interaction (Email, Meeting, Call, ChatMessage)",
        "allOf": [
          {
            "$ref": "#/components/schemas/notes.BaseRootNote"
          }
        ],
        "properties": {
          "type": {
            "description": "The type of the note",
            "type": "string",
            "const": "interaction"
          },
          "interaction": {
            "$ref": "#/components/schemas/notes.Interaction"
          }
        },
        "required": [
          "type",
          "interaction"
        ],
        "example": {
          "id": 1,
          "type": "interaction",
          "content": {
            "html": "<p>This is a note!</p>"
          },
          "creator": {
            "id": 1,
            "firstName": "Jane",
            "lastName": "Smith",
            "primaryEmailAddress": "jane.smith@northpointvc.com",
            "type": "internal"
          },
          "mentions": [],
          "createdAt": "2023-01-01T00:00:00Z",
          "updatedAt": "2023-01-21T00:00:00Z",
          "interaction": {
            "id": 2,
            "type": "call"
          }
        }
      },
      "notes.AiNotetakerRootNote": {
        "title": "notes.AiNotetakerRootNote",
        "description": "A Root Note object created by the AI Notetaker",
        "allOf": [
          {
            "$ref": "#/components/schemas/notes.BaseRootNote"
          }
        ],
        "properties": {
          "type": {
            "description": "The type of the note",
            "type": "string",
            "const": "ai-notetaker"
          },
          "interaction": {
            "description": "The meeting this AI Notetaker was invited to.",
            "$ref": "#/components/schemas/notes.MeetingInteraction"
          },
          "transcriptId": {
            "description": "The id of the transcript of the AI notetaker note",
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 2147483647,
            "example": 1234
          }
        },
        "required": [
          "type",
          "transcriptId"
        ],
        "example": {
          "id": 1,
          "type": "ai-notetaker",
          "content": {
            "html": "<p>This is an AI Notetaker note!</p>"
          },
          "creator": {
            "id": 1,
            "firstName": "Jane",
            "lastName": "Smith",
            "primaryEmailAddress": "jane.smith@northpointvc.com",
            "type": "internal"
          },
          "transcriptId": 1,
          "mentions": [],
          "createdAt": "2023-01-01T00:00:00Z",
          "updatedAt": "2023-01-21T00:00:00Z"
        }
      },
      "notes.BaseReply": {
        "title": "notes.BaseReply",
        "description": "An abstract base class for note replies, either of a UserNoteReply or AiNotetakerNoteReply",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/notes.BaseNote"
          }
        ],
        "properties": {
          "parent": {
            "type": "object",
            "properties": {
              "id": {
                "description": "The id of the parent note",
                "type": "integer",
                "format": "int32",
                "minimum": 1,
                "maximum": 2147483647
              }
            },
            "required": [
              "id"
            ]
          }
        },
        "required": [
          "parent"
        ]
      },
      "notes.UserReplyNote": {
        "title": "notes.UserReplyNote",
        "description": "A reply to a note created by a user",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/notes.BaseReply"
          }
        ],
        "properties": {
          "type": {
            "description": "The type of the note",
            "type": "string",
            "const": "user-reply"
          }
        },
        "required": [
          "type"
        ],
        "example": {
          "id": 2,
          "type": "user-reply",
          "content": {
            "html": "<p>This is a user reply note!</p>"
          },
          "creator": {
            "id": 1,
            "firstName": "Jane",
            "lastName": "Smith",
            "primaryEmailAddress": "jane.smith@northpointvc.com",
            "type": "internal"
          },
          "mentions": [],
          "parent": {
            "id": 1
          },
          "createdAt": "2023-01-01T00:00:00Z",
          "updatedAt": "2023-01-21T00:00:00Z"
        }
      },
      "notes.AiNotetakerReplyNote": {
        "title": "notes.AiNotetakerReplyNote",
        "description": "A reply to a Note, created by an AI Notetaker",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/notes.BaseReply"
          }
        ],
        "properties": {
          "type": {
            "description": "The type of the note",
            "type": "string",
            "const": "ai-notetaker-reply"
          },
          "interaction": {
            "description": "The meeting this AI Notetaker was invited to.",
            "$ref": "#/components/schemas/notes.MeetingInteraction"
          },
          "transcriptId": {
            "description": "The id of the transcript of the AI notetaker reply note",
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 2147483647,
            "example": 1234
          }
        },
        "required": [
          "type",
          "transcriptId"
        ],
        "example": {
          "id": 2,
          "type": "ai-notetaker-reply",
          "content": {
            "html": "<p>This is an AI Notetaker reply note!</p>"
          },
          "creator": {
            "id": 1,
            "firstName": "Jane",
            "lastName": "Smith",
            "primaryEmailAddress": "jane.smith@northpointvc.com",
            "type": "internal"
          },
          "mentions": [],
          "transcriptId": 1,
          "parent": {
            "id": 1
          },
          "createdAt": "2023-01-01T00:00:00Z",
          "updatedAt": "2023-01-21T00:00:00Z"
        }
      },
      "notes.Note": {
        "title": "notes.Note",
        "description": "Note model",
        "oneOf": [
          {
            "$ref": "#/components/schemas/notes.EntitiesNote"
          },
          {
            "$ref": "#/components/schemas/notes.InteractionNote"
          },
          {
            "$ref": "#/components/schemas/notes.AiNotetakerRootNote"
          },
          {
            "$ref": "#/components/schemas/notes.UserReplyNote"
          },
          {
            "$ref": "#/components/schemas/notes.AiNotetakerReplyNote"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "entities": "#/components/schemas/notes.EntitiesNote",
            "interaction": "#/components/schemas/notes.InteractionNote",
            "ai-notetaker": "#/components/schemas/notes.AiNotetakerRootNote",
            "user-reply": "#/components/schemas/notes.UserReplyNote",
            "ai-notetaker-reply": "#/components/schemas/notes.AiNotetakerReplyNote"
          }
        }
      },
      "PaginationWithTotalCount": {
        "title": "PaginationWithTotalCount",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/Pagination"
          }
        ],
        "properties": {
          "totalCount": {
            "description": "The total count of the collection. Only included if requested via the totalCount query string parameter.",
            "type": "integer",
            "format": "int64",
            "minimum": 0,
            "maximum": 9007199254740991,
            "example": 42
          }
        }
      },
      "notes.NotesPaged": {
        "title": "notes.NotesPaged",
        "description": "NotesPaged model",
        "type": "object",
        "properties": {
          "data": {
            "description": "A page of Note objects",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/notes.Note"
            },
            "maxItems": 100
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationWithTotalCount"
          }
        },
        "required": [
          "data",
          "pagination"
        ]
      },
      "RelationshipPerson": {
        "title": "RelationshipPerson",
        "description": "A person involved in a relationship, including basic identifying information.",
        "type": "object",
        "properties": {
          "id": {
            "description": "The person's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "firstName": {
            "description": "The person's first name",
            "type": [
              "string",
              "null"
            ],
            "example": "Jane"
          },
          "lastName": {
            "description": "The person's last name",
            "type": [
              "string",
              "null"
            ],
            "example": "Doe"
          },
          "primaryEmailAddress": {
            "description": "The person's primary email address",
            "type": [
              "string",
              "null"
            ],
            "format": "email",
            "example": "jane.smith@northpointvc.com"
          }
        },
        "required": [
          "id",
          "firstName",
          "lastName",
          "primaryEmailAddress"
        ],
        "additionalProperties": false
      },
      "RelationshipLinkedIn": {
        "title": "RelationshipLinkedIn",
        "description": "LinkedIn connection details for the two persons in a relationship.",
        "type": "object",
        "properties": {
          "connectedOn": {
            "description": "The date the LinkedIn connection was established.",
            "type": "string",
            "format": "date",
            "example": "2024-01-01"
          }
        },
        "required": [
          "connectedOn"
        ],
        "additionalProperties": false
      },
      "Relationship": {
        "title": "Relationship",
        "description": "Represents a relationship between two persons, including the interaction score that measures the strength of their connection based on communication patterns.",
        "type": "object",
        "properties": {
          "person1": {
            "description": "The first person in this relationship",
            "$ref": "#/components/schemas/RelationshipPerson"
          },
          "person2": {
            "description": "The second person in this relationship",
            "$ref": "#/components/schemas/RelationshipPerson"
          },
          "interactionScore": {
            "description": "A score between 0.0 and 1.0 representing the strength of the relationship based on communication patterns such as emails, meetings, and other interactions. Higher scores indicate stronger relationships.",
            "type": "number",
            "format": "double",
            "minimum": 0,
            "maximum": 1,
            "example": 0.72
          },
          "linkedIn": {
            "description": "LinkedIn connection details for these two persons. Present whenever a LinkedIn connection exists between them, regardless of whether this relationship was derived from interaction data or the LinkedIn connection itself. `null` when no LinkedIn connection exists.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/RelationshipLinkedIn"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "person1",
          "person2",
          "interactionScore",
          "linkedIn"
        ],
        "additionalProperties": false,
        "example": {
          "person1": {
            "id": 100,
            "firstName": "Jane",
            "lastName": "Smith",
            "primaryEmailAddress": "jane.smith@northpointvc.com"
          },
          "person2": {
            "id": 200,
            "firstName": "John",
            "lastName": "Doe",
            "primaryEmailAddress": "john.doe@acme.co"
          },
          "interactionScore": 0.72,
          "linkedIn": {
            "connectedOn": "2024-01-01"
          }
        }
      },
      "RelationshipsPaged": {
        "title": "RelationshipsPaged",
        "description": "A paginated list of relationships",
        "type": "object",
        "properties": {
          "data": {
            "description": "A page of Relationship objects",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Relationship"
            },
            "maxItems": 100
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationWithTotalCount"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "additionalProperties": false
      },
      "CompanyMergeState": {
        "title": "CompanyMergeState",
        "description": "Entity representing the state of an individual company merge",
        "type": "object",
        "properties": {
          "id": {
            "description": "The unique identifier for the merge",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 12345
          },
          "status": {
            "description": "Current status of the merge",
            "type": "string",
            "enum": [
              "in-progress",
              "success",
              "failed"
            ],
            "example": "success"
          },
          "taskId": {
            "description": "Identifier for the task this merge belongs to",
            "type": "string",
            "format": "uuid",
            "example": "789e0123-e45b-67c8-d901-234567890123"
          },
          "startedAt": {
            "description": "Timestamp when the merge started",
            "type": "string",
            "format": "date-time",
            "example": "2025-06-03T10:30:00Z"
          },
          "primaryCompanyId": {
            "description": "ID of the primary company that other profiles were merged into",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 12345
          },
          "duplicateCompanyId": {
            "description": "ID of the duplicate company that was merged into the primary company",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 67890
          },
          "completedAt": {
            "description": "Timestamp when the merge completed (success or failure)",
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "example": "2025-06-03T10:32:15Z"
          },
          "errorMessage": {
            "description": "Error message if the merge failed",
            "type": [
              "string",
              "null"
            ],
            "example": "Primary company not found"
          }
        },
        "required": [
          "id",
          "status",
          "taskId",
          "startedAt",
          "primaryCompanyId",
          "duplicateCompanyId",
          "completedAt",
          "errorMessage"
        ],
        "additionalProperties": false
      },
      "CompanyMergeStatePaged": {
        "title": "CompanyMergeStatePaged",
        "description": "Paginated list of company merge states",
        "type": "object",
        "properties": {
          "data": {
            "description": "Array of company merge states",
            "type": "array",
            "maxItems": 100,
            "items": {
              "$ref": "#/components/schemas/CompanyMergeState"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/Pagination"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "additionalProperties": false
      },
      "CompanyMergeRequest": {
        "title": "CompanyMergeRequest",
        "description": "Request body for initiating a company merge",
        "type": "object",
        "properties": {
          "primaryCompanyId": {
            "description": "The ID of the company profile that will be kept after the merge. All data from the duplicate company will be merged into this company.",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 12345
          },
          "duplicateCompanyId": {
            "description": "The ID of the company profile that will be merged and then deleted. All data from this company will be transferred to the primary company.",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 67890
          }
        },
        "required": [
          "primaryCompanyId",
          "duplicateCompanyId"
        ],
        "additionalProperties": false
      },
      "CompanyMergeResponse": {
        "title": "CompanyMergeResponse",
        "description": "Response body for initiating a company merge",
        "type": "object",
        "properties": {
          "taskUrl": {
            "description": "URL to check the status of the merge task",
            "type": "string",
            "format": "uri",
            "example": "https://api.affinit.com/tasks/company-merges/123e4567-e89b-12d3-a456-426614174000"
          }
        },
        "required": [
          "taskUrl"
        ],
        "additionalProperties": false
      },
      "Person": {
        "title": "Person",
        "description": "Person model",
        "type": "object",
        "properties": {
          "id": {
            "description": "The persons's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "firstName": {
            "description": "The person's first name",
            "type": "string",
            "example": "Jane"
          },
          "lastName": {
            "description": "The person's last name",
            "type": [
              "string",
              "null"
            ],
            "example": "Doe"
          },
          "primaryEmailAddress": {
            "description": "The person's primary email address",
            "type": [
              "string",
              "null"
            ],
            "format": "email",
            "example": "jane.smith@northpointvc.com"
          },
          "emailAddresses": {
            "description": "All of the person's email addresses",
            "type": "array",
            "items": {
              "type": "string",
              "format": "email"
            },
            "example": [
              "jane.smith@northpointvc.com",
              "janedoe@gmail.com"
            ]
          },
          "type": {
            "description": "The person's type. `internal` - people who are users within your Affinity instance. `external` - people who are not internal.",
            "type": "string",
            "enum": [
              "internal",
              "external"
            ],
            "example": "internal"
          },
          "fields": {
            "description": "The fields associated with the person",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Field"
            }
          }
        },
        "required": [
          "emailAddresses",
          "firstName",
          "id",
          "lastName",
          "primaryEmailAddress",
          "type"
        ],
        "additionalProperties": false
      },
      "interactions.Email": {
        "title": "interactions.Email",
        "type": "object",
        "properties": {
          "id": {
            "description": "The email's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "sentAt": {
            "description": "The timestamp of when the email was sent",
            "type": "string",
            "format": "date-time",
            "example": "2023-01-01T00:00:00Z"
          },
          "loggingType": {
            "description": "Indicates how the interaction was added to Affinity: either manually by a user ('manual') or automatically through Affinity's capture process ('automated'). Currently, emails can only be logged as 'automated'.",
            "type": "string",
            "const": "automated",
            "example": "automated"
          },
          "direction": {
            "description": "The direction of the email: 'sent' if the email was sent by an internal user and  'received' if the email was sent to an internal user.",
            "type": "string",
            "enum": [
              "sent",
              "received"
            ],
            "example": "received"
          },
          "subject": {
            "description": "The email's subject. If the authenticated user does not have permission to see the subject, it is obfuscated and returned as `********` rather than the actual subject line.",
            "type": [
              "string",
              "null"
            ],
            "example": "Example subject"
          },
          "createdAt": {
            "description": "The timestamp of when the email was created",
            "type": "string",
            "format": "date-time",
            "example": "2023-01-01T00:00:00Z"
          },
          "updatedAt": {
            "description": "The timestamp of when the email was updated",
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "example": "2023-01-01T00:00:00Z"
          },
          "from": {
            "description": "The participant who sent the email",
            "$ref": "#/components/schemas/Attendee"
          },
          "toParticipantsPreview": {
            "description": "A preview of the participants in the 'To' field of the email",
            "$ref": "#/components/schemas/AttendeesPreview"
          },
          "ccParticipantsPreview": {
            "description": "A preview of the participants who are cc'ed in the email",
            "$ref": "#/components/schemas/AttendeesPreview"
          }
        },
        "required": [
          "id",
          "sentAt",
          "loggingType",
          "direction",
          "subject",
          "createdAt",
          "updatedAt",
          "from",
          "toParticipantsPreview",
          "ccParticipantsPreview"
        ],
        "additionalProperties": false
      },
      "interactions.EmailPaged": {
        "title": "interactions.EmailPaged",
        "description": "EmailPaged model",
        "type": "object",
        "properties": {
          "data": {
            "description": "A page of Email results",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/interactions.Email"
            },
            "maxItems": 100
          },
          "pagination": {
            "$ref": "#/components/schemas/Pagination"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "additionalProperties": false
      },
      "FeedbackRequest": {
        "title": "FeedbackRequest",
        "description": "Request body for sending feedback",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of feedback being submitted",
            "type": "string",
            "enum": [
              "mcp",
              "api",
              "other"
            ],
            "example": "mcp"
          },
          "subject": {
            "description": "Subject of the feedback",
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "New tool for MCP Server"
          },
          "body": {
            "description": "The details of the feedback, please be thorough and include examples of what you're trying to accomplish and how the product could be improved to support it.",
            "type": "string",
            "minLength": 1,
            "maxLength": 10000,
            "example": "I'd like to be able to update a note via the MCP Server"
          }
        },
        "required": [
          "type",
          "subject",
          "body"
        ],
        "additionalProperties": false
      },
      "fieldValueChanges.Field": {
        "title": "fieldValueChanges.Field",
        "type": "object",
        "properties": {
          "id": {
            "description": "The unique identifier of the field",
            "type": "string",
            "example": "field-1234"
          },
          "entityType": {
            "description": "The type of entity this field belongs to",
            "type": "string",
            "enum": [
              "person",
              "company",
              "opportunity"
            ],
            "example": "company"
          },
          "name": {
            "description": "The name of the field",
            "type": "string",
            "example": "Stage"
          },
          "type": {
            "description": "Whether this field is global or list-specific",
            "type": "string",
            "enum": [
              "global",
              "list"
            ],
            "example": "global"
          }
        },
        "required": [
          "id",
          "entityType",
          "name",
          "type"
        ],
        "additionalProperties": false
      },
      "fieldValueChanges.EntityReference": {
        "title": "fieldValueChanges.EntityReference",
        "type": "object",
        "properties": {
          "id": {
            "description": "The entity's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      },
      "fieldValueChanges.ListEntry": {
        "title": "fieldValueChanges.ListEntry",
        "type": "object",
        "properties": {
          "id": {
            "description": "The list entry's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "listId": {
            "description": "The ID of the list that this list entry belongs to",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          }
        },
        "required": [
          "id",
          "listId"
        ],
        "additionalProperties": false
      },
      "fieldValueChanges.FieldValueChangeBase": {
        "title": "fieldValueChanges.FieldValueChangeBase",
        "type": "object",
        "properties": {
          "id": {
            "description": "The unique identifier of this field value change record",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 42
          },
          "field": {
            "description": "The field whose value changed.",
            "$ref": "#/components/schemas/fieldValueChanges.Field"
          },
          "entity": {
            "description": "The entity that the field value change occurred in.",
            "$ref": "#/components/schemas/fieldValueChanges.EntityReference"
          },
          "listEntry": {
            "description": "The list entry that the field value change occurred in.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/fieldValueChanges.ListEntry"
              },
              {
                "type": "null"
              }
            ]
          },
          "changer": {
            "description": "The user who made this change. `null` for system-generated changes (e.g. enrichment updates).",
            "oneOf": [
              {
                "$ref": "#/components/schemas/User"
              },
              {
                "type": "null"
              }
            ]
          },
          "changedAt": {
            "description": "When the field value change occurred",
            "type": "string",
            "format": "date-time",
            "example": "2024-06-01T12:00:00Z"
          },
          "actionType": {
            "description": "The type of change. `add` — a value was set for the first time or added to a multi-value field. `update` — an existing single-value field was changed. `delete` — a value was cleared or removed from a multi-value field. Multi-value field types (`person-multi`, `company-multi`, `dropdown-multi`, `number-multi`, `location-multi`, `filterable-text-multi`) only produce `add` or `delete` actions; they never produce `update`.",
            "type": "string",
            "enum": [
              "add",
              "update",
              "delete"
            ],
            "example": "update"
          }
        },
        "required": [
          "id",
          "field",
          "entity",
          "listEntry",
          "changer",
          "changedAt",
          "actionType"
        ]
      },
      "fieldValueChanges.CompanyEntityData": {
        "title": "fieldValueChanges.CompanyEntityData",
        "description": "A live company reference in the context of a field value change.",
        "type": "object",
        "properties": {
          "referenceType": {
            "description": "Indicates this is a live entity reference",
            "type": "string",
            "const": "entity"
          },
          "id": {
            "description": "The company's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "name": {
            "description": "The company's name",
            "type": "string",
            "example": "Horizon Technologies"
          },
          "domain": {
            "description": "The company's primary domain",
            "type": [
              "string",
              "null"
            ],
            "format": "hostname",
            "example": "horizontech.com"
          }
        },
        "required": [
          "referenceType",
          "id",
          "name",
          "domain"
        ],
        "additionalProperties": false
      },
      "fieldValueChanges.DeletedEntityReference": {
        "title": "fieldValueChanges.DeletedEntityReference",
        "description": "A fallback representation used when the referenced entity (person, company, dropdown option, or ranked-dropdown option) has been deleted from Affinity after the change was recorded. The `displayValue` is a text snapshot captured at the time the change occurred.",
        "type": "object",
        "properties": {
          "referenceType": {
            "description": "Indicates this is a deleted entity reference",
            "type": "string",
            "const": "deleted-entity"
          },
          "displayValue": {
            "description": "Text representation of the referenced entity at the time the change was recorded",
            "type": "string",
            "example": "Jane Doe"
          }
        },
        "required": [
          "referenceType",
          "displayValue"
        ],
        "additionalProperties": false
      },
      "fieldValueChanges.CompanyValueChange": {
        "title": "fieldValueChanges.CompanyValueChange",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/fieldValueChanges.FieldValueChangeBase"
          }
        ],
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "company"
          },
          "value": {
            "description": "The company value. When the company has been deleted from Affinity after the change was recorded, a `DeletedEntityReference` with a `displayValue` snapshot is returned instead.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/fieldValueChanges.CompanyEntityData"
              },
              {
                "$ref": "#/components/schemas/fieldValueChanges.DeletedEntityReference"
              }
            ],
            "discriminator": {
              "propertyName": "referenceType",
              "mapping": {
                "entity": "#/components/schemas/fieldValueChanges.CompanyEntityData",
                "deleted-entity": "#/components/schemas/fieldValueChanges.DeletedEntityReference"
              }
            }
          }
        },
        "required": [
          "type",
          "value"
        ],
        "unevaluatedProperties": false
      },
      "fieldValueChanges.CompanyMultiValueChange": {
        "title": "fieldValueChanges.CompanyMultiValueChange",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/fieldValueChanges.FieldValueChangeBase"
          }
        ],
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "company-multi"
          },
          "value": {
            "description": "The company value. When the company has been deleted from Affinity after the change was recorded, a `DeletedEntityReference` with a `displayValue` snapshot is returned instead.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/fieldValueChanges.CompanyEntityData"
              },
              {
                "$ref": "#/components/schemas/fieldValueChanges.DeletedEntityReference"
              }
            ],
            "discriminator": {
              "propertyName": "referenceType",
              "mapping": {
                "entity": "#/components/schemas/fieldValueChanges.CompanyEntityData",
                "deleted-entity": "#/components/schemas/fieldValueChanges.DeletedEntityReference"
              }
            }
          }
        },
        "required": [
          "type",
          "value"
        ],
        "unevaluatedProperties": false
      },
      "fieldValueChanges.DatetimeValueChange": {
        "title": "fieldValueChanges.DatetimeValueChange",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/fieldValueChanges.FieldValueChangeBase"
          }
        ],
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "datetime"
          },
          "value": {
            "description": "The datetime value.",
            "type": "string",
            "format": "date-time",
            "example": "2024-01-15T00:00:00Z"
          }
        },
        "required": [
          "type",
          "value"
        ],
        "unevaluatedProperties": false
      },
      "fieldValueChanges.DropdownEntityData": {
        "title": "fieldValueChanges.DropdownEntityData",
        "description": "A live dropdown option reference in the context of a field value change.",
        "type": "object",
        "properties": {
          "referenceType": {
            "description": "Indicates this is a live entity reference",
            "type": "string",
            "const": "entity"
          },
          "dropdownOptionId": {
            "description": "Dropdown item's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "text": {
            "description": "Dropdown item text",
            "type": "string",
            "example": "first"
          }
        },
        "required": [
          "referenceType",
          "dropdownOptionId",
          "text"
        ],
        "additionalProperties": false
      },
      "fieldValueChanges.DropdownValueChange": {
        "title": "fieldValueChanges.DropdownValueChange",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/fieldValueChanges.FieldValueChangeBase"
          }
        ],
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "dropdown"
          },
          "value": {
            "description": "The dropdown option value. When the dropdown option has been deleted from Affinity after the change was recorded, a `DeletedEntityReference` with a `displayValue` snapshot is returned instead.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/fieldValueChanges.DropdownEntityData"
              },
              {
                "$ref": "#/components/schemas/fieldValueChanges.DeletedEntityReference"
              }
            ],
            "discriminator": {
              "propertyName": "referenceType",
              "mapping": {
                "entity": "#/components/schemas/fieldValueChanges.DropdownEntityData",
                "deleted-entity": "#/components/schemas/fieldValueChanges.DeletedEntityReference"
              }
            }
          }
        },
        "required": [
          "type",
          "value"
        ],
        "unevaluatedProperties": false
      },
      "fieldValueChanges.DropdownMultiValueChange": {
        "title": "fieldValueChanges.DropdownMultiValueChange",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/fieldValueChanges.FieldValueChangeBase"
          }
        ],
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "dropdown-multi"
          },
          "value": {
            "description": "The dropdown option value. When the dropdown option has been deleted from Affinity after the change was recorded, a `DeletedEntityReference` with a `displayValue` snapshot is returned instead.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/fieldValueChanges.DropdownEntityData"
              },
              {
                "$ref": "#/components/schemas/fieldValueChanges.DeletedEntityReference"
              }
            ],
            "discriminator": {
              "propertyName": "referenceType",
              "mapping": {
                "entity": "#/components/schemas/fieldValueChanges.DropdownEntityData",
                "deleted-entity": "#/components/schemas/fieldValueChanges.DeletedEntityReference"
              }
            }
          }
        },
        "required": [
          "type",
          "value"
        ],
        "unevaluatedProperties": false
      },
      "fieldValueChanges.FilterableTextValueChange": {
        "title": "fieldValueChanges.FilterableTextValueChange",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/fieldValueChanges.FieldValueChangeBase"
          }
        ],
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "filterable-text"
          },
          "value": {
            "description": "The filterable text value.",
            "type": "string",
            "example": "Acme Corp"
          }
        },
        "required": [
          "type",
          "value"
        ],
        "unevaluatedProperties": false
      },
      "fieldValueChanges.FilterableTextMultiValueChange": {
        "title": "fieldValueChanges.FilterableTextMultiValueChange",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/fieldValueChanges.FieldValueChangeBase"
          }
        ],
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "filterable-text-multi"
          },
          "value": {
            "description": "The filterable text value.",
            "type": "string",
            "example": "Tag A"
          }
        },
        "required": [
          "type",
          "value"
        ],
        "unevaluatedProperties": false
      },
      "fieldValueChanges.LocationValueChange": {
        "title": "fieldValueChanges.LocationValueChange",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/fieldValueChanges.FieldValueChangeBase"
          }
        ],
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "location"
          },
          "value": {
            "description": "The location value.",
            "$ref": "#/components/schemas/Location"
          }
        },
        "required": [
          "type",
          "value"
        ],
        "unevaluatedProperties": false
      },
      "fieldValueChanges.LocationMultiValueChange": {
        "title": "fieldValueChanges.LocationMultiValueChange",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/fieldValueChanges.FieldValueChangeBase"
          }
        ],
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "location-multi"
          },
          "value": {
            "description": "The location value.",
            "$ref": "#/components/schemas/Location"
          }
        },
        "required": [
          "type",
          "value"
        ],
        "unevaluatedProperties": false
      },
      "fieldValueChanges.NumberValueChange": {
        "title": "fieldValueChanges.NumberValueChange",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/fieldValueChanges.FieldValueChangeBase"
          }
        ],
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "number"
          },
          "value": {
            "description": "The number value.",
            "type": "number",
            "format": "double",
            "example": 42.5
          }
        },
        "required": [
          "type",
          "value"
        ],
        "unevaluatedProperties": false
      },
      "fieldValueChanges.NumberMultiValueChange": {
        "title": "fieldValueChanges.NumberMultiValueChange",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/fieldValueChanges.FieldValueChangeBase"
          }
        ],
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "number-multi"
          },
          "value": {
            "description": "The number value.",
            "type": "number",
            "format": "double",
            "example": 100
          }
        },
        "required": [
          "type",
          "value"
        ],
        "unevaluatedProperties": false
      },
      "fieldValueChanges.PersonEntityData": {
        "title": "fieldValueChanges.PersonEntityData",
        "description": "A live person reference in the context of a field value change.",
        "type": "object",
        "properties": {
          "referenceType": {
            "description": "Indicates this is a live entity reference",
            "type": "string",
            "const": "entity"
          },
          "id": {
            "description": "The person's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "firstName": {
            "description": "The person's first name",
            "type": [
              "string",
              "null"
            ],
            "example": "Jane"
          },
          "lastName": {
            "description": "The person's last name",
            "type": [
              "string",
              "null"
            ],
            "example": "Doe"
          },
          "primaryEmailAddress": {
            "description": "The person's primary email address",
            "type": [
              "string",
              "null"
            ],
            "format": "email",
            "example": "jane.smith@northpointvc.com"
          },
          "type": {
            "description": "The person's type. `internal` - people who are users within your Affinity instance. `collaborator` - individuals outside of your company who have read-only access to specified Affinity list views and stay updated on your firm's activities. `external` - people who are not internal nor collaborators.",
            "type": "string",
            "enum": [
              "internal",
              "collaborator",
              "external"
            ],
            "example": "internal"
          }
        },
        "required": [
          "referenceType",
          "id",
          "firstName",
          "lastName",
          "primaryEmailAddress",
          "type"
        ],
        "additionalProperties": false
      },
      "fieldValueChanges.PersonValueChange": {
        "title": "fieldValueChanges.PersonValueChange",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/fieldValueChanges.FieldValueChangeBase"
          }
        ],
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "person"
          },
          "value": {
            "description": "The person value. When the person has been deleted from Affinity after the change was recorded, a `DeletedEntityReference` with a `displayValue` snapshot is returned instead.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/fieldValueChanges.PersonEntityData"
              },
              {
                "$ref": "#/components/schemas/fieldValueChanges.DeletedEntityReference"
              }
            ],
            "discriminator": {
              "propertyName": "referenceType",
              "mapping": {
                "entity": "#/components/schemas/fieldValueChanges.PersonEntityData",
                "deleted-entity": "#/components/schemas/fieldValueChanges.DeletedEntityReference"
              }
            }
          }
        },
        "required": [
          "type",
          "value"
        ],
        "unevaluatedProperties": false
      },
      "fieldValueChanges.PersonMultiValueChange": {
        "title": "fieldValueChanges.PersonMultiValueChange",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/fieldValueChanges.FieldValueChangeBase"
          }
        ],
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "person-multi"
          },
          "value": {
            "description": "The person value. When the person has been deleted from Affinity after the change was recorded, a `DeletedEntityReference` with a `displayValue` snapshot is returned instead.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/fieldValueChanges.PersonEntityData"
              },
              {
                "$ref": "#/components/schemas/fieldValueChanges.DeletedEntityReference"
              }
            ],
            "discriminator": {
              "propertyName": "referenceType",
              "mapping": {
                "entity": "#/components/schemas/fieldValueChanges.PersonEntityData",
                "deleted-entity": "#/components/schemas/fieldValueChanges.DeletedEntityReference"
              }
            }
          }
        },
        "required": [
          "type",
          "value"
        ],
        "unevaluatedProperties": false
      },
      "fieldValueChanges.RankedDropdownEntityData": {
        "title": "fieldValueChanges.RankedDropdownEntityData",
        "description": "A live ranked dropdown option reference in the context of a field value change.",
        "type": "object",
        "properties": {
          "referenceType": {
            "description": "Indicates this is a live entity reference",
            "type": "string",
            "const": "entity"
          },
          "dropdownOptionId": {
            "description": "Dropdown item's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "text": {
            "description": "Dropdown item text",
            "type": "string",
            "example": "first"
          },
          "rank": {
            "description": "Dropdown item rank",
            "type": "integer",
            "format": "int64",
            "minimum": 0,
            "maximum": 9007199254740991,
            "example": 0
          },
          "color": {
            "description": "Dropdown item color",
            "type": [
              "string",
              "null"
            ],
            "example": "white"
          }
        },
        "required": [
          "referenceType",
          "dropdownOptionId",
          "text",
          "rank",
          "color"
        ],
        "additionalProperties": false
      },
      "fieldValueChanges.RankedDropdownValueChange": {
        "title": "fieldValueChanges.RankedDropdownValueChange",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/fieldValueChanges.FieldValueChangeBase"
          }
        ],
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "ranked-dropdown"
          },
          "value": {
            "description": "The ranked dropdown option value. When the dropdown option has been deleted from Affinity after the change was recorded, a `DeletedEntityReference` with a `displayValue` snapshot is returned instead.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/fieldValueChanges.RankedDropdownEntityData"
              },
              {
                "$ref": "#/components/schemas/fieldValueChanges.DeletedEntityReference"
              }
            ],
            "discriminator": {
              "propertyName": "referenceType",
              "mapping": {
                "entity": "#/components/schemas/fieldValueChanges.RankedDropdownEntityData",
                "deleted-entity": "#/components/schemas/fieldValueChanges.DeletedEntityReference"
              }
            }
          }
        },
        "required": [
          "type",
          "value"
        ],
        "unevaluatedProperties": false
      },
      "fieldValueChanges.TextValueChange": {
        "title": "fieldValueChanges.TextValueChange",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/fieldValueChanges.FieldValueChangeBase"
          }
        ],
        "properties": {
          "type": {
            "description": "The type of value",
            "type": "string",
            "const": "text"
          },
          "value": {
            "description": "The text value. Values longer than 2 000 characters may be truncated due to infrastructure limits.",
            "type": "string",
            "example": "This is a long-form text field value."
          }
        },
        "required": [
          "type",
          "value"
        ],
        "unevaluatedProperties": false
      },
      "fieldValueChanges.FieldValueChange": {
        "title": "fieldValueChanges.FieldValueChange",
        "oneOf": [
          {
            "$ref": "#/components/schemas/fieldValueChanges.CompanyValueChange"
          },
          {
            "$ref": "#/components/schemas/fieldValueChanges.CompanyMultiValueChange"
          },
          {
            "$ref": "#/components/schemas/fieldValueChanges.DatetimeValueChange"
          },
          {
            "$ref": "#/components/schemas/fieldValueChanges.DropdownValueChange"
          },
          {
            "$ref": "#/components/schemas/fieldValueChanges.DropdownMultiValueChange"
          },
          {
            "$ref": "#/components/schemas/fieldValueChanges.FilterableTextValueChange"
          },
          {
            "$ref": "#/components/schemas/fieldValueChanges.FilterableTextMultiValueChange"
          },
          {
            "$ref": "#/components/schemas/fieldValueChanges.LocationValueChange"
          },
          {
            "$ref": "#/components/schemas/fieldValueChanges.LocationMultiValueChange"
          },
          {
            "$ref": "#/components/schemas/fieldValueChanges.NumberValueChange"
          },
          {
            "$ref": "#/components/schemas/fieldValueChanges.NumberMultiValueChange"
          },
          {
            "$ref": "#/components/schemas/fieldValueChanges.PersonValueChange"
          },
          {
            "$ref": "#/components/schemas/fieldValueChanges.PersonMultiValueChange"
          },
          {
            "$ref": "#/components/schemas/fieldValueChanges.RankedDropdownValueChange"
          },
          {
            "$ref": "#/components/schemas/fieldValueChanges.TextValueChange"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "company": "#/components/schemas/fieldValueChanges.CompanyValueChange",
            "company-multi": "#/components/schemas/fieldValueChanges.CompanyMultiValueChange",
            "datetime": "#/components/schemas/fieldValueChanges.DatetimeValueChange",
            "dropdown": "#/components/schemas/fieldValueChanges.DropdownValueChange",
            "dropdown-multi": "#/components/schemas/fieldValueChanges.DropdownMultiValueChange",
            "filterable-text": "#/components/schemas/fieldValueChanges.FilterableTextValueChange",
            "filterable-text-multi": "#/components/schemas/fieldValueChanges.FilterableTextMultiValueChange",
            "location": "#/components/schemas/fieldValueChanges.LocationValueChange",
            "location-multi": "#/components/schemas/fieldValueChanges.LocationMultiValueChange",
            "number": "#/components/schemas/fieldValueChanges.NumberValueChange",
            "number-multi": "#/components/schemas/fieldValueChanges.NumberMultiValueChange",
            "person": "#/components/schemas/fieldValueChanges.PersonValueChange",
            "person-multi": "#/components/schemas/fieldValueChanges.PersonMultiValueChange",
            "ranked-dropdown": "#/components/schemas/fieldValueChanges.RankedDropdownValueChange",
            "text": "#/components/schemas/fieldValueChanges.TextValueChange"
          }
        }
      },
      "fieldValueChanges.FieldValueChangePaged": {
        "title": "fieldValueChanges.FieldValueChangePaged",
        "type": "object",
        "properties": {
          "data": {
            "description": "The field value changes for this page",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/fieldValueChanges.FieldValueChange"
            },
            "maxItems": 100
          },
          "pagination": {
            "$ref": "#/components/schemas/Pagination"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "additionalProperties": false
      },
      "files.KeywordSearchCriteria": {
        "title": "files.KeywordSearchCriteria",
        "anyOf": [
          {
            "title": "File Keyword Search Criteria (org-wide or by file IDs)",
            "description": "Search all files in the org, or limit to specific file IDs.",
            "type": "object",
            "properties": {
              "prompt": {
                "description": "The search query. Returns up to `limit` files ordered by relevance. Prompts with\nno strong matches may still return low-relevance results.\n",
                "type": "string",
                "minLength": 3,
                "maxLength": 500,
                "example": "revenue projections pitch deck",
                "examples": [
                  "revenue projections pitch deck"
                ]
              },
              "fileIds": {
                "description": "Limit search to these specific files. Omit for org-wide search.",
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32",
                  "minimum": 1,
                  "maximum": 2147483647
                },
                "maxItems": 100,
                "examples": [
                  [
                    1,
                    2
                  ]
                ]
              },
              "limit": {
                "description": "Maximum number of files to return.",
                "type": "integer",
                "format": "int32",
                "minimum": 1,
                "maximum": 100,
                "default": 20,
                "example": 20
              }
            },
            "required": [
              "prompt"
            ],
            "additionalProperties": false
          },
          {
            "title": "File Keyword Search Criteria (by company)",
            "description": "Search files associated with a specific company.",
            "type": "object",
            "properties": {
              "prompt": {
                "description": "The search query. Returns up to `limit` files ordered by relevance. Prompts with\nno strong matches may still return low-relevance results.\n",
                "type": "string",
                "minLength": 3,
                "maxLength": 500,
                "example": "revenue projections pitch deck",
                "examples": [
                  "revenue projections pitch deck"
                ]
              },
              "companyId": {
                "description": "Restrict search to files associated with this company.",
                "type": "integer",
                "format": "int64",
                "minimum": 1,
                "maximum": 9007199254740991,
                "example": 1
              },
              "limit": {
                "description": "Maximum number of files to return.",
                "type": "integer",
                "format": "int32",
                "minimum": 1,
                "maximum": 100,
                "default": 20,
                "example": 20
              }
            },
            "required": [
              "prompt"
            ],
            "additionalProperties": false
          }
        ]
      },
      "files.SearchResult": {
        "title": "files.SearchResult",
        "description": "A matched file and a matching passage. Each file appears at most once per response, regardless of how many passages matched.",
        "type": "object",
        "properties": {
          "file": {
            "description": "The matched file.",
            "type": "object",
            "properties": {
              "id": {
                "description": "The file's unique identifier.",
                "type": "integer",
                "format": "int32",
                "minimum": 1,
                "maximum": 2147483647,
                "examples": [
                  1
                ]
              },
              "name": {
                "description": "The file name.",
                "type": "string",
                "example": "pitch-deck-q3-2024.pdf",
                "examples": [
                  "pitch-deck-q3-2024.pdf"
                ]
              }
            },
            "required": [
              "id",
              "name"
            ],
            "additionalProperties": false
          },
          "pageNumber": {
            "description": "The page where this passage was found. Null for files without page structure.",
            "type": [
              "integer",
              "null"
            ],
            "format": "int32",
            "minimum": 1,
            "maximum": 10000,
            "example": 3,
            "examples": [
              3
            ]
          },
          "preview": {
            "description": "The matching passage, up to 2,000 characters.",
            "type": "string",
            "maxLength": 2000,
            "example": "Projected ARR of $12M by end of Q4 2024, with 80% gross margin.",
            "examples": [
              "Projected ARR of $12M by end of Q4 2024, with 80% gross margin."
            ]
          }
        },
        "required": [
          "file",
          "pageNumber",
          "preview"
        ],
        "additionalProperties": false
      },
      "files.KeywordSearchResult": {
        "title": "files.KeywordSearchResult",
        "description": "Results of a keyword search over files.",
        "type": "object",
        "properties": {
          "data": {
            "description": "Matching file results, one per file, ordered by relevance.",
            "type": "array",
            "maxItems": 100,
            "items": {
              "$ref": "#/components/schemas/files.SearchResult"
            }
          }
        },
        "required": [
          "data"
        ],
        "additionalProperties": false
      },
      "InferredConnectionCompanyRef": {
        "title": "InferredConnectionCompanyRef",
        "description": "A reference to a company that appears in an inferred connection.",
        "type": "object",
        "properties": {
          "id": {
            "description": "The company's unique identifier.",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 123
          },
          "name": {
            "description": "The company's name.",
            "type": [
              "string",
              "null"
            ]
          },
          "domain": {
            "description": "The company's primary domain, or `null` when not known.",
            "type": [
              "string",
              "null"
            ],
            "example": "acme.com"
          }
        },
        "required": [
          "id",
          "name",
          "domain"
        ],
        "additionalProperties": false
      },
      "InferredConnectionTarget": {
        "title": "InferredConnectionTarget",
        "description": "The `target` of an inferred connection: the person who is not in your Affinity data, described only (no `id`). Includes the company they currently work at, where they are a potential contact now.",
        "type": "object",
        "properties": {
          "fullName": {
            "description": "The person's full name, or `null` when not known.",
            "type": [
              "string",
              "null"
            ],
            "example": "Bob Lee"
          },
          "title": {
            "description": "The person's current job title, or `null` when not known.",
            "type": [
              "string",
              "null"
            ],
            "example": "CEO"
          },
          "linkedinUrl": {
            "description": "A link to the person's LinkedIn profile, or `null` when not known.",
            "type": [
              "string",
              "null"
            ],
            "example": "https://www.linkedin.com/in/boblee"
          },
          "currentCompany": {
            "description": "The company the person works at today, at which they are a potential contact now. Filterable by `target.currentCompany.id`.",
            "$ref": "#/components/schemas/InferredConnectionCompanyRef"
          }
        },
        "required": [
          "fullName",
          "title",
          "linkedinUrl",
          "currentCompany"
        ],
        "additionalProperties": false
      },
      "CoworkerInference": {
        "title": "CoworkerInference",
        "description": "The belief that the source and target worked together: they were employed at the same company at the same time. The `sharedEmployer` is that company; `overlapStartDate` and `overlapEndDate` bound the period their employment overlapped.",
        "type": "object",
        "properties": {
          "sharedEmployer": {
            "description": "The company at which the source and target were employed at the same time.",
            "$ref": "#/components/schemas/InferredConnectionCompanyRef"
          },
          "overlapStartDate": {
            "description": "The first date on which the source and target were both employed at the `sharedEmployer`.",
            "type": "string",
            "format": "date",
            "example": "2018-03-01"
          },
          "overlapEndDate": {
            "description": "The last date on which the source and target were both employed at the `sharedEmployer`.",
            "type": "string",
            "format": "date",
            "example": "2020-11-30"
          }
        },
        "required": [
          "sharedEmployer",
          "overlapStartDate",
          "overlapEndDate"
        ],
        "additionalProperties": false,
        "example": {
          "sharedEmployer": {
            "id": 555,
            "name": "Globex",
            "domain": "globex.com"
          },
          "overlapStartDate": "2018-03-01",
          "overlapEndDate": "2020-11-30"
        }
      },
      "CoworkerConnection": {
        "title": "CoworkerConnection",
        "description": "A single inferred connection to a target, based on shared work history. The `source` is the person in your Affinity data who might know the target; `inference` describes the shared employment behind it.",
        "type": "object",
        "properties": {
          "source": {
            "description": "The person in your Affinity data, whom you know.",
            "$ref": "#/components/schemas/RelationshipPerson"
          },
          "inference": {
            "description": "The shared work history behind the connection.",
            "$ref": "#/components/schemas/CoworkerInference"
          }
        },
        "required": [
          "source",
          "inference"
        ],
        "additionalProperties": false,
        "example": {
          "source": {
            "id": 42,
            "firstName": "Alice",
            "lastName": "Roe",
            "primaryEmailAddress": "alice@northpointvc.com"
          },
          "inference": {
            "sharedEmployer": {
              "id": 555,
              "name": "Globex",
              "domain": "globex.com"
            },
            "overlapStartDate": "2018-03-01",
            "overlapEndDate": "2020-11-30"
          }
        }
      },
      "CoworkerConnectionGroup": {
        "title": "CoworkerConnectionGroup",
        "description": "A target person together with every shared-work-history connection inferred to them. The same target can be reachable through several people you know, so the connections to one target are grouped here under that target.",
        "type": "object",
        "properties": {
          "target": {
            "description": "The person not in your Affinity data, whom you want to know.",
            "$ref": "#/components/schemas/InferredConnectionTarget"
          },
          "connections": {
            "description": "The shared-work-history connections to this target, ordered strongest first.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CoworkerConnection"
            },
            "minItems": 1,
            "maxItems": 50
          }
        },
        "required": [
          "target",
          "connections"
        ],
        "additionalProperties": false,
        "example": {
          "target": {
            "fullName": "Bob Lee",
            "title": "CEO",
            "linkedinUrl": "https://www.linkedin.com/in/boblee",
            "currentCompany": {
              "id": 123,
              "name": "Acme",
              "domain": "acme.com"
            }
          },
          "connections": [
            {
              "source": {
                "id": 42,
                "firstName": "Alice",
                "lastName": "Roe",
                "primaryEmailAddress": "alice@northpointvc.com"
              },
              "inference": {
                "sharedEmployer": {
                  "id": 555,
                  "name": "Globex",
                  "domain": "globex.com"
                },
                "overlapStartDate": "2018-03-01",
                "overlapEndDate": "2020-11-30"
              }
            }
          ]
        }
      },
      "CoworkerConnectionGroupsPaged": {
        "title": "CoworkerConnectionGroupsPaged",
        "description": "A paginated list of shared-work-history connections grouped by target person. Each item is one target and the connections inferred to them.",
        "type": "object",
        "properties": {
          "data": {
            "description": "A page of targets, each with the shared-work-history connections to them, ordered by each target's strongest connection (strongest first).",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CoworkerConnectionGroup"
            },
            "maxItems": 50
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationWithTotalCount"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "additionalProperties": false
      },
      "InvestorExecutiveInference": {
        "title": "InvestorExecutiveInference",
        "description": "The belief that the source invested in a company where the target was an executive. The `investingFirm` is the firm the source invested through, when known; the `portfolioCompany` is the company the target was an executive at.",
        "type": "object",
        "properties": {
          "investingFirm": {
            "description": "The firm the source invested through, or `null` when not known.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/InferredConnectionCompanyRef"
              },
              {
                "type": "null"
              }
            ]
          },
          "portfolioCompany": {
            "description": "The company the target was an executive at.",
            "$ref": "#/components/schemas/InferredConnectionCompanyRef"
          }
        },
        "required": [
          "investingFirm",
          "portfolioCompany"
        ],
        "additionalProperties": false,
        "example": {
          "investingFirm": {
            "id": 456,
            "name": "Sequoia",
            "domain": "sequoia.com"
          },
          "portfolioCompany": {
            "id": 123,
            "name": "Acme",
            "domain": "acme.com"
          }
        }
      },
      "DealFundingEvent": {
        "title": "DealFundingEvent",
        "description": "The funding round behind the connection: when it happened and its size.",
        "type": "object",
        "properties": {
          "date": {
            "description": "The date the funding round took place.",
            "type": "string",
            "format": "date",
            "example": "2021-05-01"
          },
          "series": {
            "description": "The funding round's series, or `null` when not known.",
            "type": [
              "string",
              "null"
            ],
            "example": "Series A"
          },
          "amount": {
            "description": "The amount raised in the round, in `currencyCode`, or `null` when not known.",
            "type": [
              "number",
              "null"
            ],
            "format": "float",
            "example": 15000000
          },
          "currencyCode": {
            "description": "The ISO 4217 currency code for `amount`, or `null` when not known.",
            "type": [
              "string",
              "null"
            ],
            "example": "USD"
          }
        },
        "required": [
          "date",
          "series",
          "amount",
          "currencyCode"
        ],
        "additionalProperties": false
      },
      "DealMemberRole": {
        "title": "DealMemberRole",
        "description": "A party's role in the deal: their title and tenure at the `company` involved. For the investor this is the investing firm; for the executive it is the company they led.",
        "type": "object",
        "properties": {
          "title": {
            "description": "The person's title in the role, or `null` when not known.",
            "type": [
              "string",
              "null"
            ],
            "example": "Partner"
          },
          "startDate": {
            "description": "The date the person started the role.",
            "type": "string",
            "format": "date",
            "example": "2018-06-01"
          },
          "endDate": {
            "description": "The date the person left the role, or `null` when they are still in it.",
            "type": [
              "string",
              "null"
            ],
            "format": "date",
            "example": "2022-03-31"
          },
          "company": {
            "description": "The company the person held the role at.",
            "$ref": "#/components/schemas/InferredConnectionCompanyRef"
          }
        },
        "required": [
          "title",
          "startDate",
          "endDate",
          "company"
        ],
        "additionalProperties": false
      },
      "DealContext": {
        "title": "DealContext",
        "description": "The deal that ties the source and target together: the funding round, the source's role as the investor, and the target's role as the executive at the company that was funded.",
        "type": "object",
        "properties": {
          "fundingEvent": {
            "description": "The funding round behind the connection.",
            "$ref": "#/components/schemas/DealFundingEvent"
          },
          "investor": {
            "description": "The source's role as the investor, at the investing firm.",
            "$ref": "#/components/schemas/DealMemberRole"
          },
          "executive": {
            "description": "The target's role as the executive, at the company that was funded.",
            "$ref": "#/components/schemas/DealMemberRole"
          }
        },
        "required": [
          "fundingEvent",
          "investor",
          "executive"
        ],
        "additionalProperties": false,
        "example": {
          "fundingEvent": {
            "date": "2021-05-01",
            "series": "Series A",
            "amount": 15000000,
            "currencyCode": "USD"
          },
          "investor": {
            "title": "Partner",
            "startDate": "2018-06-01",
            "endDate": null,
            "company": {
              "id": 456,
              "name": "Sequoia",
              "domain": "sequoia.com"
            }
          },
          "executive": {
            "title": "CEO",
            "startDate": "2019-02-01",
            "endDate": "2022-03-31",
            "company": {
              "id": 123,
              "name": "Acme",
              "domain": "acme.com"
            }
          }
        }
      },
      "InvestorExecutiveConnection": {
        "title": "InvestorExecutiveConnection",
        "description": "A single inferred connection to a target, where the source invested in a company the target was an executive of. The `source` is the person in your Affinity data who might know the target; `inference` describes the investment behind it.",
        "type": "object",
        "properties": {
          "source": {
            "description": "The person in your Affinity data, whom you know. The investor in this connection.",
            "$ref": "#/components/schemas/RelationshipPerson"
          },
          "inference": {
            "description": "Deprecated: use `dealContext`, which carries the investing firm and portfolio company along with the funding round and both parties' roles. This field will be removed while the API is pre-stable; it remains for now to give consumers time to migrate. The investment relationship behind the connection.",
            "deprecated": true,
            "$ref": "#/components/schemas/InvestorExecutiveInference"
          },
          "dealContext": {
            "description": "The deal behind the connection: the funding round and both parties' roles.",
            "$ref": "#/components/schemas/DealContext"
          }
        },
        "required": [
          "source",
          "inference",
          "dealContext"
        ],
        "additionalProperties": false,
        "example": {
          "source": {
            "id": 42,
            "firstName": "Alice",
            "lastName": "Roe",
            "primaryEmailAddress": "alice@northpointvc.com"
          },
          "inference": {
            "investingFirm": {
              "id": 456,
              "name": "Sequoia",
              "domain": "sequoia.com"
            },
            "portfolioCompany": {
              "id": 123,
              "name": "Acme",
              "domain": "acme.com"
            }
          },
          "dealContext": {
            "fundingEvent": {
              "date": "2021-05-01",
              "series": "Series A",
              "amount": 15000000,
              "currencyCode": "USD"
            },
            "investor": {
              "title": "Partner",
              "startDate": "2018-06-01",
              "endDate": null,
              "company": {
                "id": 456,
                "name": "Sequoia",
                "domain": "sequoia.com"
              }
            },
            "executive": {
              "title": "CEO",
              "startDate": "2019-02-01",
              "endDate": "2022-03-31",
              "company": {
                "id": 123,
                "name": "Acme",
                "domain": "acme.com"
              }
            }
          }
        }
      },
      "InvestorExecutiveConnectionGroup": {
        "title": "InvestorExecutiveConnectionGroup",
        "description": "A target person together with every connection inferred to them where the source invested in a company the target was an executive of. The same target can be reachable through several people you know, so the connections to one target are grouped here under that target.",
        "type": "object",
        "properties": {
          "target": {
            "description": "The person not in your Affinity data, whom you want to know. The executive in these connections.",
            "$ref": "#/components/schemas/InferredConnectionTarget"
          },
          "connections": {
            "description": "The connections to this target, ordered strongest first.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvestorExecutiveConnection"
            },
            "minItems": 1,
            "maxItems": 50
          }
        },
        "required": [
          "target",
          "connections"
        ],
        "additionalProperties": false,
        "example": {
          "target": {
            "fullName": "Bob Lee",
            "title": "CEO",
            "linkedinUrl": "https://www.linkedin.com/in/boblee",
            "currentCompany": {
              "id": 123,
              "name": "Acme",
              "domain": "acme.com"
            }
          },
          "connections": [
            {
              "source": {
                "id": 42,
                "firstName": "Alice",
                "lastName": "Roe",
                "primaryEmailAddress": "alice@northpointvc.com"
              },
              "inference": {
                "investingFirm": {
                  "id": 456,
                  "name": "Sequoia",
                  "domain": "sequoia.com"
                },
                "portfolioCompany": {
                  "id": 123,
                  "name": "Acme",
                  "domain": "acme.com"
                }
              },
              "dealContext": {
                "fundingEvent": {
                  "date": "2021-05-01",
                  "series": "Series A",
                  "amount": 15000000,
                  "currencyCode": "USD"
                },
                "investor": {
                  "title": "Partner",
                  "startDate": "2018-06-01",
                  "endDate": null,
                  "company": {
                    "id": 456,
                    "name": "Sequoia",
                    "domain": "sequoia.com"
                  }
                },
                "executive": {
                  "title": "CEO",
                  "startDate": "2019-02-01",
                  "endDate": "2022-03-31",
                  "company": {
                    "id": 123,
                    "name": "Acme",
                    "domain": "acme.com"
                  }
                }
              }
            }
          ]
        }
      },
      "InvestorExecutiveConnectionGroupsPaged": {
        "title": "InvestorExecutiveConnectionGroupsPaged",
        "description": "A paginated list of investor-executive connections grouped by target person. Each item is one target and the connections inferred to them.",
        "type": "object",
        "properties": {
          "data": {
            "description": "A page of targets, each with the connections to them, ordered by each target's strongest connection (strongest first).",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvestorExecutiveConnectionGroup"
            },
            "maxItems": 50
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationWithTotalCount"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "additionalProperties": false
      },
      "ListWithType": {
        "title": "ListWithType",
        "description": "ListWithType model",
        "type": "object",
        "properties": {
          "id": {
            "description": "The unique identifier for the list",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "name": {
            "description": "The name of the list",
            "type": "string",
            "example": "All companies"
          },
          "creatorId": {
            "description": "The ID of the user that created this list",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "ownerId": {
            "description": "The ID of the user that owns this list",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "isPublic": {
            "description": "Whether or not the list is public",
            "type": "boolean",
            "example": false
          },
          "type": {
            "description": "The entity type for this list",
            "type": "string",
            "enum": [
              "company",
              "opportunity",
              "person"
            ],
            "example": "company"
          },
          "createdAt": {
            "description": "The date and time the list was created",
            "type": "string",
            "format": "date-time",
            "example": "2024-03-07T20:21:42Z"
          }
        },
        "required": [
          "createdAt",
          "creatorId",
          "id",
          "isPublic",
          "name",
          "ownerId",
          "type"
        ],
        "additionalProperties": false
      },
      "ListWithTypePaged": {
        "title": "ListWithTypePaged",
        "description": "ListWithTypePaged model",
        "type": "object",
        "properties": {
          "data": {
            "description": "A page of ListWithType results",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListWithType"
            },
            "maxItems": 100
          },
          "pagination": {
            "$ref": "#/components/schemas/Pagination"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "additionalProperties": false
      },
      "ListToBeCreated": {
        "title": "ListToBeCreated",
        "description": "Request body for creating a new List",
        "type": "object",
        "properties": {
          "name": {
            "description": "The name of the List",
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "example": "My Companies"
          },
          "type": {
            "description": "The entity type for the List",
            "type": "string",
            "enum": [
              "company",
              "opportunity",
              "person"
            ],
            "example": "company"
          },
          "isPublic": {
            "description": "Whether the List is public.\nPublic Lists are visible to all users in the organization. Creating a public List requires the \"Share accessible Lists globally\" permission.",
            "type": "boolean",
            "default": false,
            "example": false
          }
        },
        "required": [
          "name",
          "type"
        ],
        "additionalProperties": false
      },
      "dropdownOptions.StandardDropdownOptionToBeCreated": {
        "title": "dropdownOptions.StandardDropdownOptionToBeCreated",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of dropdown option",
            "type": "string",
            "const": "dropdown"
          },
          "text": {
            "description": "Dropdown option text",
            "type": "string",
            "minLength": 1,
            "maxLength": 255
          }
        },
        "required": [
          "type",
          "text"
        ],
        "unevaluatedProperties": false,
        "example": {
          "type": "dropdown",
          "text": "Seed"
        }
      },
      "dropdownOptions.RankedDropdownOptionToBeCreated": {
        "title": "dropdownOptions.RankedDropdownOptionToBeCreated",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of dropdown option",
            "type": "string",
            "const": "ranked-dropdown"
          },
          "text": {
            "description": "Dropdown option text",
            "type": "string",
            "minLength": 1,
            "maxLength": 255
          },
          "rank": {
            "description": "Dropdown option rank (sort order)",
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 2147483647
          },
          "color": {
            "description": "Dropdown option color",
            "type": "string",
            "enum": [
              "white",
              "gray",
              "blue",
              "green",
              "purple",
              "orange",
              "red"
            ]
          }
        },
        "required": [
          "type",
          "text",
          "rank",
          "color"
        ],
        "unevaluatedProperties": false,
        "example": {
          "type": "ranked-dropdown",
          "text": "High",
          "rank": 0,
          "color": "green"
        }
      },
      "dropdownOptions.StatusDropdownOptionToBeCreated": {
        "title": "dropdownOptions.StatusDropdownOptionToBeCreated",
        "type": "object",
        "properties": {
          "type": {
            "description": "The type of dropdown option",
            "type": "string",
            "const": "status-dropdown"
          },
          "text": {
            "description": "Dropdown option text",
            "type": "string",
            "minLength": 1,
            "maxLength": 255
          },
          "rank": {
            "description": "Dropdown option rank (sort order)",
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 2147483647
          },
          "color": {
            "description": "Dropdown option color",
            "type": "string",
            "enum": [
              "white",
              "gray",
              "blue",
              "green",
              "purple",
              "orange",
              "red"
            ]
          },
          "statusCategory": {
            "description": "Dropdown option's status category",
            "type": "string",
            "enum": [
              "open",
              "won",
              "lost",
              "on-hold"
            ]
          },
          "winRate": {
            "description": "The user-designated probability that an entity in this status will progress to a `won` status. Only valid when `statusCategory` is `open`. Must be an integer between 0 and 100 inclusive.",
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 100
          }
        },
        "required": [
          "type",
          "text",
          "rank",
          "color",
          "statusCategory"
        ],
        "unevaluatedProperties": false,
        "example": {
          "type": "status-dropdown",
          "text": "In Progress",
          "rank": 0,
          "color": "green",
          "statusCategory": "open",
          "winRate": 25
        }
      },
      "dropdownOptions.DropdownOptionToBeCreated": {
        "title": "dropdownOptions.DropdownOptionToBeCreated",
        "oneOf": [
          {
            "$ref": "#/components/schemas/dropdownOptions.StandardDropdownOptionToBeCreated"
          },
          {
            "$ref": "#/components/schemas/dropdownOptions.RankedDropdownOptionToBeCreated"
          },
          {
            "$ref": "#/components/schemas/dropdownOptions.StatusDropdownOptionToBeCreated"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "dropdown": "#/components/schemas/dropdownOptions.StandardDropdownOptionToBeCreated",
            "ranked-dropdown": "#/components/schemas/dropdownOptions.RankedDropdownOptionToBeCreated",
            "status-dropdown": "#/components/schemas/dropdownOptions.StatusDropdownOptionToBeCreated"
          }
        }
      },
      "dropdownOptions.StandardDropdownOptionToBeUpdated": {
        "title": "dropdownOptions.StandardDropdownOptionToBeUpdated",
        "type": "object",
        "properties": {
          "text": {
            "description": "Dropdown option text",
            "type": "string",
            "minLength": 1,
            "maxLength": 255
          }
        },
        "unevaluatedProperties": false,
        "example": {
          "text": "Series A"
        }
      },
      "dropdownOptions.RankedDropdownOptionToBeUpdated": {
        "title": "dropdownOptions.RankedDropdownOptionToBeUpdated",
        "type": "object",
        "properties": {
          "text": {
            "description": "Dropdown option text",
            "type": "string",
            "minLength": 1,
            "maxLength": 255
          },
          "rank": {
            "description": "Dropdown option rank (sort order)",
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 2147483647
          },
          "color": {
            "description": "Dropdown option color",
            "type": "string",
            "enum": [
              "white",
              "gray",
              "blue",
              "green",
              "purple",
              "orange",
              "red"
            ]
          }
        },
        "unevaluatedProperties": false,
        "example": {
          "text": "Medium",
          "rank": 1,
          "color": "blue"
        }
      },
      "dropdownOptions.StatusDropdownOptionToBeUpdated": {
        "title": "dropdownOptions.StatusDropdownOptionToBeUpdated",
        "type": "object",
        "properties": {
          "text": {
            "description": "Dropdown option text",
            "type": "string",
            "minLength": 1,
            "maxLength": 255
          },
          "rank": {
            "description": "Dropdown option rank (sort order)",
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 2147483647
          },
          "color": {
            "description": "Dropdown option color",
            "type": "string",
            "enum": [
              "white",
              "gray",
              "blue",
              "green",
              "purple",
              "orange",
              "red"
            ]
          },
          "statusCategory": {
            "description": "Dropdown option's status category",
            "type": "string",
            "enum": [
              "open",
              "won",
              "lost",
              "on-hold"
            ]
          },
          "winRate": {
            "description": "The user-designated probability that an entity in this status will progress to a `won` status. Only valid when `statusCategory` is `open`. Must be an integer between 0 and 100 inclusive.",
            "type": "integer",
            "format": "int32",
            "minimum": 0,
            "maximum": 100
          }
        },
        "unevaluatedProperties": false,
        "example": {
          "text": "In Progress",
          "rank": 0,
          "color": "green",
          "statusCategory": "open",
          "winRate": 25
        }
      },
      "dropdownOptions.DropdownOptionToBeUpdated": {
        "title": "dropdownOptions.DropdownOptionToBeUpdated",
        "description": "- `dropdown` type field may update `text`.\n- `ranked-dropdown` type field may update `text`, `rank`, and/or `color`.\n- `status-dropdown` type field may update `text`, `rank`, `color`, `statusCategory`, and/or `winRate`.",
        "anyOf": [
          {
            "$ref": "#/components/schemas/dropdownOptions.StandardDropdownOptionToBeUpdated"
          },
          {
            "$ref": "#/components/schemas/dropdownOptions.RankedDropdownOptionToBeUpdated"
          },
          {
            "$ref": "#/components/schemas/dropdownOptions.StatusDropdownOptionToBeUpdated"
          }
        ]
      },
      "CompanyListEntry": {
        "title": "CompanyListEntry",
        "type": "object",
        "properties": {
          "id": {
            "description": "The list entry's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "type": {
            "description": "The entity type for this list entry",
            "type": "string",
            "const": "company",
            "example": "company"
          },
          "listId": {
            "description": "The ID of the list that this list entry belongs to",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "createdAt": {
            "description": "The date that the list entry was created",
            "type": "string",
            "format": "date-time",
            "example": "2023-01-01T00:00:00Z"
          },
          "creatorId": {
            "description": "The ID of the user that created this list entry",
            "type": [
              "integer",
              "null"
            ],
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "entity": {
            "$ref": "#/components/schemas/Company"
          }
        },
        "required": [
          "createdAt",
          "creatorId",
          "entity",
          "id",
          "listId",
          "type"
        ],
        "additionalProperties": false,
        "example": {
          "id": 1,
          "type": "company",
          "listId": 1,
          "createdAt": "2023-01-01T00:00:00Z",
          "creatorId": 1,
          "entity": {
            "id": 1,
            "name": "Horizon Technologies",
            "domain": "horizontech.com",
            "domains": [
              "horizontech.com"
            ],
            "isGlobal": true,
            "fields": []
          }
        }
      },
      "OpportunityWithFields": {
        "title": "OpportunityWithFields",
        "description": "Opportunity model including the opportunity's fields.",
        "type": "object",
        "properties": {
          "id": {
            "description": "The unique identifier for the opportunity",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "name": {
            "description": "The name of the opportunity.",
            "type": "string",
            "example": "Horizon Technologies Upsell $10k"
          },
          "listId": {
            "description": "The ID of the list that the opportunity belongs to",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "fields": {
            "description": "The fields associated with the opportunity. Empty for a redacted\nopportunity.\n",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Field"
            }
          },
          "isRestricted": {
            "description": "Whether the opportunity is restricted. `false` for customers without\nthe Restricted Opportunities feature enabled.\n",
            "type": "boolean",
            "example": false
          },
          "isRedacted": {
            "description": "Whether the response is redacted because the requesting user does not\nhave access to sensitive details of this restricted opportunity. When\n`true`, `fields` is empty. Always `false` when `isRestricted` is\n`false`.\n",
            "type": "boolean",
            "example": false
          }
        },
        "required": [
          "id",
          "listId",
          "name",
          "isRestricted",
          "isRedacted"
        ],
        "additionalProperties": false
      },
      "OpportunityListEntry": {
        "title": "OpportunityListEntry",
        "type": "object",
        "properties": {
          "id": {
            "description": "The list entry's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "type": {
            "description": "The entity type for this list entry",
            "type": "string",
            "const": "opportunity",
            "example": "opportunity"
          },
          "listId": {
            "description": "The ID of the list that this list entry belongs to",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "createdAt": {
            "description": "The date that the list entry was created",
            "type": "string",
            "format": "date-time",
            "example": "2023-01-01T00:00:00Z"
          },
          "creatorId": {
            "description": "The ID of the user that created this list entry",
            "type": [
              "integer",
              "null"
            ],
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "entity": {
            "$ref": "#/components/schemas/OpportunityWithFields"
          }
        },
        "required": [
          "createdAt",
          "creatorId",
          "entity",
          "id",
          "listId",
          "type"
        ],
        "additionalProperties": false,
        "example": {
          "id": 1,
          "type": "opportunity",
          "listId": 1,
          "createdAt": "2023-01-01T00:00:00Z",
          "creatorId": 1,
          "entity": {
            "id": 1,
            "name": "Horizon Technologies Series A",
            "listId": 1,
            "fields": [],
            "isRestricted": false,
            "isRedacted": false
          }
        }
      },
      "PersonListEntry": {
        "title": "PersonListEntry",
        "type": "object",
        "properties": {
          "id": {
            "description": "The list entry's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "type": {
            "description": "The entity type for this list entry",
            "type": "string",
            "const": "person",
            "example": "person"
          },
          "listId": {
            "description": "The ID of the list that this list entry belongs to",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "createdAt": {
            "description": "The date that the list entry was created",
            "type": "string",
            "format": "date-time",
            "example": "2023-01-01T00:00:00Z"
          },
          "creatorId": {
            "description": "The ID of the user that created this list entry",
            "type": [
              "integer",
              "null"
            ],
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "entity": {
            "$ref": "#/components/schemas/Person"
          }
        },
        "required": [
          "createdAt",
          "creatorId",
          "entity",
          "id",
          "listId",
          "type"
        ],
        "additionalProperties": false,
        "example": {
          "id": 1,
          "type": "person",
          "listId": 1,
          "createdAt": "2023-01-01T00:00:00Z",
          "creatorId": 1,
          "entity": {
            "id": 1,
            "firstName": "Alex",
            "lastName": "Rivera",
            "primaryEmailAddress": "alex.rivera@horizontech.com",
            "emailAddresses": [
              "alex.rivera@horizontech.com"
            ],
            "type": "internal",
            "fields": []
          }
        }
      },
      "ListEntryWithEntity": {
        "title": "ListEntryWithEntity",
        "oneOf": [
          {
            "$ref": "#/components/schemas/CompanyListEntry"
          },
          {
            "$ref": "#/components/schemas/OpportunityListEntry"
          },
          {
            "$ref": "#/components/schemas/PersonListEntry"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "company": "#/components/schemas/CompanyListEntry",
            "opportunity": "#/components/schemas/OpportunityListEntry",
            "person": "#/components/schemas/PersonListEntry"
          }
        }
      },
      "ListEntryWithEntityPaged": {
        "title": "ListEntryWithEntityPaged",
        "description": "ListEntryWithEntityPaged model",
        "type": "object",
        "properties": {
          "data": {
            "description": "A page of ListEntryWithEntity results",
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/ListEntryWithEntity"
            },
            "maxItems": 100
          },
          "pagination": {
            "$ref": "#/components/schemas/Pagination"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "additionalProperties": false
      },
      "ListEntryBatchOperationUpdateFields": {
        "title": "ListEntryBatchOperationUpdateFields",
        "description": "Update multiple field values.",
        "type": "object",
        "properties": {
          "operation": {
            "type": "string",
            "const": "update-fields"
          },
          "updates": {
            "type": "array",
            "maxItems": 100,
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "description": "The field's unique identifier.",
                  "type": "string",
                  "example": "field-105"
                },
                "value": {
                  "$ref": "#/components/schemas/FieldValueUpdate"
                }
              },
              "required": [
                "id"
              ]
            }
          }
        },
        "required": [
          "operation",
          "updates"
        ]
      },
      "ListEntryBatchOperationRequest": {
        "title": "ListEntryBatchOperationRequest",
        "oneOf": [
          {
            "$ref": "#/components/schemas/ListEntryBatchOperationUpdateFields"
          }
        ],
        "discriminator": {
          "propertyName": "operation",
          "mapping": {
            "update-fields": "#/components/schemas/ListEntryBatchOperationUpdateFields"
          }
        }
      },
      "ListEntryBatchOperations": {
        "title": "ListEntryBatchOperations",
        "type": "string",
        "enum": [
          "update-fields"
        ]
      },
      "ListEntryBatchOperationResponse": {
        "title": "ListEntryBatchOperationResponse",
        "type": "object",
        "properties": {
          "operation": {
            "$ref": "#/components/schemas/ListEntryBatchOperations"
          }
        }
      },
      "SavedView": {
        "title": "SavedView",
        "description": "SavedView model",
        "type": "object",
        "properties": {
          "id": {
            "description": "The saved view's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 42
          },
          "name": {
            "description": "The saved view's name",
            "type": "string",
            "example": "Deal Pipeline Status"
          },
          "type": {
            "description": "The type for this saved view",
            "type": "string",
            "enum": [
              "sheet",
              "board",
              "dashboard"
            ],
            "example": "board"
          },
          "createdAt": {
            "description": "The date that the saved view was created",
            "type": "string",
            "format": "date-time",
            "example": "2023-06-15T00:00:00Z"
          }
        },
        "required": [
          "createdAt",
          "id",
          "name",
          "type"
        ],
        "additionalProperties": false
      },
      "SavedViewPaged": {
        "title": "SavedViewPaged",
        "description": "SavedViewPaged model",
        "type": "object",
        "properties": {
          "data": {
            "description": "A page of SavedView results",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SavedView"
            },
            "maxItems": 100
          },
          "pagination": {
            "$ref": "#/components/schemas/Pagination"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "additionalProperties": false
      },
      "interactions.Meeting": {
        "title": "interactions.Meeting",
        "type": "object",
        "properties": {
          "id": {
            "description": "The meeting's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "loggingType": {
            "description": "Indicates how the interaction was added to Affinity: either manually by a user ('manual') or automatically through Affinity's capture process ('automated').",
            "type": "string",
            "enum": [
              "automated",
              "manual"
            ],
            "example": "automated"
          },
          "title": {
            "description": "The meeting's title",
            "type": [
              "string",
              "null"
            ],
            "example": "Example title"
          },
          "startTime": {
            "description": "The timestamp of when the meeting starts",
            "type": "string",
            "format": "date-time",
            "example": "2023-01-01T00:00:00Z"
          },
          "endTime": {
            "description": "The timestamp of when the meeting ends",
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "example": "2023-01-01T00:00:00Z"
          },
          "allDay": {
            "description": "Whether the meeting is all day",
            "type": "boolean",
            "example": false
          },
          "creator": {
            "description": "The person who created the meeting",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Attendee"
              },
              {
                "type": "null"
              }
            ]
          },
          "organizer": {
            "description": "The person who organized the meeting",
            "oneOf": [
              {
                "$ref": "#/components/schemas/Attendee"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "description": "The timestamp of when the meeting was created",
            "type": "string",
            "format": "date-time",
            "example": "2023-01-01T00:00:00Z"
          },
          "updatedAt": {
            "description": "The timestamp of when the meeting was updated",
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "example": "2023-01-01T00:00:00Z"
          },
          "attendeesPreview": {
            "description": "A preview of the attendees in the meeting",
            "$ref": "#/components/schemas/AttendeesPreview"
          }
        },
        "required": [
          "id",
          "loggingType",
          "title",
          "startTime",
          "endTime",
          "allDay",
          "creator",
          "organizer",
          "createdAt",
          "updatedAt",
          "attendeesPreview"
        ],
        "additionalProperties": false
      },
      "interactions.MeetingPaged": {
        "title": "interactions.MeetingPaged",
        "description": "MeetingPaged model",
        "type": "object",
        "properties": {
          "data": {
            "description": "A page of Meeting results",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/interactions.Meeting"
            },
            "maxItems": 100
          },
          "pagination": {
            "$ref": "#/components/schemas/Pagination"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "additionalProperties": false
      },
      "notes.ContentToBeSaved": {
        "title": "notes.ContentToBeSaved",
        "description": "The note's body content. Only `html` is supported on write; supply rendered HTML limited to the allowed tags listed below.",
        "type": "object",
        "properties": {
          "html": {
            "description": "The HTML content of the note.\n\n**Allowed tags (with no attributes other than those explicitly noted):**\n`<p>`, `<br>`, `<strong>`, `<em>`, `<u>`, `<ol>`, `<ul>`, `<li>`,\n`<span>` (no attributes), `<a>` (only `href` with `http`, `https`, or `mailto` URL schemes).\n\n**Restricted (any of these will cause the request to fail):**\ninline `style` attributes, `class` attributes, `<img>`, `<script>`, `<iframe>`, `<style>`, `<blockquote>`, `<hr>`, `<s>`, `<pre>`, `<code>`, `<font>`.\n\n**Mentions:** mention spans (`<span data-type=\"note-mention\" ...>`) are also restricted. Mentions cannot be created or modified through this endpoint.\n\n**Anchor tag normalization:** For security, the server appends `rel=\"noopener noreferrer\"` and `target=\"_blank\"` to every `<a>` element before the note is saved.\n\n**Valid examples:**\n`<p>Quick recap of the call.</p>`,\n`<p>Top action items:</p><ul><li><strong>Send pricing</strong> by Friday</li><li>Follow up with <a href=\"mailto:jane@acme.co\">Jane</a></li></ul>`\n\n**Invalid examples (will cause the request to fail):**\n`<p style=\"color:red\">Hi</p>` (inline style),\n`<p><img src=\"https://example.com/x.png\"></p>` (image tag),\n`<p><span data-type=\"note-mention\" data-note-mention-type=\"person\" data-note-mention-person-id=\"1\">John</span></p>` (mention span)\n",
            "type": "string",
            "examples": [
              "<p>Quick recap of the call. Action items follow.</p>"
            ]
          }
        },
        "required": [
          "html"
        ],
        "additionalProperties": false
      },
      "OpportunityReference": {
        "title": "OpportunityReference",
        "type": "object",
        "properties": {
          "id": {
            "description": "The opportunity's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      },
      "notes.EntitiesNoteToBeCreated": {
        "title": "notes.EntitiesNoteToBeCreated",
        "description": "Request body for creating a note attached directly to one or more entities. At least one of `persons`, `companies`, or `opportunities` must include an entry, since a note of this type requires at least one attached entity.",
        "type": "object",
        "properties": {
          "type": {
            "description": "The note type. Must be `entities` to create a note attached to only entities.",
            "type": "string",
            "const": "entities"
          },
          "content": {
            "$ref": "#/components/schemas/notes.ContentToBeSaved"
          },
          "creator": {
            "description": "The person to record as the note's creator. Defaults to the calling user when omitted, and must reference an active internal person in your organization.",
            "$ref": "#/components/schemas/PersonReference"
          },
          "createdAt": {
            "description": "The time to record as when the note was created. Set this to backfill historical notes with their original date. Defaults to the current time when omitted.",
            "type": "string",
            "format": "date-time",
            "examples": [
              "2025-01-15T09:30:00Z"
            ]
          },
          "persons": {
            "description": "Persons to attach the note to. Each item references a Person by id.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PersonReference"
            },
            "maxItems": 100,
            "examples": [
              [
                {
                  "id": 1
                },
                {
                  "id": 2
                }
              ]
            ]
          },
          "companies": {
            "description": "Companies to attach the note to. Each item references a Company by id.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanyReference"
            },
            "maxItems": 100,
            "examples": [
              [
                {
                  "id": 10
                }
              ]
            ]
          },
          "opportunities": {
            "description": "Opportunities to attach the note to. Each item references an Opportunity by id.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OpportunityReference"
            },
            "maxItems": 100,
            "examples": [
              [
                {
                  "id": 100
                }
              ]
            ]
          }
        },
        "required": [
          "type",
          "content"
        ],
        "additionalProperties": false
      },
      "notes.MeetingReference": {
        "title": "notes.MeetingReference",
        "description": "A reference to an existing Meeting (calendar event) that the note will be attached to. This schema describes the request-body shape for attaching a note to a Meeting. It does not create or modify the Meeting itself.\nThe id of the meeting. This is the same identifier returned as `interaction.id` on the read response and by `GET /v2/meetings/{meetingId}`.",
        "type": "object",
        "properties": {
          "id": {
            "description": "The id of the Meeting to attach the note to",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "examples": [
              12345
            ]
          },
          "type": {
            "description": "The interaction type. Must be `meeting` to reference a Meeting.",
            "type": "string",
            "const": "meeting"
          }
        },
        "required": [
          "id",
          "type"
        ],
        "additionalProperties": false
      },
      "notes.CallReference": {
        "title": "notes.CallReference",
        "description": "A reference to an existing Call that the note will be attached to. This schema describes the request-body shape for attaching a note to a Call. It does not create or modify the Call itself.\nThe id of the call. This is the same identifier returned as `interaction.id` on the read response and by `GET /v2/calls`.",
        "type": "object",
        "properties": {
          "id": {
            "description": "The id of the Call to attach the note to",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "examples": [
              67890
            ]
          },
          "type": {
            "description": "The interaction type. Must be `call` to reference a Call.",
            "type": "string",
            "const": "call"
          }
        },
        "required": [
          "id",
          "type"
        ],
        "additionalProperties": false
      },
      "notes.ChatMessageReference": {
        "title": "notes.ChatMessageReference",
        "description": "A reference to an existing Chat Message (e.g. a message from a connected chat integration such as Slack) that the note will be attached to. This schema describes the request-body shape for attaching a note to a Chat Message. It does not create or modify the Chat Message itself.\nThe id of the chat message. This is the same identifier returned as `interaction.id` on the read response and by `GET /v2/chat-messages`.",
        "type": "object",
        "properties": {
          "id": {
            "description": "The id of the Chat Message to attach the note to",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "examples": [
              24680
            ]
          },
          "type": {
            "description": "The interaction type. Must be `chat-message` to reference a Chat Message.",
            "type": "string",
            "const": "chat-message"
          }
        },
        "required": [
          "id",
          "type"
        ],
        "additionalProperties": false
      },
      "notes.InteractionReference": {
        "title": "notes.InteractionReference",
        "description": "A reference to the existing interaction that an interaction note will be attached to. Notes can be attached to a meeting, call, or chat message.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/notes.MeetingReference"
          },
          {
            "$ref": "#/components/schemas/notes.CallReference"
          },
          {
            "$ref": "#/components/schemas/notes.ChatMessageReference"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "meeting": "#/components/schemas/notes.MeetingReference",
            "call": "#/components/schemas/notes.CallReference",
            "chat-message": "#/components/schemas/notes.ChatMessageReference"
          }
        }
      },
      "notes.InteractionNoteToBeCreated": {
        "title": "notes.InteractionNoteToBeCreated",
        "description": "Request body for creating a note attached to an interaction. Notes can be attached to a meeting, call, or chat message.\n`interaction.type` and `interaction.id` are both required and must reference a meeting, call, or chat message the caller can access. Notes of this type are anchored to a single interaction. Entity associations (`persons`, `companies`, `opportunities`) are optional and can supplement the interaction attachment as additional direct associations on top of the interaction's own participants. The interaction participants are implicitly associated with the note by virtue of the interaction attachment, so they do not need to be included in the `persons` array unless the caller wants to create additional direct associations beyond those implied by the interaction itself.",
        "type": "object",
        "properties": {
          "type": {
            "description": "The note type. Must be `interaction` to create an interaction note.",
            "type": "string",
            "const": "interaction"
          },
          "content": {
            "$ref": "#/components/schemas/notes.ContentToBeSaved"
          },
          "creator": {
            "description": "The person to record as the note's creator. Defaults to the calling user when omitted, and must reference an active internal person in your organization.",
            "$ref": "#/components/schemas/PersonReference"
          },
          "createdAt": {
            "description": "The time to record as when the note was created. Set this to backfill historical notes with their original date. Defaults to the current time when omitted.",
            "type": "string",
            "format": "date-time",
            "examples": [
              "2025-01-15T09:30:00Z"
            ]
          },
          "interaction": {
            "$ref": "#/components/schemas/notes.InteractionReference"
          },
          "persons": {
            "description": "Persons to additionally attach the note to, beyond those implied by the interaction itself. Each item references a Person by id.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PersonReference"
            },
            "maxItems": 100
          },
          "companies": {
            "description": "Companies to additionally attach the note to. Each item references a Company by id.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanyReference"
            },
            "maxItems": 100
          },
          "opportunities": {
            "description": "Opportunities to additionally attach the note to. Each item references an Opportunity by id.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OpportunityReference"
            },
            "maxItems": 100
          }
        },
        "required": [
          "type",
          "content",
          "interaction"
        ],
        "additionalProperties": false
      },
      "notes.NoteReference": {
        "title": "notes.NoteReference",
        "description": "A reference to an existing note by its id.",
        "type": "object",
        "properties": {
          "id": {
            "description": "The id of the referenced note",
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 2147483647,
            "examples": [
              1
            ]
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      },
      "notes.UserReplyNoteToBeCreated": {
        "title": "notes.UserReplyNoteToBeCreated",
        "description": "Request body for creating a user reply to an existing note. `parent.id` is required and must reference an existing root note (not itself a reply) that the caller can access.\nReply notes do not support entity associations or interaction attachments. Replies to AI Notetaker notes are also created with `type: user-reply`; the reply itself is a user-authored note, not an AI-generated one.",
        "type": "object",
        "properties": {
          "type": {
            "description": "The note type. Must be `user-reply` to create a reply note.",
            "type": "string",
            "const": "user-reply"
          },
          "content": {
            "$ref": "#/components/schemas/notes.ContentToBeSaved"
          },
          "creator": {
            "description": "The person to record as the note's creator. Defaults to the calling user when omitted, and must reference an active internal person in your organization.",
            "$ref": "#/components/schemas/PersonReference"
          },
          "createdAt": {
            "description": "The time to record as when the note was created. Set this to backfill historical notes with their original date. Defaults to the current time when omitted.",
            "type": "string",
            "format": "date-time",
            "examples": [
              "2025-01-15T09:30:00Z"
            ]
          },
          "parent": {
            "$ref": "#/components/schemas/notes.NoteReference"
          }
        },
        "required": [
          "type",
          "content",
          "parent"
        ],
        "additionalProperties": false
      },
      "notes.NoteToBeCreated": {
        "title": "notes.NoteToBeCreated",
        "description": "Request body for creating a note. The `type` field selects between three variants:\n\n- `entities`: a note attached directly to one or more Persons, Companies, and/or Opportunities.\n- `interaction`: a note attached to a meeting, call, or chat message. May optionally also be associated with additional entities.\n- `user-reply`: a reply to an existing root note. Replies have no entity associations or interaction attachment of their own.\n\nAdditional notes:\n\n- By default a note is authored by the calling user. To attribute it to another member of your organization, set `creator` to reference that person by id. The referenced person must be an active internal person in your organization.\n- By default a note's creation time is the time of the request. To backfill a historical note, set `createdAt` to the time the note should be recorded as created.\n- For enterprise customers, the visibility follows the fallback visibility behavior for the organization.\n- System-generated note types (`ai-notetaker`, `ai-notetaker-reply`, `email`) cannot be created here.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/notes.EntitiesNoteToBeCreated"
          },
          {
            "$ref": "#/components/schemas/notes.InteractionNoteToBeCreated"
          },
          {
            "$ref": "#/components/schemas/notes.UserReplyNoteToBeCreated"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "entities": "#/components/schemas/notes.EntitiesNoteToBeCreated",
            "interaction": "#/components/schemas/notes.InteractionNoteToBeCreated",
            "user-reply": "#/components/schemas/notes.UserReplyNoteToBeCreated"
          }
        }
      },
      "notes.KeywordSearchCriteria": {
        "title": "notes.KeywordSearchCriteria",
        "anyOf": [
          {
            "title": "Note Keyword Search Criteria (org-wide or by note IDs)",
            "description": "Search all notes in the org, or limit to specific note IDs.",
            "type": "object",
            "properties": {
              "prompt": {
                "description": "The search query. Returns up to `limit` notes ordered by relevance. Prompts with\nno strong matches may still return low-relevance results.\n",
                "type": "string",
                "minLength": 3,
                "maxLength": 500,
                "example": "Series B terms",
                "examples": [
                  "Series B terms"
                ]
              },
              "noteIds": {
                "description": "Limit search to these specific notes. Omit for org-wide search.",
                "type": "array",
                "items": {
                  "type": "integer",
                  "format": "int32",
                  "minimum": 1,
                  "maximum": 2147483647
                },
                "maxItems": 100,
                "examples": [
                  [
                    1,
                    2
                  ]
                ]
              },
              "limit": {
                "description": "Maximum number of notes to return.",
                "type": "integer",
                "format": "int32",
                "minimum": 1,
                "maximum": 100,
                "default": 20,
                "example": 20
              }
            },
            "required": [
              "prompt"
            ],
            "additionalProperties": false
          },
          {
            "title": "Note Keyword Search Criteria (by company)",
            "description": "Search notes associated with a specific company.",
            "type": "object",
            "properties": {
              "prompt": {
                "description": "The search query. Returns up to `limit` notes ordered by relevance. Prompts with\nno strong matches may still return low-relevance results.\n",
                "type": "string",
                "minLength": 3,
                "maxLength": 500,
                "example": "Series B terms",
                "examples": [
                  "Series B terms"
                ]
              },
              "companyId": {
                "description": "Restrict search to notes associated with this company.",
                "type": "integer",
                "format": "int64",
                "minimum": 1,
                "maximum": 9007199254740991,
                "example": 1
              },
              "limit": {
                "description": "Maximum number of notes to return.",
                "type": "integer",
                "format": "int32",
                "minimum": 1,
                "maximum": 100,
                "default": 20,
                "example": 20
              }
            },
            "required": [
              "prompt"
            ],
            "additionalProperties": false
          }
        ]
      },
      "notes.SearchResult": {
        "title": "notes.SearchResult",
        "description": "A matched note and a matching passage. Each note appears at most once per response, regardless of how many passages matched.",
        "type": "object",
        "properties": {
          "note": {
            "description": "The matched note.",
            "type": "object",
            "properties": {
              "id": {
                "description": "The note's unique identifier.",
                "type": "integer",
                "format": "int32",
                "minimum": 1,
                "maximum": 2147483647,
                "examples": [
                  1
                ]
              },
              "kind": {
                "description": "The type of note.\n- `note`: user-written note\n- `meeting-note`: note attached to a meeting\n- `email-note`: note from an email thread\n- `ai-summary`: auto-generated note summary\n- `meeting-ai-summary`: auto-generated meeting summary\n- `chat-message-note`: note attached to a chat message\n",
                "type": "string",
                "enum": [
                  "note",
                  "meeting-note",
                  "email-note",
                  "ai-summary",
                  "meeting-ai-summary",
                  "chat-message-note"
                ],
                "examples": [
                  "note"
                ]
              }
            },
            "required": [
              "id",
              "kind"
            ],
            "additionalProperties": false
          },
          "preview": {
            "description": "The matching passage, up to 2,000 characters.",
            "type": "string",
            "maxLength": 2000,
            "example": "We discussed the Series B terms with the founding team last Thursday.",
            "examples": [
              "We discussed the Series B terms with the founding team last Thursday."
            ]
          }
        },
        "required": [
          "note",
          "preview"
        ],
        "additionalProperties": false
      },
      "notes.KeywordSearchResult": {
        "title": "notes.KeywordSearchResult",
        "description": "Results of a keyword search over notes.",
        "type": "object",
        "properties": {
          "data": {
            "description": "Matching note results, one per note, ordered by relevance.",
            "type": "array",
            "maxItems": 100,
            "items": {
              "$ref": "#/components/schemas/notes.SearchResult"
            }
          }
        },
        "required": [
          "data"
        ],
        "additionalProperties": false
      },
      "notes.NoteToBeUpdated": {
        "title": "notes.NoteToBeUpdated",
        "description": "Request body for updating an existing note. All properties are optional: only those explicitly provided are updated, and other properties are left unchanged.\n\nThe properties that may be updated depend on the existing note's type:\n\n- Root notes (`entities`, `interaction`, `ai-notetaker`) may update `content` and the entity association arrays (`persons`, `companies`, `opportunities`).\n- Reply notes (`user-reply`, `ai-notetaker-reply`) may update `content` only; attaching `persons`, `companies`, or `opportunities` to a reply note is rejected.\n\nFor each of `persons`, `companies`, and `opportunities`, you may:\n\n- omit the field to leave existing associations unchanged\n- send an empty array (`[]`) to clear all associations of that kind\n- send a non-empty array to replace the existing set with the supplied list.\n\nAny note the caller has write access to can be updated, including AI Notetaker notes. A note's type itself cannot be changed. The content of notes that contain @mentions cannot be updated.",
        "type": "object",
        "properties": {
          "content": {
            "description": "If provided, replaces the note's content. Subject to the same HTML restrictions as creation.",
            "$ref": "#/components/schemas/notes.ContentToBeSaved"
          },
          "persons": {
            "description": "Persons attached to the note. Each item references a Person by id. Only valid for root notes.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PersonReference"
            },
            "maxItems": 100
          },
          "companies": {
            "description": "Companies attached to the note. Each item references a Company by id. Only valid for root notes.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanyReference"
            },
            "maxItems": 100
          },
          "opportunities": {
            "description": "Opportunities attached to the note. Each item references an Opportunity by id. Only valid for root notes.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OpportunityReference"
            },
            "maxItems": 100
          }
        },
        "additionalProperties": false
      },
      "CompanyDataPaged": {
        "title": "CompanyDataPaged",
        "description": "CompanyDataPaged model",
        "type": "object",
        "properties": {
          "data": {
            "description": "A page of Company results",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanyData"
            },
            "maxItems": 100
          },
          "pagination": {
            "$ref": "#/components/schemas/Pagination"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "additionalProperties": false
      },
      "OpportunityPaged": {
        "title": "OpportunityPaged",
        "description": "OpportunityPaged model",
        "type": "object",
        "properties": {
          "data": {
            "description": "A page of Opportunity results",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Opportunity"
            },
            "maxItems": 100
          },
          "pagination": {
            "$ref": "#/components/schemas/Pagination"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "additionalProperties": false
      },
      "PersonDataPaged": {
        "title": "PersonDataPaged",
        "description": "PersonDataPaged model",
        "type": "object",
        "properties": {
          "data": {
            "description": "A page of Person results",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PersonData"
            },
            "maxItems": 100
          },
          "pagination": {
            "$ref": "#/components/schemas/Pagination"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "additionalProperties": false
      },
      "notes.Reply": {
        "title": "notes.Reply",
        "description": "A Reply to a Note, created by a User or AI Notetaker.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/notes.UserReplyNote"
          },
          {
            "$ref": "#/components/schemas/notes.AiNotetakerReplyNote"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "user-reply": "#/components/schemas/notes.UserReplyNote",
            "ai-notetaker-reply": "#/components/schemas/notes.AiNotetakerReplyNote"
          }
        }
      },
      "notes.RepliesPaged": {
        "title": "notes.RepliesPaged",
        "description": "Replies for a Note",
        "type": "object",
        "properties": {
          "data": {
            "description": "A page of Note Replies",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/notes.Reply"
            },
            "maxItems": 100
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationWithTotalCount"
          }
        },
        "required": [
          "data",
          "pagination"
        ]
      },
      "PersonMergeState": {
        "title": "PersonMergeState",
        "description": "Entity representing the state of an individual person merge",
        "type": "object",
        "properties": {
          "id": {
            "description": "The unique identifier for the merge",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 12345
          },
          "status": {
            "description": "Current status of the merge",
            "type": "string",
            "enum": [
              "in-progress",
              "success",
              "failed"
            ],
            "example": "success"
          },
          "taskId": {
            "description": "Identifier for the task this merge belongs to",
            "type": "string",
            "format": "uuid",
            "example": "789e0123-e45b-67c8-d901-234567890123"
          },
          "startedAt": {
            "description": "Timestamp when the merge started",
            "type": "string",
            "format": "date-time",
            "example": "2025-06-03T10:30:00Z"
          },
          "primaryPersonId": {
            "description": "ID of the primary person that other profiles were merged into",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 12345
          },
          "duplicatePersonId": {
            "description": "ID of the duplicate person that was merged into the primary person",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 67890
          },
          "completedAt": {
            "description": "Timestamp when the merge completed (success or failure)",
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "example": "2025-06-03T10:32:15Z"
          },
          "errorMessage": {
            "description": "Error message if the merge failed",
            "type": [
              "string",
              "null"
            ],
            "example": "Primary person not found"
          }
        },
        "required": [
          "id",
          "status",
          "taskId",
          "startedAt",
          "primaryPersonId",
          "duplicatePersonId",
          "completedAt",
          "errorMessage"
        ],
        "additionalProperties": false
      },
      "PersonMergeStatePaged": {
        "title": "PersonMergeStatePaged",
        "description": "Paginated person merge states",
        "type": "object",
        "properties": {
          "data": {
            "description": "Array of person merge states",
            "type": "array",
            "maxItems": 100,
            "items": {
              "$ref": "#/components/schemas/PersonMergeState"
            }
          },
          "pagination": {
            "$ref": "#/components/schemas/Pagination"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "additionalProperties": false
      },
      "PersonMergeRequest": {
        "title": "PersonMergeRequest",
        "description": "Request body for initiating a person merge",
        "type": "object",
        "properties": {
          "primaryPersonId": {
            "description": "The ID of the person profile that will be kept after the merge. All data from the duplicate person will be merged into this person.",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 12345
          },
          "duplicatePersonId": {
            "description": "The ID of the person profile that will be merged and then deleted. All data from this person will be transferred to the primary person.",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 67890
          }
        },
        "required": [
          "primaryPersonId",
          "duplicatePersonId"
        ],
        "additionalProperties": false
      },
      "PersonMergeResponse": {
        "title": "PersonMergeResponse",
        "description": "Response body for initiating a person merge",
        "type": "object",
        "properties": {
          "taskUrl": {
            "description": "URL to check the status of the merge task",
            "type": "string",
            "format": "uri",
            "example": "https://api.affinit.com/tasks/person-merges/123e4567-e89b-12d3-a456-426614174000"
          }
        },
        "required": [
          "taskUrl"
        ],
        "additionalProperties": false
      },
      "PersonPaged": {
        "title": "PersonPaged",
        "description": "PersonPaged model",
        "type": "object",
        "properties": {
          "data": {
            "description": "A page of Person results",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Person"
            },
            "maxItems": 100
          },
          "pagination": {
            "$ref": "#/components/schemas/Pagination"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "additionalProperties": false,
        "example": {
          "data": [
            {
              "id": 1,
              "firstName": "Jane",
              "lastName": "Smith",
              "primaryEmailAddress": "jane.smith@northpointvc.com",
              "emailAddresses": [
                "jane.smith@northpointvc.com"
              ],
              "type": "internal",
              "fields": []
            },
            {
              "id": 2,
              "firstName": "Michael",
              "lastName": "Torres",
              "primaryEmailAddress": "m.torres@northpointvc.com",
              "emailAddresses": [
                "m.torres@northpointvc.com"
              ],
              "type": "external",
              "fields": []
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/persons?cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/persons?cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "PersonBatchOperationUpdateFields": {
        "title": "PersonBatchOperationUpdateFields",
        "description": "Update multiple field values.",
        "type": "object",
        "properties": {
          "operation": {
            "type": "string",
            "const": "update-fields"
          },
          "updates": {
            "type": "array",
            "maxItems": 100,
            "items": {
              "$ref": "#/components/schemas/fields.FieldUpdate"
            }
          }
        },
        "required": [
          "operation",
          "updates"
        ]
      },
      "PersonBatchOperationRequest": {
        "title": "PersonBatchOperationRequest",
        "oneOf": [
          {
            "$ref": "#/components/schemas/PersonBatchOperationUpdateFields"
          }
        ],
        "discriminator": {
          "propertyName": "operation",
          "mapping": {
            "update-fields": "#/components/schemas/PersonBatchOperationUpdateFields"
          }
        }
      },
      "PersonBatchOperations": {
        "title": "PersonBatchOperations",
        "description": "The set of supported batch operation types for persons.",
        "type": "string",
        "enum": [
          "update-fields"
        ]
      },
      "PersonBatchOperationResponse": {
        "title": "PersonBatchOperationResponse",
        "description": "The response body for a single operation within a person batch request.",
        "type": "object",
        "properties": {
          "operation": {
            "description": "The type of batch operation that was performed on the person.",
            "$ref": "#/components/schemas/PersonBatchOperations"
          }
        }
      },
      "reminders.BaseReminder": {
        "title": "reminders.BaseReminder",
        "description": "Shared fields common to both `OneTimeReminder` and `RecurringReminder`. Not used directly — callers receive one of the concrete variants discriminated by `type` on `Reminder`.",
        "type": "object",
        "properties": {
          "id": {
            "description": "The reminder's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1,
            "examples": [
              1
            ]
          },
          "content": {
            "description": "Free-form text attached to the reminder.",
            "type": [
              "string",
              "null"
            ],
            "example": "Follow up about the funding round",
            "examples": [
              "Follow up about the funding round"
            ]
          },
          "dueDate": {
            "description": "When the reminder is next due.",
            "type": "string",
            "format": "date-time",
            "example": "2026-06-01T17:00:00Z",
            "examples": [
              "2026-06-01T17:00:00Z"
            ]
          },
          "creator": {
            "description": "The person who created the reminder.",
            "$ref": "#/components/schemas/PersonReference"
          },
          "owner": {
            "description": "The person responsible for acting on the reminder.",
            "$ref": "#/components/schemas/PersonReference"
          },
          "completer": {
            "description": "The person who completed the reminder. `null` when the reminder is not completed. May be set on a `recurring` reminder even when `completedAt` is `null`.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/PersonReference"
              },
              {
                "type": "null"
              }
            ]
          },
          "company": {
            "description": "The tagged company. At most one of `company`, `person`, or `opportunity` is non-null on any given reminder.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/CompanyReference"
              },
              {
                "type": "null"
              }
            ]
          },
          "person": {
            "description": "The tagged person. At most one of `company`, `person`, or `opportunity` is non-null on any given reminder.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/PersonReference"
              },
              {
                "type": "null"
              }
            ]
          },
          "opportunity": {
            "description": "The tagged opportunity. At most one of `company`, `person`, or `opportunity` is non-null on any given reminder.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/OpportunityReference"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "description": "When the reminder was created.",
            "type": "string",
            "format": "date-time",
            "example": "2023-01-01T00:00:00Z"
          },
          "updatedAt": {
            "description": "When the reminder was last updated. `null` if the reminder has never been updated.",
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "example": "2023-01-01T00:00:00Z"
          }
        },
        "required": [
          "id",
          "content",
          "dueDate",
          "creator",
          "owner",
          "completer",
          "company",
          "person",
          "opportunity",
          "createdAt",
          "updatedAt"
        ]
      },
      "reminders.OneTimeReminder": {
        "title": "reminders.OneTimeReminder",
        "description": "A reminder that fires once on `dueDate`.",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/reminders.BaseReminder"
          }
        ],
        "properties": {
          "type": {
            "description": "Discriminator. Always `one-time` for this variant.",
            "type": "string",
            "const": "one-time",
            "example": "one-time",
            "examples": [
              "one-time"
            ]
          },
          "status": {
            "description": "Derived state. `active` if not completed and due in the future. `overdue` if not completed and due in the past. `completed` if `completedAt` is set.",
            "type": "string",
            "enum": [
              "active",
              "overdue",
              "completed"
            ],
            "examples": [
              "active"
            ]
          },
          "completedAt": {
            "description": "When the reminder was completed. `null` if the reminder is not yet completed.",
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "example": "2023-01-01T00:00:00Z"
          },
          "recurrence": {
            "description": "Always `null` for one-time reminders.",
            "type": "null"
          }
        },
        "required": [
          "type",
          "status",
          "completedAt",
          "recurrence"
        ],
        "unevaluatedProperties": false
      },
      "reminders.RecurringReminder": {
        "title": "reminders.RecurringReminder",
        "description": "A reminder that resets on a recurring cadence. Completion advances `dueDate` by `recurrence.periodDays` instead of setting `completedAt`, so `completedAt` is always `null` for this variant.",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/reminders.BaseReminder"
          }
        ],
        "properties": {
          "type": {
            "description": "Discriminator. Always `recurring` for this variant.",
            "type": "string",
            "const": "recurring",
            "example": "recurring",
            "examples": [
              "recurring"
            ]
          },
          "status": {
            "description": "Derived state. `active` if due in the future, `overdue` if due in the past. Recurring reminders never reach `completed` because completion rolls `dueDate` forward.",
            "type": "string",
            "enum": [
              "active",
              "overdue"
            ],
            "examples": [
              "active"
            ]
          },
          "completedAt": {
            "description": "Always `null` for recurring reminders.",
            "type": "null"
          },
          "recurrence": {
            "description": "Recurrence configuration. Always non-null for recurring reminders.",
            "type": "object",
            "properties": {
              "resetTrigger": {
                "description": "The interaction that resets a recurring reminder's clock. `interaction` covers both emails and calendar events.",
                "type": "string",
                "enum": [
                  "interaction",
                  "email",
                  "event"
                ],
                "examples": [
                  "interaction"
                ]
              },
              "periodDays": {
                "description": "Number of days between successive due dates.",
                "type": "integer",
                "format": "int32",
                "minimum": 1,
                "maximum": 2147483647,
                "example": 30,
                "examples": [
                  30
                ]
              }
            },
            "required": [
              "resetTrigger",
              "periodDays"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "type",
          "status",
          "completedAt",
          "recurrence"
        ],
        "unevaluatedProperties": false
      },
      "reminders.Reminder": {
        "title": "reminders.Reminder",
        "description": "A reminder to follow up with a person, company, or opportunity. Discriminated by `type` — `one-time` reminders fire once on `dueDate`, and `recurring` reminders reset on a cadence.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/reminders.OneTimeReminder"
          },
          {
            "$ref": "#/components/schemas/reminders.RecurringReminder"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "one-time": "#/components/schemas/reminders.OneTimeReminder",
            "recurring": "#/components/schemas/reminders.RecurringReminder"
          }
        }
      },
      "reminders.ReminderPaged": {
        "title": "reminders.ReminderPaged",
        "description": "A page of Reminder objects.",
        "type": "object",
        "properties": {
          "data": {
            "description": "A page of Reminder objects.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reminders.Reminder"
            },
            "maxItems": 100
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationWithTotalCount"
          }
        },
        "required": [
          "data",
          "pagination"
        ]
      },
      "reminders.TaggedCompany": {
        "title": "reminders.TaggedCompany",
        "description": "Reference to a Company tagged on a reminder being created.",
        "type": "object",
        "properties": {
          "type": {
            "description": "Discriminator. Always `company` for this variant.",
            "type": "string",
            "const": "company",
            "example": "company",
            "examples": [
              "company"
            ]
          },
          "id": {
            "description": "The company's unique identifier.",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1,
            "examples": [
              1
            ]
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "reminders.TaggedPerson": {
        "title": "reminders.TaggedPerson",
        "description": "Reference to a Person tagged on a reminder being created. Must reference an external person or collaborator.",
        "type": "object",
        "properties": {
          "type": {
            "description": "Discriminator. Always `person` for this variant.",
            "type": "string",
            "const": "person",
            "example": "person",
            "examples": [
              "person"
            ]
          },
          "id": {
            "description": "The person's unique identifier.",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1,
            "examples": [
              1
            ]
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "reminders.TaggedOpportunity": {
        "title": "reminders.TaggedOpportunity",
        "description": "Reference to an Opportunity tagged on a reminder being created.",
        "type": "object",
        "properties": {
          "type": {
            "description": "Discriminator. Always `opportunity` for this variant.",
            "type": "string",
            "const": "opportunity",
            "example": "opportunity",
            "examples": [
              "opportunity"
            ]
          },
          "id": {
            "description": "The opportunity's unique identifier.",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1,
            "examples": [
              1
            ]
          }
        },
        "required": [
          "type",
          "id"
        ],
        "additionalProperties": false
      },
      "reminders.BaseReminderToBeCreated": {
        "title": "reminders.BaseReminderToBeCreated",
        "description": "Shared fields common to both `reminders.OneTimeReminderToBeCreated` and `reminders.RecurringReminderToBeCreated`. Not used directly — callers send one of the concrete variants discriminated by `type` on `ReminderToBeCreated`.",
        "type": "object",
        "properties": {
          "owner": {
            "description": "The person responsible for the reminder. Must reference an internal user.",
            "$ref": "#/components/schemas/PersonReference"
          },
          "content": {
            "description": "Free-form text attached to the reminder.",
            "type": [
              "string",
              "null"
            ],
            "example": "Follow up about the funding round",
            "examples": [
              "Follow up about the funding round"
            ]
          },
          "entity": {
            "description": "The entity the reminder is attached to. Exactly one of `company`, `person`, or `opportunity` can be tagged on a reminder — the variant is selected by the `type` discriminator.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/reminders.TaggedCompany"
              },
              {
                "$ref": "#/components/schemas/reminders.TaggedPerson"
              },
              {
                "$ref": "#/components/schemas/reminders.TaggedOpportunity"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "company": "#/components/schemas/reminders.TaggedCompany",
                "person": "#/components/schemas/reminders.TaggedPerson",
                "opportunity": "#/components/schemas/reminders.TaggedOpportunity"
              }
            }
          }
        },
        "required": [
          "owner",
          "entity"
        ]
      },
      "reminders.OneTimeReminderToBeCreated": {
        "title": "reminders.OneTimeReminderToBeCreated",
        "description": "Request body for creating a one-time reminder. `dueDate` is required.",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/reminders.BaseReminderToBeCreated"
          }
        ],
        "properties": {
          "type": {
            "description": "Discriminator. Always `one-time` for this variant.",
            "type": "string",
            "const": "one-time",
            "example": "one-time",
            "examples": [
              "one-time"
            ]
          },
          "dueDate": {
            "description": "When the reminder is due.",
            "type": "string",
            "format": "date-time",
            "example": "2026-06-01T17:00:00Z",
            "examples": [
              "2026-06-01T17:00:00Z"
            ]
          }
        },
        "required": [
          "type",
          "dueDate"
        ],
        "unevaluatedProperties": false
      },
      "reminders.RecurringReminderToBeCreated": {
        "title": "reminders.RecurringReminderToBeCreated",
        "description": "Request body for creating a recurring reminder. `recurrence` is required. `dueDate` is optional and computed from `recurrence.periodDays` when omitted.",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/reminders.BaseReminderToBeCreated"
          }
        ],
        "properties": {
          "type": {
            "description": "Discriminator. Always `recurring` for this variant.",
            "type": "string",
            "const": "recurring",
            "example": "recurring",
            "examples": [
              "recurring"
            ]
          },
          "dueDate": {
            "description": "When the reminder is due. Optional for recurring reminders; computed from `recurrence.periodDays` when omitted.",
            "type": "string",
            "format": "date-time",
            "example": "2026-06-01T17:00:00Z",
            "examples": [
              "2026-06-01T17:00:00Z"
            ]
          },
          "recurrence": {
            "description": "Recurrence configuration.",
            "type": "object",
            "properties": {
              "resetTrigger": {
                "description": "The interaction that resets a recurring reminder's clock. `interaction` covers both emails and calendar events.",
                "type": "string",
                "enum": [
                  "interaction",
                  "email",
                  "event"
                ],
                "examples": [
                  "interaction"
                ]
              },
              "periodDays": {
                "description": "Number of days between successive due dates.",
                "type": "integer",
                "format": "int32",
                "minimum": 1,
                "maximum": 2147483647,
                "example": 30,
                "examples": [
                  30
                ]
              }
            },
            "required": [
              "resetTrigger",
              "periodDays"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "type",
          "recurrence"
        ],
        "unevaluatedProperties": false
      },
      "reminders.ReminderToBeCreated": {
        "title": "reminders.ReminderToBeCreated",
        "description": "Request body for creating a reminder. Discriminated by `type` — see `reminders.OneTimeReminderToBeCreated` and `reminders.RecurringReminderToBeCreated`. Exactly one of `company`, `person`, or `opportunity` must be provided.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/reminders.OneTimeReminderToBeCreated"
          },
          {
            "$ref": "#/components/schemas/reminders.RecurringReminderToBeCreated"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "one-time": "#/components/schemas/reminders.OneTimeReminderToBeCreated",
            "recurring": "#/components/schemas/reminders.RecurringReminderToBeCreated"
          }
        }
      },
      "SemanticSearchCriteria": {
        "title": "SemanticSearchCriteria",
        "description": "Semantic search criteria including search prompt and entity type",
        "type": "object",
        "properties": {
          "prompt": {
            "description": "The search prompt to apply.",
            "type": "string",
            "minLength": 1,
            "maxLength": 500,
            "example": "Fintech companies based in the United States with over 50 employees"
          },
          "limit": {
            "description": "Number of items to include in the response.",
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 100,
            "default": 100,
            "example": 10
          },
          "entityType": {
            "description": "The type of entity to search for.",
            "type": "string",
            "const": "companies",
            "example": "companies"
          },
          "listIds": {
            "description": "The IDs of the lists to filter results by.",
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64",
              "minimum": 1,
              "maximum": 9007199254740991
            },
            "maxItems": 100,
            "example": [
              1,
              2
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "prompt"
        ]
      },
      "companies.SemanticSearchCompany": {
        "title": "companies.SemanticSearchCompany",
        "description": "Semantic Search Company result",
        "type": "object",
        "properties": {
          "id": {
            "description": "The company's unique identifier",
            "type": "integer",
            "format": "int64",
            "minimum": 1,
            "maximum": 9007199254740991,
            "example": 1
          },
          "name": {
            "description": "The company's name",
            "type": "string",
            "example": "Horizon Technologies"
          },
          "domain": {
            "description": "The company's primary domain",
            "type": [
              "string",
              "null"
            ],
            "format": "hostname",
            "example": "horizontech.com"
          },
          "domains": {
            "description": "All of the company's domains",
            "type": "array",
            "items": {
              "type": "string",
              "format": "hostname",
              "example": "horizontech.com"
            },
            "maxItems": 100,
            "example": [
              "horizontech.com"
            ]
          },
          "isGlobal": {
            "description": "Whether or not the company is tenant specific",
            "type": "boolean",
            "example": true
          },
          "score": {
            "description": "The calculated relevance score for the company against the search prompt.",
            "type": "string",
            "example": "0.85"
          }
        },
        "required": [
          "id",
          "name",
          "domain",
          "domains",
          "isGlobal",
          "score"
        ],
        "additionalProperties": false
      },
      "SemanticSearchResult": {
        "title": "SemanticSearchResult",
        "description": "Includes the list of entities that matched the search prompt and the explanation for the search.",
        "type": "object",
        "properties": {
          "data": {
            "description": "The list of entities that matched the search prompt",
            "type": "array",
            "maxItems": 100,
            "items": {
              "$ref": "#/components/schemas/companies.SemanticSearchCompany"
            }
          },
          "entityType": {
            "description": "The type of entity that was searched.",
            "type": "string",
            "const": "companies",
            "example": "companies"
          },
          "explanation": {
            "type": "string",
            "example": "This result matched the search criteria."
          }
        },
        "required": [
          "data",
          "entityType",
          "explanation"
        ],
        "additionalProperties": false
      },
      "CompanyMergeTask": {
        "title": "CompanyMergeTask",
        "description": "Company merge task details and status for batch operations",
        "type": "object",
        "properties": {
          "id": {
            "description": "The unique identifier for this merge task",
            "type": "string",
            "format": "uuid",
            "example": "123e4567-e89b-12d3-a456-426614174000"
          },
          "status": {
            "description": "The current status of the batch operation",
            "type": "string",
            "enum": [
              "in-progress",
              "success",
              "failed"
            ],
            "example": "in-progress"
          },
          "resultsSummary": {
            "description": "Summary of merges in this batch task",
            "type": "object",
            "properties": {
              "total": {
                "description": "Total number of merges in the batch",
                "type": "integer",
                "format": "int32",
                "minimum": 0,
                "maximum": 2147483647,
                "example": 5
              },
              "inProgress": {
                "description": "Number of merges currently in progress",
                "type": "integer",
                "format": "int32",
                "minimum": 0,
                "maximum": 2147483647,
                "example": 2
              },
              "success": {
                "description": "Number of successfully completed merges",
                "type": "integer",
                "format": "int32",
                "minimum": 0,
                "maximum": 2147483647,
                "example": 2
              },
              "failed": {
                "description": "Number of failed merges",
                "type": "integer",
                "format": "int32",
                "minimum": 0,
                "maximum": 2147483647,
                "example": 1
              }
            },
            "required": [
              "total",
              "inProgress",
              "success",
              "failed"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "id",
          "status",
          "resultsSummary"
        ],
        "additionalProperties": false
      },
      "CompanyMergeTaskPaged": {
        "title": "CompanyMergeTaskPaged",
        "description": "Paginated list of company merge tasks",
        "type": "object",
        "properties": {
          "data": {
            "description": "Array of company merge tasks",
            "type": "array",
            "maxItems": 100,
            "items": {
              "$ref": "#/components/schemas/CompanyMergeTask"
            },
            "example": [
              {
                "id": "123e4567-e89b-12d3-a456-426614174000",
                "status": "success",
                "resultsSummary": {
                  "total": 1,
                  "inProgress": 0,
                  "success": 1,
                  "failed": 0
                }
              },
              {
                "id": "456e7890-e12b-34c5-d678-901234567890",
                "status": "failed",
                "resultsSummary": {
                  "total": 1,
                  "inProgress": 0,
                  "success": 0,
                  "failed": 1
                }
              }
            ]
          },
          "pagination": {
            "$ref": "#/components/schemas/Pagination"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "additionalProperties": false
      },
      "PersonMergeTask": {
        "title": "PersonMergeTask",
        "description": "Person merge task details and status for batch operations",
        "type": "object",
        "properties": {
          "id": {
            "description": "The unique identifier for this merge task",
            "type": "string",
            "format": "uuid",
            "example": "123e4567-e89b-12d3-a456-426614174000"
          },
          "status": {
            "description": "The current status of the batch operation",
            "type": "string",
            "enum": [
              "in-progress",
              "success",
              "failed"
            ],
            "example": "in-progress"
          },
          "resultsSummary": {
            "description": "Summary of merges in this batch task",
            "type": "object",
            "properties": {
              "total": {
                "description": "Total number of merges in the batch",
                "type": "integer",
                "format": "int32",
                "minimum": 0,
                "maximum": 2147483647,
                "example": 5
              },
              "inProgress": {
                "description": "Number of merges currently in progress",
                "type": "integer",
                "format": "int32",
                "minimum": 0,
                "maximum": 2147483647,
                "example": 2
              },
              "success": {
                "description": "Number of successfully completed merges",
                "type": "integer",
                "format": "int32",
                "minimum": 0,
                "maximum": 2147483647,
                "example": 2
              },
              "failed": {
                "description": "Number of failed merges",
                "type": "integer",
                "format": "int32",
                "minimum": 0,
                "maximum": 2147483647,
                "example": 1
              }
            },
            "required": [
              "total",
              "inProgress",
              "success",
              "failed"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "id",
          "status",
          "resultsSummary"
        ],
        "additionalProperties": false
      },
      "PersonMergeTaskPaged": {
        "title": "PersonMergeTaskPaged",
        "description": "Paginated person merge tasks",
        "type": "object",
        "properties": {
          "data": {
            "description": "Array of person merge tasks",
            "type": "array",
            "maxItems": 100,
            "items": {
              "$ref": "#/components/schemas/PersonMergeTask"
            },
            "example": [
              {
                "id": "123e4567-e89b-12d3-a456-426614174000",
                "status": "success",
                "resultsSummary": {
                  "total": 1,
                  "inProgress": 0,
                  "success": 1,
                  "failed": 0
                }
              },
              {
                "id": "456e7890-e12b-34c5-d678-901234567890",
                "status": "failed",
                "resultsSummary": {
                  "total": 1,
                  "inProgress": 0,
                  "success": 0,
                  "failed": 1
                }
              }
            ]
          },
          "pagination": {
            "$ref": "#/components/schemas/Pagination"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "additionalProperties": false
      },
      "transcripts.BaseTranscript": {
        "title": "transcripts.BaseTranscript",
        "type": "object",
        "properties": {
          "id": {
            "description": "The transcript's unique identifier",
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 2147483647,
            "example": 1234
          },
          "note": {
            "description": "Note associated with the transcript",
            "oneOf": [
              {
                "$ref": "#/components/schemas/notes.AiNotetakerRootNote"
              },
              {
                "$ref": "#/components/schemas/notes.AiNotetakerReplyNote"
              }
            ]
          },
          "createdAt": {
            "description": "The date and time the transcript was created",
            "type": "string",
            "format": "date-time"
          },
          "languageCode": {
            "description": "The language code of the transcript",
            "type": [
              "string"
            ],
            "enum": [
              "de",
              "en",
              "es",
              "fr",
              "id",
              "it",
              "ja",
              "ko",
              "nl",
              "pt",
              "ru",
              "sv",
              "uk",
              "zh"
            ],
            "example": "en"
          }
        },
        "required": [
          "id",
          "note",
          "createdAt",
          "languageCode"
        ]
      },
      "transcripts.TranscriptPaged": {
        "title": "transcripts.TranscriptPaged",
        "description": "transcripts.TranscriptPaged model",
        "type": "object",
        "properties": {
          "data": {
            "description": "A page of Transcript results",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/transcripts.BaseTranscript"
            },
            "maxItems": 100
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationWithTotalCount"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "additionalProperties": false
      },
      "transcripts.Fragment": {
        "title": "transcripts.Fragment",
        "type": "object",
        "properties": {
          "content": {
            "description": "The dialogue fragment of the transcript",
            "type": [
              "string"
            ],
            "example": "I was saying Boo-urns."
          },
          "speaker": {
            "description": "The speaker of the dialogue fragment",
            "type": [
              "string"
            ],
            "example": "Hans Moleman"
          },
          "startTimestamp": {
            "description": "The starting timestamp of the dialogue fragment relative to the beginning of the transcript",
            "type": "string",
            "example": "00:00:06"
          },
          "endTimestamp": {
            "description": "The ending timestamp of the dialogue fragment relative to the beginning of the transcript",
            "type": "string",
            "example": "00:14:41"
          }
        },
        "required": [
          "content",
          "speaker",
          "startTimestamp",
          "endTimestamp"
        ],
        "additionalProperties": false
      },
      "transcripts.FragmentsPreview": {
        "title": "transcripts.FragmentsPreview",
        "description": "A preview for dialogue fragments on a transcript",
        "type": "object",
        "properties": {
          "data": {
            "description": "Preview of dialogue fragments on a transcript",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/transcripts.Fragment"
            },
            "maxItems": 100
          },
          "totalCount": {
            "description": "The total count of the collection parameter.",
            "type": "integer",
            "format": "int64",
            "minimum": 0,
            "maximum": 9007199254740991,
            "example": 42
          }
        }
      },
      "transcripts.Transcript": {
        "title": "transcripts.Transcript",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/transcripts.BaseTranscript"
          }
        ],
        "properties": {
          "fragmentsPreview": {
            "$ref": "#/components/schemas/transcripts.FragmentsPreview"
          }
        },
        "required": [
          "fragmentsPreview"
        ],
        "unevaluatedProperties": false
      },
      "transcripts.FragmentPaged": {
        "title": "transcripts.FragmentPaged",
        "description": "transcripts.FragmentPaged model",
        "type": "object",
        "properties": {
          "data": {
            "description": "A page of Fragments for a transcript",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/transcripts.Fragment"
            },
            "maxItems": 100
          },
          "pagination": {
            "$ref": "#/components/schemas/PaginationWithTotalCount"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "additionalProperties": false
      },
      "UserData": {
        "title": "UserData",
        "description": "An internal user in your organization, including their name, primary email address, all email addresses, photo URL, account status, and account role.",
        "type": "object",
        "properties": {
          "id": {
            "description": "The user's unique identifier",
            "type": "integer",
            "format": "int32",
            "minimum": 1,
            "maximum": 2147483647,
            "example": 1
          },
          "firstName": {
            "description": "The user's first name",
            "type": "string",
            "example": "Jane"
          },
          "lastName": {
            "description": "The user's last name",
            "type": [
              "string",
              "null"
            ],
            "example": "Doe"
          },
          "primaryEmailAddress": {
            "description": "The user's primary email address",
            "type": [
              "string",
              "null"
            ],
            "format": "email",
            "example": "jane.doe@acme.co"
          },
          "emailAddresses": {
            "description": "All of the user's email addresses. Only returned when the authenticated user has the \"Manage Users\" [permission](/pages/external-api-v2/permissions).",
            "type": "array",
            "items": {
              "type": "string",
              "format": "email"
            },
            "maxItems": 100,
            "example": [
              "jane.doe@acme.co",
              "janedoe@gmail.com"
            ]
          },
          "photoUrl": {
            "description": "URL of the user's profile photo",
            "type": [
              "string",
              "null"
            ],
            "format": "uri",
            "example": "https://assets.affinity.co/img/avatars/jane-doe.png"
          },
          "status": {
            "description": "The user's account status.\n- `active`: the user can sign in and use Affinity.\n- `invited`: the user has been invited to the product but has not yet accepted\n  the invitation and thus cannot have taken any actions.\n- `deactivated`: the user was once active but has been deactivated and can no\n  longer use the product.\n",
            "type": "string",
            "enum": [
              "active",
              "invited",
              "deactivated"
            ],
            "example": "active"
          },
          "role": {
            "description": "The user's account role. Only returned when the authenticated user has the \"Manage Users\"\n[permission](/pages/external-api-v2/permissions).\n",
            "type": "string",
            "example": "standard"
          }
        },
        "required": [
          "id",
          "firstName",
          "lastName",
          "primaryEmailAddress",
          "photoUrl",
          "status"
        ],
        "additionalProperties": false
      },
      "UserDataPaged": {
        "title": "UserDataPaged",
        "description": "A paginated list of Users",
        "type": "object",
        "properties": {
          "data": {
            "description": "A page of UserData results",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserData"
            },
            "maxItems": 100
          },
          "pagination": {
            "$ref": "#/components/schemas/Pagination"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "additionalProperties": false
      }
    },
    "responses": {
      "400": {
        "description": "Bad Request",
        "content": {
          "application/json": {
            "schema": {
              "title": "responses.400",
              "type": "object",
              "properties": {
                "errors": {
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "$ref": "#/components/schemas/BadRequestError"
                      },
                      {
                        "$ref": "#/components/schemas/ValidationError"
                      }
                    ],
                    "discriminator": {
                      "propertyName": "code",
                      "mapping": {
                        "bad-request": "#/components/schemas/BadRequestError",
                        "validation": "#/components/schemas/ValidationError"
                      }
                    }
                  }
                }
              },
              "required": [
                "errors"
              ],
              "additionalProperties": false
            }
          }
        },
        "headers": {
          "x-ratelimit-limit-user": {
            "$ref": "#/components/headers/X-Ratelimit-Limit-User"
          },
          "x-ratelimit-limit-user-remaining": {
            "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
          },
          "x-ratelimit-limit-user-reset": {
            "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
          },
          "x-ratelimit-limit-org": {
            "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
          },
          "x-ratelimit-limit-org-remaining": {
            "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
          },
          "x-ratelimit-limit-org-reset": {
            "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
          }
        }
      },
      "403": {
        "description": "Forbidden",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/AuthorizationErrors"
            }
          }
        },
        "headers": {
          "x-ratelimit-limit-user": {
            "$ref": "#/components/headers/X-Ratelimit-Limit-User"
          },
          "x-ratelimit-limit-user-remaining": {
            "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
          },
          "x-ratelimit-limit-user-reset": {
            "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
          },
          "x-ratelimit-limit-org": {
            "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
          },
          "x-ratelimit-limit-org-remaining": {
            "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
          },
          "x-ratelimit-limit-org-reset": {
            "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
          }
        }
      },
      "404": {
        "description": "Not Found",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/NotFoundErrors"
            }
          }
        },
        "headers": {
          "x-ratelimit-limit-user": {
            "$ref": "#/components/headers/X-Ratelimit-Limit-User"
          },
          "x-ratelimit-limit-user-remaining": {
            "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
          },
          "x-ratelimit-limit-user-reset": {
            "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
          },
          "x-ratelimit-limit-org": {
            "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
          },
          "x-ratelimit-limit-org-remaining": {
            "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
          },
          "x-ratelimit-limit-org-reset": {
            "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
          }
        }
      },
      "default": {
        "description": "Errors",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Errors"
            }
          }
        },
        "headers": {
          "x-ratelimit-limit-user": {
            "$ref": "#/components/headers/X-Ratelimit-Limit-User"
          },
          "x-ratelimit-limit-user-remaining": {
            "$ref": "#/components/headers/X-Ratelimit-Limit-User-Remaining"
          },
          "x-ratelimit-limit-user-reset": {
            "$ref": "#/components/headers/X-Ratelimit-Limit-User-Reset"
          },
          "x-ratelimit-limit-org": {
            "$ref": "#/components/headers/X-Ratelimit-Limit-Org"
          },
          "x-ratelimit-limit-org-remaining": {
            "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Remaining"
          },
          "x-ratelimit-limit-org-reset": {
            "$ref": "#/components/headers/X-Ratelimit-Limit-Org-Reset"
          }
        }
      }
    },
    "parameters": {
      "fields.includes": {
        "name": "includes",
        "description": "Additional properties to include in the response",
        "in": "query",
        "required": false,
        "style": "form",
        "explode": true,
        "schema": {
          "title": "fields.includes",
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "filterability",
              "sortability"
            ]
          },
          "uniqueItems": true
        }
      },
      "notes.includes": {
        "name": "includes",
        "description": "Additional properties to include in the response",
        "in": "query",
        "required": false,
        "style": "form",
        "explode": true,
        "schema": {
          "title": "notes.includes",
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "companiesPreview",
              "personsPreview",
              "opportunitiesPreview",
              "repliesCount"
            ]
          },
          "uniqueItems": true
        }
      },
      "note.includes": {
        "name": "includes",
        "description": "Additional properties to include in the response",
        "in": "query",
        "required": false,
        "style": "form",
        "explode": true,
        "schema": {
          "title": "note.includes",
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "companiesPreview",
              "personsPreview",
              "opportunitiesPreview",
              "repliesCount"
            ]
          },
          "uniqueItems": true
        }
      }
    },
    "examples": {
      "default": {
        "description": "Example response for GET /v2/companies/fields.",
        "value": {
          "data": [
            {
              "id": "affinity-data-industry",
              "name": "Industry",
              "type": "enriched",
              "valueType": "filterable-text-multi",
              "enrichmentSource": "affinity-data",
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "affinity-data-last-funding-amount",
              "name": "Last Funding Amount (USD)",
              "type": "enriched",
              "valueType": "number",
              "enrichmentSource": "affinity-data",
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "affinity-data-last-funding-date",
              "name": "Last Funding Date",
              "type": "enriched",
              "valueType": "datetime",
              "enrichmentSource": "affinity-data",
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "affinity-data-location",
              "name": "Location",
              "type": "enriched",
              "valueType": "location",
              "enrichmentSource": "affinity-data",
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "field-1",
              "name": "Custom global field",
              "type": "global",
              "valueType": "text",
              "enrichmentSource": null,
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "last-email",
              "name": "Last Email",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null
            },
            {
              "id": "persons",
              "name": "People",
              "type": "enriched",
              "valueType": "person-multi",
              "enrichmentSource": null,
              "createdAt": null
            }
          ],
          "pagination": {
            "prevUrl": null,
            "nextUrl": "https://api.affinity.co/v2/companies/fields?cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "filterability-sortability": {
        "description": "Example response for GET /v2/companies/fields when `includes=filterability&includes=sortability` is requested. `filterability` and `sortability` are `null` for fields that are not filterable or sortable.",
        "value": {
          "data": [
            {
              "id": "affinity-data-last-funding-amount",
              "name": "Last Funding Amount (USD)",
              "type": "enriched",
              "valueType": "number",
              "enrichmentSource": "affinity-data",
              "createdAt": "2024-03-07T20:21:42Z",
              "filterability": {
                "filterableFieldType": "field-only",
                "operators": [
                  {
                    "id": "is-between",
                    "name": "Is between",
                    "numberOfValuesRequired": "two"
                  },
                  {
                    "id": "is-greater-than",
                    "name": "Is greater than",
                    "numberOfValuesRequired": "one"
                  },
                  {
                    "id": "is-greater-than-or-equal-to",
                    "name": "Is greater than or equal to",
                    "numberOfValuesRequired": "one"
                  },
                  {
                    "id": "is-less-than",
                    "name": "Is less than",
                    "numberOfValuesRequired": "one"
                  },
                  {
                    "id": "is-less-than-or-equal-to",
                    "name": "Is less than or equal to",
                    "numberOfValuesRequired": "one"
                  },
                  {
                    "id": "is-equal-to",
                    "name": "Is equal to",
                    "numberOfValuesRequired": "one"
                  },
                  {
                    "id": "is-not-equal-to",
                    "name": "Is not equal to",
                    "numberOfValuesRequired": "one"
                  },
                  {
                    "id": "is-not-empty",
                    "name": "Is not empty",
                    "numberOfValuesRequired": "none"
                  },
                  {
                    "id": "is-empty",
                    "name": "Is empty",
                    "numberOfValuesRequired": "none"
                  }
                ]
              },
              "sortability": {
                "sortableFieldType": "field-only"
              }
            },
            {
              "id": "last-email",
              "name": "Last Email",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null,
              "filterability": {
                "filterableFieldType": "attribute-on-field",
                "attributes": [
                  {
                    "id": "date-of-activity",
                    "name": "Date of Activity",
                    "valueType": "date",
                    "operators": [
                      {
                        "id": "is-not-within-the-next",
                        "name": "Is not within the next",
                        "numberOfValuesRequired": "one",
                        "relativeDateUnits": [
                          "day",
                          "week",
                          "month",
                          "quarter",
                          "year"
                        ]
                      },
                      {
                        "id": "is-within-the-next",
                        "name": "Is within the next",
                        "numberOfValuesRequired": "one",
                        "relativeDateUnits": [
                          "day",
                          "week",
                          "month",
                          "quarter",
                          "year"
                        ]
                      },
                      {
                        "id": "is-not-within-the-last",
                        "name": "Is not within the last",
                        "numberOfValuesRequired": "one",
                        "relativeDateUnits": [
                          "day",
                          "week",
                          "month",
                          "quarter",
                          "year"
                        ]
                      },
                      {
                        "id": "is-within-the-last",
                        "name": "Is within the last",
                        "numberOfValuesRequired": "one",
                        "relativeDateUnits": [
                          "day",
                          "week",
                          "month",
                          "quarter",
                          "year"
                        ]
                      },
                      {
                        "id": "is-between",
                        "name": "Is between",
                        "numberOfValuesRequired": "two"
                      },
                      {
                        "id": "is-after",
                        "name": "Is after",
                        "numberOfValuesRequired": "one"
                      },
                      {
                        "id": "is-before",
                        "name": "Is before",
                        "numberOfValuesRequired": "one"
                      },
                      {
                        "id": "is-on",
                        "name": "Is on",
                        "numberOfValuesRequired": "one"
                      },
                      {
                        "id": "is-not-on",
                        "name": "Is not on",
                        "numberOfValuesRequired": "one"
                      },
                      {
                        "id": "is-not-empty",
                        "name": "Is not empty",
                        "numberOfValuesRequired": "none"
                      },
                      {
                        "id": "is-empty",
                        "name": "Is empty",
                        "numberOfValuesRequired": "none"
                      }
                    ]
                  }
                ]
              },
              "sortability": {
                "sortableFieldType": "attribute-on-field",
                "attributes": [
                  {
                    "id": "date-of-activity",
                    "name": "Date of Activity",
                    "valueType": "date"
                  }
                ]
              }
            }
          ],
          "pagination": {
            "prevUrl": null,
            "nextUrl": null
          }
        }
      },
      "dropdown-options": {
        "description": "Example response for dropdown options on a dropdown field.",
        "value": {
          "data": [
            {
              "type": "dropdown",
              "id": 1,
              "text": "Seed"
            },
            {
              "type": "dropdown",
              "id": 2,
              "text": "Series A"
            },
            {
              "type": "dropdown",
              "id": 3,
              "text": "Series B"
            }
          ],
          "pagination": {
            "prevUrl": null,
            "nextUrl": null
          }
        }
      },
      "dropdown-options-ranked": {
        "description": "Example response for dropdown options on a ranked dropdown field.",
        "value": {
          "data": [
            {
              "type": "ranked-dropdown",
              "id": 1,
              "text": "High",
              "rank": 0,
              "color": "green"
            },
            {
              "type": "ranked-dropdown",
              "id": 2,
              "text": "Medium",
              "rank": 1,
              "color": "orange"
            },
            {
              "type": "ranked-dropdown",
              "id": 3,
              "text": "Low",
              "rank": 2,
              "color": "red"
            }
          ],
          "pagination": {
            "prevUrl": null,
            "nextUrl": null
          }
        }
      },
      "filter-by-dropdown": {
        "summary": "Filter by a dropdown field value",
        "description": "Filter companies where a dropdown field matches specific options. Use `GET /v2/companies/fields` to discover field IDs, valueTypes, and dropdown option IDs.",
        "value": {
          "filters": {
            "operator": "and",
            "filters": [
              {
                "fieldId": "field-4574182",
                "valueType": "dropdown",
                "operator": "is-any-of",
                "value": [
                  {
                    "dropdownOptionId": 1
                  },
                  {
                    "dropdownOptionId": 2
                  }
                ]
              }
            ]
          }
        }
      },
      "filter-and-sort": {
        "summary": "Filter by last email date and sort",
        "description": "Filter companies to those with a last email within the past 30 days, sorted by employee count. The `attributeId` is required for interaction fields like `last-email` — use `GET /v2/companies/fields` to confirm which fields require an `attributeId`.",
        "value": {
          "filters": {
            "operator": "and",
            "filters": [
              {
                "fieldId": "last-email",
                "attributeId": "date-of-activity",
                "valueType": "date",
                "operator": "is-within-the-last",
                "value": {
                  "amount": [
                    30
                  ],
                  "unit": "day"
                }
              }
            ]
          },
          "sorts": [
            {
              "fieldId": "affinity-data-employees-current",
              "direction": "desc"
            }
          ]
        }
      },
      "grouped-filter": {
        "summary": "Nested AND/OR filter group",
        "description": "Filter companies matching a dropdown value AND (an employee count condition OR an is-empty condition). Filter groups can be nested to arbitrary depth to build complex boolean logic.",
        "value": {
          "filters": {
            "operator": "and",
            "filters": [
              {
                "fieldId": "field-4574182",
                "valueType": "dropdown",
                "operator": "is-any-of",
                "value": [
                  {
                    "dropdownOptionId": 1
                  }
                ]
              },
              {
                "operator": "or",
                "filters": [
                  {
                    "fieldId": "affinity-data-employees-current",
                    "valueType": "number",
                    "operator": "is-greater-than",
                    "value": 100
                  },
                  {
                    "fieldId": "affinity-data-employees-current",
                    "valueType": "number",
                    "operator": "is-empty"
                  }
                ]
              }
            ]
          }
        }
      },
      "search-with-filter": {
        "summary": "Keyword search combined with a filter",
        "description": "Search for companies matching the keyword \"Acme\" AND where a dropdown field is not empty. Results must satisfy both the search term and the filter conditions (intersection).",
        "value": {
          "search": {
            "term": "Acme"
          },
          "filters": {
            "operator": "and",
            "filters": [
              {
                "fieldId": "field-4574182",
                "valueType": "dropdown",
                "operator": "is-not-empty"
              }
            ]
          }
        }
      },
      "company-enriched": {
        "description": "Example response on a Company using `types=enriched`.",
        "value": {
          "data": [
            {
              "id": "affinity-data-description",
              "name": "Description",
              "type": "enriched",
              "enrichmentSource": "affinity-data",
              "value": {
                "type": "text",
                "data": "Horizon Technologies is a leading technology company specializing in enterprise software and cloud infrastructure."
              }
            },
            {
              "id": "affinity-data-industry",
              "name": "Industry",
              "type": "enriched",
              "enrichmentSource": "affinity-data",
              "value": {
                "type": "filterable-text-multi",
                "data": [
                  "Healthcare",
                  "Fintech",
                  "SaaS"
                ]
              }
            },
            {
              "id": "affinity-data-investment-stage",
              "name": "Investment Stage",
              "type": "enriched",
              "enrichmentSource": "affinity-data",
              "value": {
                "type": "filterable-text",
                "data": "Public Markets"
              }
            },
            {
              "id": "affinity-data-investors",
              "name": "Investors",
              "type": "enriched",
              "enrichmentSource": "affinity-data",
              "value": {
                "type": "filterable-text-multi",
                "data": [
                  "Alex Rivera",
                  "Taylor Wong"
                ]
              }
            },
            {
              "id": "affinity-data-last-funding-amount",
              "name": "Last Funding Amount (USD)",
              "type": "enriched",
              "enrichmentSource": "affinity-data",
              "value": {
                "type": "number",
                "data": 100000000
              }
            },
            {
              "id": "affinity-data-last-funding-date",
              "name": "Last Funding Date",
              "type": "enriched",
              "enrichmentSource": "affinity-data",
              "value": {
                "type": "datetime",
                "data": "2023-01-01T00:00:00Z"
              }
            },
            {
              "id": "affinity-data-linkedin-url",
              "name": "LinkedIn URL",
              "type": "enriched",
              "enrichmentSource": "affinity-data",
              "value": {
                "type": "text",
                "data": "https://linkedin.com/company/horizontech"
              }
            },
            {
              "id": "affinity-data-location",
              "name": "Location",
              "type": "enriched",
              "enrichmentSource": "affinity-data",
              "value": {
                "type": "location",
                "data": {
                  "streetAddress": null,
                  "city": "Fairfield",
                  "state": "New Jersey",
                  "country": "United States",
                  "continent": null
                }
              }
            },
            {
              "id": "affinity-data-number-of-employees",
              "name": "Number of Employees",
              "type": "enriched",
              "enrichmentSource": "affinity-data",
              "value": {
                "type": "number",
                "data": 3990
              }
            },
            {
              "id": "affinity-data-total-funding-amount",
              "name": "Total Funding Amount (USD)",
              "type": "enriched",
              "enrichmentSource": "affinity-data",
              "value": {
                "type": "number",
                "data": 90000000
              }
            },
            {
              "id": "affinity-data-year-founded",
              "name": "Year Founded",
              "type": "enriched",
              "enrichmentSource": "affinity-data",
              "value": {
                "type": "number",
                "data": 1952
              }
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/companies/1/fields?types=enriched&cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/companies/1/fields?types=enriched&cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "company-relationship-intelligence": {
        "description": "Example response on a Company using `types=relationship-intelligence`.",
        "value": {
          "data": [
            {
              "id": "first-email",
              "type": "relationship-intelligence",
              "enrichmentSource": null,
              "name": "First Email",
              "value": {
                "type": "interaction",
                "data": {
                  "id": 1,
                  "type": "email",
                  "subject": "Defective Products",
                  "sentAt": "2020-01-01T00:00:00Z",
                  "from": {
                    "emailAddress": "alex.rivera@horizontech.com",
                    "person": {
                      "id": 1,
                      "firstName": "Alex",
                      "lastName": "Rivera",
                      "primaryEmailAddress": "alex.rivera@horizontech.com",
                      "type": "internal"
                    }
                  },
                  "to": [
                    {
                      "emailAddress": "jordan.lee@crestwoodcap.com",
                      "person": {
                        "id": 2,
                        "firstName": "Jordan",
                        "lastName": "Lee",
                        "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                        "type": "external"
                      }
                    }
                  ],
                  "cc": []
                }
              }
            },
            {
              "id": "last-email",
              "type": "relationship-intelligence",
              "enrichmentSource": null,
              "name": "Last Email",
              "value": {
                "type": "interaction",
                "data": {
                  "id": 2,
                  "type": "email",
                  "subject": "re: re: re: Defective Products",
                  "sentAt": "2020-02-01T00:00:00Z",
                  "from": {
                    "emailAddress": "alex.rivera@horizontech.com",
                    "person": {
                      "id": 1,
                      "firstName": "Alex",
                      "lastName": "Rivera",
                      "primaryEmailAddress": "alex.rivera@horizontech.com",
                      "type": "internal"
                    }
                  },
                  "to": [
                    {
                      "emailAddress": "jordan.lee@crestwoodcap.com",
                      "person": {
                        "id": 2,
                        "firstName": "Jordan",
                        "lastName": "Lee",
                        "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                        "type": "external"
                      }
                    }
                  ],
                  "cc": []
                }
              }
            },
            {
              "id": "source-of-introduction",
              "type": "relationship-intelligence",
              "enrichmentSource": null,
              "name": "Source of Introduction",
              "value": {
                "type": "person",
                "data": {
                  "id": 3,
                  "firstName": "Taylor",
                  "lastName": "Wong",
                  "primaryEmailAddress": "taylor.wong@northpointvc.com",
                  "type": "internal"
                }
              }
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/companies/1/fields?types=relationship-intelligence&cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/companies/1/fields?types=relationship-intelligence&cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "company-global": {
        "description": "Example response on a Company using `types=global`.",
        "value": {
          "data": [
            {
              "id": "field-1",
              "type": "global",
              "enrichmentSource": null,
              "name": "Global Number Field",
              "value": {
                "type": "number",
                "data": 100
              }
            },
            {
              "id": "field-2",
              "type": "global",
              "enrichmentSource": null,
              "name": "Global Text Field",
              "value": {
                "type": "text",
                "data": "Some global text value"
              }
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/companies/1/fields?types=global&cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/companies/1/fields?types=global&cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "update-fields": {
        "description": "Example request for an `update-fields` operation.",
        "value": {
          "operation": "update-fields",
          "updates": [
            {
              "id": "field-1",
              "value": {
                "type": "company",
                "data": {
                  "id": 1
                }
              }
            },
            {
              "id": "field-2",
              "value": {
                "type": "company-multi",
                "data": [
                  {
                    "id": 1
                  },
                  {
                    "id": 2
                  }
                ]
              }
            },
            {
              "id": "field-3",
              "value": {
                "type": "datetime",
                "data": "2023-01-01T00:00:00Z"
              }
            },
            {
              "id": "field-4",
              "value": {
                "type": "dropdown",
                "data": {
                  "dropdownOptionId": 1
                }
              }
            },
            {
              "id": "field-5",
              "value": {
                "type": "dropdown-multi",
                "data": [
                  {
                    "dropdownOptionId": 1
                  },
                  {
                    "dropdownOptionId": 2
                  }
                ]
              }
            },
            {
              "id": "field-6",
              "value": {
                "type": "location",
                "data": {
                  "streetAddress": "1 Main Street",
                  "city": "San Francisco",
                  "state": "California",
                  "country": "United States",
                  "continent": "North America"
                }
              }
            },
            {
              "id": "field-7",
              "value": {
                "type": "location-multi",
                "data": [
                  {
                    "streetAddress": "1 Main Street",
                    "city": "San Francisco",
                    "state": "California",
                    "country": "United States",
                    "continent": "North America"
                  },
                  {
                    "streetAddress": "1600 Pennsylvania Avenue NW",
                    "city": "Washington",
                    "state": "DC",
                    "country": "United States",
                    "continent": "North America"
                  }
                ]
              }
            },
            {
              "id": "field-8",
              "value": {
                "type": "number",
                "data": 100
              }
            },
            {
              "id": "field-9",
              "value": {
                "type": "number-multi",
                "data": [
                  100,
                  200,
                  300
                ]
              }
            },
            {
              "id": "field-10",
              "value": {
                "type": "person",
                "data": {
                  "id": 1
                }
              }
            },
            {
              "id": "field-11",
              "value": {
                "type": "person-multi",
                "data": [
                  {
                    "id": 1
                  },
                  {
                    "id": 2
                  }
                ]
              }
            },
            {
              "id": "field-12",
              "value": {
                "type": "ranked-dropdown",
                "data": {
                  "dropdownOptionId": 1
                }
              }
            },
            {
              "id": "field-13",
              "value": {
                "type": "text",
                "data": "Some new text"
              }
            }
          ]
        }
      },
      "update-fields-2": {
        "description": "Example response from an update-fields operation.",
        "value": {
          "operation": "update-fields"
        }
      },
      "company": {
        "description": "Example response on a field with a company value.",
        "value": {
          "id": "field-1",
          "name": "Field with company value",
          "type": "global",
          "enrichmentSource": null,
          "value": {
            "type": "company",
            "data": {
              "id": 1,
              "name": "Horizon Technologies",
              "domain": "horizontech.com"
            }
          }
        }
      },
      "company-multi": {
        "description": "Example response on a field with a company-multi value.",
        "value": {
          "id": "field-2",
          "name": "Field with company-multi value",
          "type": "global",
          "enrichmentSource": null,
          "value": {
            "type": "company-multi",
            "data": [
              {
                "id": 1,
                "name": "Horizon Technologies",
                "domain": "horizontech.com"
              },
              {
                "id": 2,
                "name": "Crestwood Capital",
                "domain": "crestwoodcap.com"
              }
            ]
          }
        }
      },
      "datetime": {
        "description": "Example response on a field with a datetime value.",
        "value": {
          "id": "field-3",
          "name": "Field with datetime value",
          "type": "global",
          "enrichmentSource": null,
          "value": {
            "type": "datetime",
            "data": "2023-01-01T00:00:00Z"
          }
        }
      },
      "dropdown": {
        "description": "Example response on a field with a dropdown value.",
        "value": {
          "id": "field-4",
          "name": "Field with dropdown value",
          "type": "global",
          "enrichmentSource": null,
          "value": {
            "type": "dropdown",
            "data": {
              "dropdownOptionId": 1,
              "text": "Option 1"
            }
          }
        }
      },
      "dropdown-multi": {
        "description": "Example response on a field with a dropdown-multi value.",
        "value": {
          "id": "field-5",
          "name": "Field with dropdown-multi value",
          "type": "global",
          "enrichmentSource": null,
          "value": {
            "type": "dropdown-multi",
            "data": [
              {
                "dropdownOptionId": 1,
                "text": "Series A"
              },
              {
                "dropdownOptionId": 2,
                "text": "Series B"
              }
            ]
          }
        }
      },
      "filterable-text": {
        "description": "Example response on a field with a filterable-text value.",
        "value": {
          "id": "field-6",
          "name": "Field with filterable-text value",
          "type": "global",
          "enrichmentSource": null,
          "value": {
            "type": "filterable-text",
            "data": "A text value"
          }
        }
      },
      "filterable-text-multi": {
        "description": "Example response on a field with a filterable-text-multi value.",
        "value": {
          "id": "field-7",
          "name": "Field with filterable-text-multi value",
          "type": "global",
          "enrichmentSource": null,
          "value": {
            "type": "filterable-text-multi",
            "data": [
              "Healthcare",
              "Fintech"
            ]
          }
        }
      },
      "formula-number": {
        "description": "Example response on a field with a formula-number value.",
        "value": {
          "id": "field-8",
          "name": "Field with formula-number value",
          "type": "global",
          "enrichmentSource": null,
          "value": {
            "type": "formula-number",
            "data": {
              "calculatedValue": 100
            }
          }
        }
      },
      "interaction": {
        "description": "Example response on a field with a interaction value.",
        "value": {
          "id": "field-9",
          "name": "Field with interaction value",
          "type": "global",
          "enrichmentSource": null,
          "value": {
            "type": "interaction",
            "data": {
              "id": 1,
              "type": "meeting",
              "title": "Defective Products",
              "allDay": false,
              "startTime": "2020-01-02T00:00:00Z",
              "endTime": "2020-01-02T01:00:00Z",
              "attendees": [
                {
                  "emailAddress": "alex.rivera@horizontech.com",
                  "person": {
                    "id": 1,
                    "firstName": "Alex",
                    "lastName": "Rivera",
                    "primaryEmailAddress": "alex.rivera@horizontech.com",
                    "type": "internal"
                  }
                },
                {
                  "emailAddress": "jordan.lee@crestwoodcap.com",
                  "person": {
                    "id": 2,
                    "firstName": "Jordan",
                    "lastName": "Lee",
                    "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                    "type": "external"
                  }
                }
              ]
            }
          }
        }
      },
      "location": {
        "description": "Example response on a field with a location value.",
        "value": {
          "id": "field-10",
          "name": "Field with location value",
          "type": "global",
          "enrichmentSource": null,
          "value": {
            "type": "location",
            "data": {
              "streetAddress": "1 Main Street",
              "city": "San Francisco",
              "state": "California",
              "country": "United States",
              "continent": "North America"
            }
          }
        }
      },
      "location-multi": {
        "description": "Example response on a field with a location-multi value.",
        "value": {
          "id": "field-4",
          "name": "Field with location-multi value",
          "type": "list",
          "enrichmentSource": null,
          "value": {
            "type": "location-multi",
            "data": [
              {
                "city": "San Francisco",
                "state": "California",
                "country": "United States",
                "continent": "North America",
                "streetAddress": null
              },
              {
                "city": "New York",
                "state": "New York",
                "country": "United States",
                "continent": "North America",
                "streetAddress": null
              }
            ]
          }
        }
      },
      "number": {
        "description": "Example response on a field with a number value.",
        "value": {
          "id": "field-12",
          "name": "Field with number value",
          "type": "global",
          "enrichmentSource": null,
          "value": {
            "type": "number",
            "data": 100
          }
        }
      },
      "number-multi": {
        "description": "Example response on a field with a number-multi value.",
        "value": {
          "id": "field-13",
          "name": "Field with number-multi value",
          "type": "global",
          "enrichmentSource": null,
          "value": {
            "type": "number-multi",
            "data": [
              1000000,
              2500000,
              5000000
            ]
          }
        }
      },
      "person": {
        "description": "Example response on a field with a person value.",
        "value": {
          "id": "field-14",
          "name": "Field with person value",
          "type": "global",
          "enrichmentSource": null,
          "value": {
            "type": "person",
            "data": {
              "id": 1,
              "firstName": "Alex",
              "lastName": "Rivera",
              "primaryEmailAddress": "alex.rivera@horizontech.com",
              "type": "internal"
            }
          }
        }
      },
      "person-multi": {
        "description": "Example response on a field with a person-multi value.",
        "value": {
          "id": "field-3",
          "name": "Field with person-multi value",
          "type": "global",
          "enrichmentSource": null,
          "value": {
            "type": "person-multi",
            "data": [
              {
                "id": 1,
                "firstName": "Alex",
                "lastName": "Rivera",
                "primaryEmailAddress": "alex.rivera@horizontech.com",
                "type": "internal"
              },
              {
                "id": 2,
                "firstName": "Jordan",
                "lastName": "Lee",
                "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                "type": "external"
              }
            ]
          }
        }
      },
      "ranked-dropdown": {
        "description": "Example response on a field with a ranked-dropdown value.",
        "value": {
          "id": "field-16",
          "name": "Field with ranked-dropdown value",
          "type": "global",
          "enrichmentSource": null,
          "value": {
            "type": "ranked-dropdown",
            "data": {
              "dropdownOptionId": 1,
              "text": "Option 1",
              "rank": 1,
              "color": "gray"
            }
          }
        }
      },
      "text": {
        "description": "Example response on a field with a text value.",
        "value": {
          "id": "field-17",
          "name": "Field with text value",
          "type": "global",
          "enrichmentSource": null,
          "value": {
            "type": "text",
            "data": "Hello"
          }
        }
      },
      "company-2": {
        "description": "Example request on a field with a company value.",
        "value": {
          "value": {
            "type": "company",
            "data": {
              "id": 1
            }
          }
        }
      },
      "company-multi-2": {
        "description": "Example request on a field with a company-multi value.",
        "value": {
          "value": {
            "type": "company-multi",
            "data": [
              {
                "id": 1
              },
              {
                "id": 2
              }
            ]
          }
        }
      },
      "datetime-2": {
        "description": "Example request on a field with a datetime value.",
        "value": {
          "value": {
            "type": "datetime",
            "data": "2023-01-01T00:00:00Z"
          }
        }
      },
      "dropdown-2": {
        "description": "Example request on a field with a dropdown value.",
        "value": {
          "value": {
            "type": "dropdown",
            "data": {
              "dropdownOptionId": 1
            }
          }
        }
      },
      "dropdown-multi-2": {
        "description": "Example request on a field with a dropdown-multi value.",
        "value": {
          "value": {
            "type": "dropdown-multi",
            "data": [
              {
                "dropdownOptionId": 1
              },
              {
                "dropdownOptionId": 2
              }
            ]
          }
        }
      },
      "filterable-text-2": {
        "description": "Example request on a field with a filterable-text value.",
        "value": {
          "value": {
            "type": "filterable-text",
            "data": "A text value"
          }
        }
      },
      "filterable-text-multi-2": {
        "description": "Example request on a field with a filterable-text-multi value.",
        "value": {
          "value": {
            "type": "filterable-text-multi",
            "data": [
              "A text value",
              "Another text value"
            ]
          }
        }
      },
      "location-2": {
        "description": "Example request on a field with a location value.",
        "value": {
          "value": {
            "type": "location",
            "data": {
              "streetAddress": "1 Main Street",
              "city": "San Francisco",
              "state": "California",
              "country": "United States",
              "continent": "North America"
            }
          }
        }
      },
      "location-multi-2": {
        "description": "Example request on a field with a location-multi value.",
        "value": {
          "value": {
            "type": "location-multi",
            "data": [
              {
                "streetAddress": "1 Main Street",
                "city": "San Francisco",
                "state": "California",
                "country": "United States",
                "continent": "North America"
              },
              {
                "streetAddress": "1600 Pennsylvania Avenue NW",
                "city": "Washington",
                "state": "DC",
                "country": "United States",
                "continent": "North America"
              }
            ]
          }
        }
      },
      "number-2": {
        "description": "Example request on a field with a number value.",
        "value": {
          "value": {
            "type": "number",
            "data": 100
          }
        }
      },
      "number-multi-2": {
        "description": "Example request on a field with a number-multi value.",
        "value": {
          "value": {
            "type": "number-multi",
            "data": [
              100,
              200,
              300
            ]
          }
        }
      },
      "person-2": {
        "description": "Example request on a field with a person value.",
        "value": {
          "value": {
            "type": "person",
            "data": {
              "id": 1
            }
          }
        }
      },
      "person-multi-2": {
        "description": "Example request on a field with a person-multi value.",
        "value": {
          "value": {
            "type": "person-multi",
            "data": [
              {
                "id": 1
              },
              {
                "id": 2
              }
            ]
          }
        }
      },
      "ranked-dropdown-2": {
        "description": "Example request on a field with a ranked-dropdown value.",
        "value": {
          "value": {
            "type": "ranked-dropdown",
            "data": {
              "dropdownOptionId": 1
            }
          }
        }
      },
      "text-2": {
        "description": "Example request on a field with a text value.",
        "value": {
          "value": {
            "type": "text",
            "data": "Some new text"
          }
        }
      },
      "relationships": {
        "value": {
          "data": [
            {
              "person1": {
                "id": 1,
                "firstName": "Jane",
                "lastName": "Smith",
                "primaryEmailAddress": "jane.smith@northpointvc.com"
              },
              "person2": {
                "id": 10,
                "firstName": "John",
                "lastName": "Doe",
                "primaryEmailAddress": "john.doe@acme.co"
              },
              "interactionScore": 0.92,
              "linkedIn": null
            },
            {
              "person1": {
                "id": 2,
                "firstName": "Priya",
                "lastName": "Patel",
                "primaryEmailAddress": "priya.patel@northpointvc.com"
              },
              "person2": {
                "id": 11,
                "firstName": "Alex",
                "lastName": "Kim",
                "primaryEmailAddress": "alex.kim@acme.co"
              },
              "interactionScore": 0.68,
              "linkedIn": {
                "connectedOn": "2022-06-15"
              }
            },
            {
              "person1": {
                "id": 3,
                "firstName": "Sam",
                "lastName": null,
                "primaryEmailAddress": "sam@northpointvc.com"
              },
              "person2": {
                "id": 12,
                "firstName": "Robin",
                "lastName": "Hill",
                "primaryEmailAddress": null
              },
              "interactionScore": 0.35,
              "linkedIn": null
            }
          ],
          "pagination": {
            "prevUrl": null,
            "nextUrl": "https://api.affinity.co/v2/companies/100/relationships?cursor=ICAgICAgIGFmdGVyOjo6Mw"
          }
        }
      },
      "merges-list": {
        "summary": "List of company merges",
        "description": "Example response showing multiple company merges with different statuses",
        "value": {
          "data": [
            {
              "id": 12,
              "status": "success",
              "taskId": "789e0123-e45b-67c8-d901-234567890123",
              "startedAt": "2025-06-03T10:30:00Z",
              "primaryCompanyId": 12345,
              "duplicateCompanyId": 67890,
              "completedAt": "2025-06-03T10:32:15Z",
              "errorMessage": null
            },
            {
              "id": 13,
              "status": "failed",
              "taskId": "456e7890-1234-5678-9012-345678901234",
              "startedAt": "2025-06-03T09:15:00Z",
              "primaryCompanyId": 54321,
              "duplicateCompanyId": 98765,
              "completedAt": "2025-06-03T09:16:30Z",
              "errorMessage": "Primary company not found"
            }
          ],
          "pagination": {
            "nextUrl": "https://api.affinity.co/v2/companies/merge?cursor=eyJpZCI6NDU2ZTc4OTAtZTEyYi0zNGM1LWQ2NzgtOTAxMjM0NTY3ODkwfQ==",
            "prevUrl": null
          }
        }
      },
      "merge-companies": {
        "summary": "Merge two company profiles",
        "description": "Example request to merge a duplicate company profile into a primary company profile. The primary company (ID 12345) will be kept and all data from the duplicate company (ID 67890) will be merged into it.",
        "value": {
          "primaryCompanyId": 12345,
          "duplicateCompanyId": 67890
        }
      },
      "merge-initiated": {
        "summary": "Merge task initiated",
        "description": "Response when a company merge task has been accepted for processing. The task ID can be used to track the progress of the merge task.",
        "value": {
          "taskUrl": "https://api.affinity.co/v2/tasks/company-merges/123e4567-e89b-12d3-a456-426614174000"
        }
      },
      "succeeded-merge": {
        "summary": "Succeeded company merge",
        "description": "Example of a successful company merge",
        "value": {
          "id": 12345,
          "status": "success",
          "taskId": "1ac19acd-674c-49a0-819a-cd674cc9a042",
          "startedAt": "2025-06-03T10:30:00Z",
          "primaryCompanyId": 12345,
          "duplicateCompanyId": 67890,
          "completedAt": "2025-06-03T10:32:15Z",
          "errorMessage": null
        }
      },
      "failed-merge": {
        "summary": "Failed company merge",
        "description": "Example of a failed company merge with error details",
        "value": {
          "id": 67890,
          "status": "failed",
          "taskId": "789e0123-e45b-67c8-d901-234567890123",
          "startedAt": "2025-06-03T09:15:00Z",
          "primaryCompanyId": 54321,
          "duplicateCompanyId": 98765,
          "completedAt": "2025-06-03T09:16:30Z",
          "errorMessage": "Primary company not found"
        }
      },
      "in-progress-merge": {
        "summary": "In-progress company merge",
        "description": "Example of a company merge currently being processed",
        "value": {
          "id": 98765,
          "status": "in-progress",
          "taskId": "456e7890-e12b-34c5-d678-901234567890",
          "startedAt": "2025-06-03T11:45:00Z",
          "primaryCompanyId": 24680,
          "duplicateCompanyId": 13579,
          "completedAt": null,
          "errorMessage": null
        }
      },
      "submit-feedback": {
        "summary": "Submit feedback",
        "description": "Example request to submit feedback to Affinity.",
        "value": {
          "type": "mcp",
          "subject": "Issue with MCP tool response formatting",
          "body": "When using the MCP tool, the response formatting appears inconsistent"
        }
      },
      "success": {
        "value": {
          "data": [
            {
              "id": 1,
              "name": "My Companies",
              "type": "company",
              "isPublic": false,
              "ownerId": 1,
              "creatorId": 1,
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": 2,
              "name": "My Persons",
              "type": "person",
              "isPublic": false,
              "ownerId": 1,
              "creatorId": 1,
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": 3,
              "name": "My Opportunities",
              "type": "opportunity",
              "isPublic": false,
              "ownerId": 1,
              "creatorId": 1,
              "createdAt": "2024-03-07T20:21:42Z"
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/lists?cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/lists?cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "create-company-list": {
        "summary": "Create a company List",
        "description": "Example request to create a private company List owned by the requester.",
        "value": {
          "name": "2026 Prospects",
          "type": "company",
          "isPublic": false
        }
      },
      "created-list": {
        "value": {
          "id": 42,
          "name": "2026 Prospects",
          "type": "company",
          "isPublic": false,
          "ownerId": 1,
          "creatorId": 1,
          "createdAt": "2024-03-07T20:21:42Z"
        }
      },
      "company-list": {
        "description": "Example Company list.",
        "value": {
          "id": 1,
          "name": "My Companies",
          "type": "company",
          "isPublic": false,
          "ownerId": 1,
          "creatorId": 1,
          "createdAt": "2024-03-07T20:21:42Z"
        }
      },
      "opportunity-list": {
        "description": "Example Opportunity list.",
        "value": {
          "id": 3,
          "name": "My Opportunities",
          "type": "opportunity",
          "isPublic": false,
          "ownerId": 1,
          "creatorId": 1,
          "createdAt": "2024-03-07T20:21:42Z"
        }
      },
      "person-list": {
        "description": "Example Person list.",
        "value": {
          "id": 2,
          "name": "My Persons",
          "type": "person",
          "isPublic": false,
          "ownerId": 1,
          "creatorId": 1,
          "createdAt": "2024-03-07T20:21:42Z"
        }
      },
      "company-list-2": {
        "description": "Example response on a Company list.",
        "value": {
          "data": [
            {
              "id": "affinity-data-description",
              "name": "Description",
              "type": "enriched",
              "valueType": "text",
              "enrichmentSource": "affinity-data",
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "affinity-data-industry",
              "name": "Industry",
              "type": "enriched",
              "valueType": "filterable-text-multi",
              "enrichmentSource": "affinity-data",
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "affinity-data-investment-stage",
              "name": "Investment Stage",
              "type": "enriched",
              "valueType": "filterable-text",
              "enrichmentSource": "affinity-data",
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "affinity-data-investors",
              "name": "Investors",
              "type": "enriched",
              "valueType": "filterable-text-multi",
              "enrichmentSource": "affinity-data",
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "affinity-data-last-funding-amount",
              "name": "Last Funding Amount (USD)",
              "type": "enriched",
              "valueType": "number",
              "enrichmentSource": "affinity-data",
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "affinity-data-last-funding-date",
              "name": "Last Funding Date",
              "type": "enriched",
              "valueType": "datetime",
              "enrichmentSource": "affinity-data",
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "affinity-data-linkedin-url",
              "name": "LinkedIn URL",
              "type": "enriched",
              "valueType": "text",
              "enrichmentSource": "affinity-data",
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "affinity-data-location",
              "name": "Location",
              "type": "enriched",
              "valueType": "location",
              "enrichmentSource": "affinity-data",
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "affinity-data-number-of-employees",
              "name": "Number of Employees",
              "type": "enriched",
              "valueType": "number",
              "enrichmentSource": "affinity-data",
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "affinity-data-total-funding-amount",
              "name": "Total Funding Amount (USD)",
              "type": "enriched",
              "valueType": "number",
              "enrichmentSource": "affinity-data",
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "affinity-data-year-founded",
              "name": "Year Founded",
              "type": "enriched",
              "valueType": "number",
              "enrichmentSource": "affinity-data",
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "field-1",
              "name": "Custom global field",
              "type": "global",
              "valueType": "text",
              "enrichmentSource": null,
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "field-2",
              "name": "Custom list field",
              "type": "list",
              "valueType": "text",
              "enrichmentSource": null,
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "first-chat-message",
              "name": "First Chat Message",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null
            },
            {
              "id": "first-email",
              "name": "First Email",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null
            },
            {
              "id": "first-event",
              "name": "First Event",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null
            },
            {
              "id": "last-chat-message",
              "name": "Last Chat Message",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null
            },
            {
              "id": "last-contact",
              "name": "Last Contact",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null
            },
            {
              "id": "last-email",
              "name": "Last Email",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null
            },
            {
              "id": "last-event",
              "name": "Last Event",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null
            },
            {
              "id": "next-event",
              "name": "Next Event",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null
            },
            {
              "id": "source-of-introduction",
              "name": "Source of Introduction",
              "type": "relationship-intelligence",
              "valueType": "person",
              "enrichmentSource": null,
              "createdAt": "2024-03-07T20:21:42Z"
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/lists/1/fields?cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/lists/1/fields?cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "person-list-2": {
        "description": "Example response on a Person list.",
        "value": {
          "data": [
            {
              "id": "affinity-data-current-job-title",
              "name": "Current Job Title",
              "type": "enriched",
              "valueType": "filterable-text",
              "enrichmentSource": "affinity-data",
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "affinity-data-current-organization",
              "name": "Current Organization",
              "type": "enriched",
              "valueType": "company",
              "enrichmentSource": "affinity-data",
              "createdAt": null
            },
            {
              "id": "affinity-data-industry",
              "name": "Industry",
              "type": "enriched",
              "valueType": "filterable-text-multi",
              "enrichmentSource": "affinity-data",
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "affinity-data-job-titles",
              "name": "Job Titles",
              "type": "enriched",
              "valueType": "filterable-text-multi",
              "enrichmentSource": "affinity-data",
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "affinity-data-location",
              "name": "Location",
              "type": "enriched",
              "valueType": "location",
              "enrichmentSource": "affinity-data",
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "affinity-data-linkedin-url",
              "name": "LinkedIn URL",
              "type": "enriched",
              "valueType": "text",
              "enrichmentSource": "affinity-data",
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "affinity-data-phone-number",
              "name": "Phone Number",
              "type": "enriched",
              "valueType": "filterable-text-multi",
              "enrichmentSource": "affinity-data",
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "companies",
              "name": "Organizations",
              "type": "list",
              "valueType": "company-multi",
              "enrichmentSource": null,
              "createdAt": null
            },
            {
              "id": "field-1",
              "name": "Custom global field",
              "type": "global",
              "valueType": "text",
              "enrichmentSource": null,
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "field-2",
              "name": "Custom list field",
              "type": "list",
              "valueType": "text",
              "enrichmentSource": null,
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "first-chat-message",
              "name": "First Chat Message",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null
            },
            {
              "id": "first-email",
              "name": "First Email",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null
            },
            {
              "id": "first-event",
              "name": "First Event",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null
            },
            {
              "id": "last-chat-message",
              "name": "Last Chat Message",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null
            },
            {
              "id": "last-contact",
              "name": "Last Contact",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null
            },
            {
              "id": "last-email",
              "name": "Last Email",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null
            },
            {
              "id": "last-event",
              "name": "Last Event",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null
            },
            {
              "id": "next-event",
              "name": "Next Event",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null
            },
            {
              "id": "source-of-introduction",
              "name": "Source of Introduction",
              "type": "relationship-intelligence",
              "valueType": "person",
              "enrichmentSource": null,
              "createdAt": "2024-03-07T20:21:42Z"
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/lists/2/fields?cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/lists/2/fields?cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "opportunity-list-2": {
        "description": "Example response on an Opportunity list.",
        "value": {
          "data": [
            {
              "id": "companies",
              "name": "Organizations",
              "type": "list",
              "valueType": "company-multi",
              "enrichmentSource": null,
              "createdAt": null
            },
            {
              "id": "field-2",
              "name": "Custom list field",
              "type": "list",
              "valueType": "text",
              "enrichmentSource": null,
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "first-chat-message",
              "name": "First Chat Message",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null
            },
            {
              "id": "first-email",
              "name": "First Email",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null
            },
            {
              "id": "first-event",
              "name": "First Event",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null
            },
            {
              "id": "last-chat-message",
              "name": "Last Chat Message",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null
            },
            {
              "id": "last-contact",
              "name": "Last Contact",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null
            },
            {
              "id": "last-email",
              "name": "Last Email",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null
            },
            {
              "id": "last-event",
              "name": "Last Event",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null
            },
            {
              "id": "next-event",
              "name": "Next Event",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null
            },
            {
              "id": "persons",
              "name": "People",
              "type": "list",
              "valueType": "person-multi",
              "enrichmentSource": null,
              "createdAt": null
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/lists/3/fields?cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/lists/3/fields?cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "company-list-filterability-sortability": {
        "description": "Example response on a Company list when `includes=filterability,sortability` is requested. `filterability` and `sortability` are `null` for fields that are not filterable or sortable.",
        "value": {
          "data": [
            {
              "id": "affinity-data-last-funding-amount",
              "name": "Last Funding Amount (USD)",
              "type": "enriched",
              "valueType": "number",
              "enrichmentSource": "affinity-data",
              "createdAt": "2024-03-07T20:21:42Z",
              "filterability": {
                "filterableFieldType": "field-only",
                "operators": [
                  {
                    "id": "is-between",
                    "name": "Is between",
                    "numberOfValuesRequired": "two"
                  },
                  {
                    "id": "is-greater-than",
                    "name": "Is greater than",
                    "numberOfValuesRequired": "one"
                  },
                  {
                    "id": "is-greater-than-or-equal-to",
                    "name": "Is greater than or equal to",
                    "numberOfValuesRequired": "one"
                  },
                  {
                    "id": "is-less-than",
                    "name": "Is less than",
                    "numberOfValuesRequired": "one"
                  },
                  {
                    "id": "is-less-than-or-equal-to",
                    "name": "Is less than or equal to",
                    "numberOfValuesRequired": "one"
                  },
                  {
                    "id": "is-equal-to",
                    "name": "Is equal to",
                    "numberOfValuesRequired": "one"
                  },
                  {
                    "id": "is-not-equal-to",
                    "name": "Is not equal to",
                    "numberOfValuesRequired": "one"
                  },
                  {
                    "id": "is-not-empty",
                    "name": "Is not empty",
                    "numberOfValuesRequired": "none"
                  },
                  {
                    "id": "is-empty",
                    "name": "Is empty",
                    "numberOfValuesRequired": "none"
                  }
                ]
              },
              "sortability": {
                "sortableFieldType": "field-only"
              }
            },
            {
              "id": "last-email",
              "name": "Last Email",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null,
              "filterability": {
                "filterableFieldType": "attribute-on-field",
                "attributes": [
                  {
                    "id": "date-of-activity",
                    "name": "Date of Activity",
                    "valueType": "date",
                    "operators": [
                      {
                        "id": "is-not-within-the-next",
                        "name": "Is not within the next",
                        "numberOfValuesRequired": "one",
                        "relativeDateUnits": [
                          "day",
                          "week",
                          "month",
                          "quarter",
                          "year"
                        ]
                      },
                      {
                        "id": "is-within-the-next",
                        "name": "Is within the next",
                        "numberOfValuesRequired": "one",
                        "relativeDateUnits": [
                          "day",
                          "week",
                          "month",
                          "quarter",
                          "year"
                        ]
                      },
                      {
                        "id": "is-not-within-the-last",
                        "name": "Is not within the last",
                        "numberOfValuesRequired": "one",
                        "relativeDateUnits": [
                          "day",
                          "week",
                          "month",
                          "quarter",
                          "year"
                        ]
                      },
                      {
                        "id": "is-within-the-last",
                        "name": "Is within the last",
                        "numberOfValuesRequired": "one",
                        "relativeDateUnits": [
                          "day",
                          "week",
                          "month",
                          "quarter",
                          "year"
                        ]
                      },
                      {
                        "id": "is-between",
                        "name": "Is between",
                        "numberOfValuesRequired": "two"
                      },
                      {
                        "id": "is-after",
                        "name": "Is after",
                        "numberOfValuesRequired": "one"
                      },
                      {
                        "id": "is-before",
                        "name": "Is before",
                        "numberOfValuesRequired": "one"
                      },
                      {
                        "id": "is-on",
                        "name": "Is on",
                        "numberOfValuesRequired": "one"
                      },
                      {
                        "id": "is-not-on",
                        "name": "Is not on",
                        "numberOfValuesRequired": "one"
                      },
                      {
                        "id": "is-not-empty",
                        "name": "Is not empty",
                        "numberOfValuesRequired": "none"
                      },
                      {
                        "id": "is-empty",
                        "name": "Is empty",
                        "numberOfValuesRequired": "none"
                      }
                    ]
                  }
                ]
              },
              "sortability": {
                "sortableFieldType": "attribute-on-field",
                "attributes": [
                  {
                    "id": "date-of-activity",
                    "name": "Date of Activity",
                    "valueType": "date"
                  }
                ]
              }
            }
          ],
          "pagination": {
            "prevUrl": null,
            "nextUrl": null
          }
        }
      },
      "person-list-filterability-sortability": {
        "description": "Example response on a Person list when `includes=filterability&includes=sortability` is requested. `filterability` and `sortability` are `null` for fields that are not filterable or sortable.",
        "value": {
          "data": [
            {
              "id": "affinity-data-current-job-title",
              "name": "Current Job Title",
              "type": "enriched",
              "valueType": "filterable-text",
              "enrichmentSource": "affinity-data",
              "createdAt": "2024-03-07T20:21:42Z",
              "filterability": {
                "filterableFieldType": "field-only",
                "operators": [
                  {
                    "id": "is-none-of",
                    "name": "Is none of",
                    "numberOfValuesRequired": "multi"
                  },
                  {
                    "id": "is-any-of",
                    "name": "Is any of",
                    "numberOfValuesRequired": "multi"
                  },
                  {
                    "id": "is-not-empty",
                    "name": "Is not empty",
                    "numberOfValuesRequired": "none"
                  },
                  {
                    "id": "is-empty",
                    "name": "Is empty",
                    "numberOfValuesRequired": "none"
                  }
                ]
              },
              "sortability": {
                "sortableFieldType": "field-only"
              }
            },
            {
              "id": "field-1",
              "name": "Custom global field",
              "type": "global",
              "valueType": "text",
              "enrichmentSource": null,
              "createdAt": "2024-03-07T20:21:42Z",
              "filterability": {
                "filterableFieldType": "field-only",
                "operators": [
                  {
                    "id": "is-not-empty",
                    "name": "Is not empty",
                    "numberOfValuesRequired": "none"
                  },
                  {
                    "id": "is-empty",
                    "name": "Is empty",
                    "numberOfValuesRequired": "none"
                  },
                  {
                    "id": "contains",
                    "name": "Contains",
                    "numberOfValuesRequired": "one"
                  },
                  {
                    "id": "does-not-contain",
                    "name": "Does not contain",
                    "numberOfValuesRequired": "one"
                  }
                ]
              },
              "sortability": {
                "sortableFieldType": "field-only"
              }
            },
            {
              "id": "last-email",
              "name": "Last Email",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null,
              "filterability": {
                "filterableFieldType": "attribute-on-field",
                "attributes": [
                  {
                    "id": "date-of-activity",
                    "name": "Date of Activity",
                    "valueType": "date",
                    "operators": [
                      {
                        "id": "is-not-within-the-next",
                        "name": "Is not within the next",
                        "numberOfValuesRequired": "one",
                        "relativeDateUnits": [
                          "day",
                          "week",
                          "month",
                          "quarter",
                          "year"
                        ]
                      },
                      {
                        "id": "is-within-the-next",
                        "name": "Is within the next",
                        "numberOfValuesRequired": "one",
                        "relativeDateUnits": [
                          "day",
                          "week",
                          "month",
                          "quarter",
                          "year"
                        ]
                      },
                      {
                        "id": "is-not-within-the-last",
                        "name": "Is not within the last",
                        "numberOfValuesRequired": "one",
                        "relativeDateUnits": [
                          "day",
                          "week",
                          "month",
                          "quarter",
                          "year"
                        ]
                      },
                      {
                        "id": "is-within-the-last",
                        "name": "Is within the last",
                        "numberOfValuesRequired": "one",
                        "relativeDateUnits": [
                          "day",
                          "week",
                          "month",
                          "quarter",
                          "year"
                        ]
                      },
                      {
                        "id": "is-between",
                        "name": "Is between",
                        "numberOfValuesRequired": "two"
                      },
                      {
                        "id": "is-after",
                        "name": "Is after",
                        "numberOfValuesRequired": "one"
                      },
                      {
                        "id": "is-before",
                        "name": "Is before",
                        "numberOfValuesRequired": "one"
                      },
                      {
                        "id": "is-on",
                        "name": "Is on",
                        "numberOfValuesRequired": "one"
                      },
                      {
                        "id": "is-not-on",
                        "name": "Is not on",
                        "numberOfValuesRequired": "one"
                      },
                      {
                        "id": "is-not-empty",
                        "name": "Is not empty",
                        "numberOfValuesRequired": "none"
                      },
                      {
                        "id": "is-empty",
                        "name": "Is empty",
                        "numberOfValuesRequired": "none"
                      }
                    ]
                  }
                ]
              },
              "sortability": {
                "sortableFieldType": "attribute-on-field",
                "attributes": [
                  {
                    "id": "date-of-activity",
                    "name": "Date of Activity",
                    "valueType": "date"
                  }
                ]
              }
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/lists/2/fields?cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/lists/2/fields?cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "opportunity-list-filterability-sortability": {
        "description": "Example response on an Opportunity list when `includes=filterability&includes=sortability` is requested. `filterability` and `sortability` are `null` for fields that are not filterable or sortable.",
        "value": {
          "data": [
            {
              "id": "field-2",
              "name": "Custom list field",
              "type": "list",
              "valueType": "text",
              "enrichmentSource": null,
              "createdAt": "2024-03-07T20:21:42Z",
              "filterability": {
                "filterableFieldType": "field-only",
                "operators": [
                  {
                    "id": "is-not-empty",
                    "name": "Is not empty",
                    "numberOfValuesRequired": "none"
                  },
                  {
                    "id": "is-empty",
                    "name": "Is empty",
                    "numberOfValuesRequired": "none"
                  },
                  {
                    "id": "contains",
                    "name": "Contains",
                    "numberOfValuesRequired": "one"
                  },
                  {
                    "id": "does-not-contain",
                    "name": "Does not contain",
                    "numberOfValuesRequired": "one"
                  }
                ]
              },
              "sortability": {
                "sortableFieldType": "field-only"
              }
            },
            {
              "id": "last-email",
              "name": "Last Email",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null,
              "filterability": {
                "filterableFieldType": "attribute-on-field",
                "attributes": [
                  {
                    "id": "date-of-activity",
                    "name": "Date of Activity",
                    "valueType": "date",
                    "operators": [
                      {
                        "id": "is-not-within-the-next",
                        "name": "Is not within the next",
                        "numberOfValuesRequired": "one",
                        "relativeDateUnits": [
                          "day",
                          "week",
                          "month",
                          "quarter",
                          "year"
                        ]
                      },
                      {
                        "id": "is-within-the-next",
                        "name": "Is within the next",
                        "numberOfValuesRequired": "one",
                        "relativeDateUnits": [
                          "day",
                          "week",
                          "month",
                          "quarter",
                          "year"
                        ]
                      },
                      {
                        "id": "is-not-within-the-last",
                        "name": "Is not within the last",
                        "numberOfValuesRequired": "one",
                        "relativeDateUnits": [
                          "day",
                          "week",
                          "month",
                          "quarter",
                          "year"
                        ]
                      },
                      {
                        "id": "is-within-the-last",
                        "name": "Is within the last",
                        "numberOfValuesRequired": "one",
                        "relativeDateUnits": [
                          "day",
                          "week",
                          "month",
                          "quarter",
                          "year"
                        ]
                      },
                      {
                        "id": "is-between",
                        "name": "Is between",
                        "numberOfValuesRequired": "two"
                      },
                      {
                        "id": "is-after",
                        "name": "Is after",
                        "numberOfValuesRequired": "one"
                      },
                      {
                        "id": "is-before",
                        "name": "Is before",
                        "numberOfValuesRequired": "one"
                      },
                      {
                        "id": "is-on",
                        "name": "Is on",
                        "numberOfValuesRequired": "one"
                      },
                      {
                        "id": "is-not-on",
                        "name": "Is not on",
                        "numberOfValuesRequired": "one"
                      },
                      {
                        "id": "is-not-empty",
                        "name": "Is not empty",
                        "numberOfValuesRequired": "none"
                      },
                      {
                        "id": "is-empty",
                        "name": "Is empty",
                        "numberOfValuesRequired": "none"
                      }
                    ]
                  }
                ]
              },
              "sortability": {
                "sortableFieldType": "attribute-on-field",
                "attributes": [
                  {
                    "id": "date-of-activity",
                    "name": "Date of Activity",
                    "valueType": "date"
                  }
                ]
              }
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/lists/3/fields?cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/lists/3/fields?cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "dropdown-options-status": {
        "description": "Example response for dropdown options on a status dropdown field.",
        "value": {
          "data": [
            {
              "type": "status-dropdown",
              "id": 1,
              "text": "In Progress",
              "rank": 0,
              "color": "green",
              "statusCategory": "open",
              "winRate": 25
            },
            {
              "type": "status-dropdown",
              "id": 2,
              "text": "Closed Won",
              "rank": 1,
              "color": "blue",
              "statusCategory": "won",
              "winRate": null
            }
          ],
          "pagination": {
            "prevUrl": null,
            "nextUrl": null
          }
        }
      },
      "dropdown-3": {
        "description": "Create a dropdown option on a dropdown field.",
        "value": {
          "type": "dropdown",
          "text": "Seed"
        }
      },
      "ranked-dropdown-3": {
        "description": "Create a ranked-dropdown option on a ranked-dropdown field.",
        "value": {
          "type": "ranked-dropdown",
          "text": "High",
          "rank": 0,
          "color": "green"
        }
      },
      "status-dropdown": {
        "description": "Create a status-dropdown option on a status field.",
        "value": {
          "type": "status-dropdown",
          "text": "In Progress",
          "rank": 0,
          "color": "green",
          "statusCategory": "open",
          "winRate": 25
        }
      },
      "dropdown-4": {
        "description": "Example response after creating a dropdown option on a dropdown field.",
        "value": {
          "type": "dropdown",
          "id": 4,
          "text": "Seed"
        }
      },
      "ranked-dropdown-4": {
        "description": "Example response after creating a ranked-dropdown option on a ranked-dropdown field.",
        "value": {
          "type": "ranked-dropdown",
          "id": 4,
          "text": "High",
          "rank": 0,
          "color": "green"
        }
      },
      "status-dropdown-2": {
        "description": "Example response after creating a status-dropdown option on a status field.",
        "value": {
          "type": "status-dropdown",
          "id": 4,
          "text": "In Progress",
          "rank": 0,
          "color": "green",
          "statusCategory": "open",
          "winRate": 25
        }
      },
      "dropdown-5": {
        "description": "Example response when retrieving a dropdown option on a dropdown field.",
        "value": {
          "type": "dropdown",
          "id": 4,
          "text": "Seed"
        }
      },
      "ranked-dropdown-5": {
        "description": "Example response when retrieving a ranked-dropdown option on a ranked-dropdown field.",
        "value": {
          "type": "ranked-dropdown",
          "id": 4,
          "text": "High",
          "rank": 0,
          "color": "green"
        }
      },
      "dropdown-6": {
        "description": "Update the text of a dropdown option.",
        "value": {
          "text": "Series A"
        }
      },
      "ranked-dropdown-6": {
        "description": "Update the text, rank, and color of a ranked-dropdown option.",
        "value": {
          "text": "Medium",
          "rank": 1,
          "color": "blue"
        }
      },
      "status-dropdown-3": {
        "summary": "Update a status dropdown option",
        "value": {
          "text": "In Progress",
          "rank": 1,
          "color": "green",
          "statusCategory": "open",
          "winRate": 30
        }
      },
      "company-list-enriched": {
        "description": "Example response on a Company list using `fieldTypes=enriched`.",
        "value": {
          "data": [
            {
              "id": 1,
              "type": "company",
              "listId": 1,
              "entity": {
                "id": 1,
                "name": "Horizon Technologies",
                "domain": "horizontech.com",
                "domains": [
                  "horizontech.com"
                ],
                "isGlobal": true,
                "fields": [
                  {
                    "id": "affinity-data-description",
                    "name": "Description",
                    "type": "enriched",
                    "enrichmentSource": "affinity-data",
                    "value": {
                      "type": "text",
                      "data": "Horizon Technologies is a leading technology company specializing in enterprise software and cloud infrastructure."
                    }
                  },
                  {
                    "id": "affinity-data-industry",
                    "name": "Industry",
                    "type": "enriched",
                    "enrichmentSource": "affinity-data",
                    "value": {
                      "type": "filterable-text-multi",
                      "data": [
                        "Healthcare",
                        "Fintech",
                        "SaaS"
                      ],
                      "totalCount": 3
                    }
                  },
                  {
                    "id": "affinity-data-investment-stage",
                    "name": "Investment Stage",
                    "type": "enriched",
                    "enrichmentSource": "affinity-data",
                    "value": {
                      "type": "filterable-text",
                      "data": "Public Markets"
                    }
                  },
                  {
                    "id": "affinity-data-investors",
                    "name": "Investors",
                    "type": "enriched",
                    "enrichmentSource": "affinity-data",
                    "value": {
                      "type": "filterable-text-multi",
                      "data": [
                        "Alex Rivera",
                        "Taylor Wong"
                      ],
                      "totalCount": 2
                    }
                  },
                  {
                    "id": "affinity-data-last-funding-amount",
                    "name": "Last Funding Amount (USD)",
                    "type": "enriched",
                    "enrichmentSource": "affinity-data",
                    "value": {
                      "type": "number",
                      "data": 100000000
                    }
                  },
                  {
                    "id": "affinity-data-last-funding-date",
                    "name": "Last Funding Date",
                    "type": "enriched",
                    "enrichmentSource": "affinity-data",
                    "value": {
                      "type": "datetime",
                      "data": "2023-01-01T00:00:00Z"
                    }
                  },
                  {
                    "id": "affinity-data-linkedin-url",
                    "name": "LinkedIn URL",
                    "type": "enriched",
                    "enrichmentSource": "affinity-data",
                    "value": {
                      "type": "text",
                      "data": "https://linkedin.com/company/horizontech"
                    }
                  },
                  {
                    "id": "affinity-data-location",
                    "name": "Location",
                    "type": "enriched",
                    "enrichmentSource": "affinity-data",
                    "value": {
                      "type": "location",
                      "data": {
                        "streetAddress": null,
                        "city": "Fairfield",
                        "state": "New Jersey",
                        "country": "United States",
                        "continent": null
                      }
                    }
                  },
                  {
                    "id": "affinity-data-number-of-employees",
                    "name": "Number of Employees",
                    "type": "enriched",
                    "enrichmentSource": "affinity-data",
                    "value": {
                      "type": "number",
                      "data": 3990
                    }
                  },
                  {
                    "id": "affinity-data-total-funding-amount",
                    "name": "Total Funding Amount (USD)",
                    "type": "enriched",
                    "enrichmentSource": "affinity-data",
                    "value": {
                      "type": "number",
                      "data": 90000000
                    }
                  },
                  {
                    "id": "affinity-data-year-founded",
                    "name": "Year Founded",
                    "type": "enriched",
                    "enrichmentSource": "affinity-data",
                    "value": {
                      "type": "number",
                      "data": 1952
                    }
                  }
                ]
              },
              "creatorId": 1,
              "createdAt": "2023-01-01T00:00:00Z"
            },
            {
              "id": 2,
              "type": "company",
              "listId": 1,
              "entity": {
                "id": 2,
                "name": "Crestwood Capital",
                "domain": "crestwoodcap.com",
                "domains": [
                  "crestwoodcap.com"
                ],
                "isGlobal": true,
                "fields": [
                  {
                    "id": "affinity-data-description",
                    "name": "Description",
                    "type": "enriched",
                    "enrichmentSource": "affinity-data",
                    "value": {
                      "type": "text",
                      "data": "Crestwood Capital is a leading private equity firm focused on technology and growth-stage investments."
                    }
                  },
                  {
                    "id": "affinity-data-industry",
                    "name": "Industry",
                    "type": "enriched",
                    "enrichmentSource": "affinity-data",
                    "value": {
                      "type": "filterable-text-multi",
                      "data": [
                        "Pharmaceuticals",
                        "Biotechnology",
                        "Defense",
                        "Security",
                        "Chemicals",
                        "Research",
                        "Technology",
                        "Healthcare"
                      ],
                      "totalCount": 8
                    }
                  },
                  {
                    "id": "affinity-data-investment-stage",
                    "name": "Investment Stage",
                    "type": "enriched",
                    "enrichmentSource": "affinity-data",
                    "value": {
                      "type": "filterable-text",
                      "data": "Public Markets"
                    }
                  },
                  {
                    "id": "affinity-data-investors",
                    "name": "Investors",
                    "type": "enriched",
                    "enrichmentSource": "affinity-data",
                    "value": {
                      "type": "filterable-text-multi",
                      "data": [
                        "Jordan Lee",
                        "Michael Torres"
                      ],
                      "totalCount": 2
                    }
                  },
                  {
                    "id": "affinity-data-last-funding-amount",
                    "name": "Last Funding Amount (USD)",
                    "type": "enriched",
                    "enrichmentSource": "affinity-data",
                    "value": {
                      "type": "number",
                      "data": 100000000
                    }
                  },
                  {
                    "id": "affinity-data-last-funding-date",
                    "name": "Last Funding Date",
                    "type": "enriched",
                    "enrichmentSource": "affinity-data",
                    "value": {
                      "type": "datetime",
                      "data": "2023-01-01T00:00:00Z"
                    }
                  },
                  {
                    "id": "affinity-data-linkedin-url",
                    "name": "LinkedIn URL",
                    "type": "enriched",
                    "enrichmentSource": "affinity-data",
                    "value": {
                      "type": "text",
                      "data": "https://linkedin.com/company/crestwoodcap"
                    }
                  },
                  {
                    "id": "affinity-data-location",
                    "name": "Location",
                    "type": "enriched",
                    "enrichmentSource": "affinity-data",
                    "value": {
                      "type": "location",
                      "data": {
                        "streetAddress": null,
                        "city": "Chicago",
                        "state": "Illinois",
                        "country": "United States",
                        "continent": null
                      }
                    }
                  },
                  {
                    "id": "affinity-data-number-of-employees",
                    "name": "Number of Employees",
                    "type": "enriched",
                    "enrichmentSource": "affinity-data",
                    "value": {
                      "type": "number",
                      "data": 12000
                    }
                  },
                  {
                    "id": "affinity-data-total-funding-amount",
                    "name": "Total Funding Amount (USD)",
                    "type": "enriched",
                    "enrichmentSource": "affinity-data",
                    "value": {
                      "type": "number",
                      "data": 60000000
                    }
                  },
                  {
                    "id": "affinity-data-year-founded",
                    "name": "Year Founded",
                    "type": "enriched",
                    "enrichmentSource": "affinity-data",
                    "value": {
                      "type": "number",
                      "data": 1968
                    }
                  }
                ]
              },
              "creatorId": 1,
              "createdAt": "2023-01-01T00:00:00Z"
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/lists/1/list-entries?fieldTypes=enriched&cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/lists/1/list-entries?fieldTypes=enriched&cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "company-list-relationship-intelligence": {
        "description": "Example response on a Company list using `fieldTypes=relationship-intelligence`.",
        "value": {
          "data": [
            {
              "id": 1,
              "type": "company",
              "listId": 1,
              "entity": {
                "id": 1,
                "name": "Horizon Technologies",
                "domain": "horizontech.com",
                "domains": [
                  "horizontech.com"
                ],
                "isGlobal": true,
                "fields": [
                  {
                    "id": "first-chat-message",
                    "type": "relationship-intelligence",
                    "enrichmentSource": null,
                    "name": "First Chat Message",
                    "value": {
                      "type": "interaction",
                      "data": {
                        "id": 1,
                        "type": "chat-message",
                        "direction": "sent",
                        "sentAt": "2020-01-01T00:00:00Z",
                        "manualCreator": {
                          "id": 1,
                          "firstName": "Alex",
                          "lastName": "Rivera",
                          "primaryEmailAddress": "alex.rivera@horizontech.com",
                          "type": "internal"
                        },
                        "participants": [
                          {
                            "id": 1,
                            "firstName": "Alex",
                            "lastName": "Rivera",
                            "primaryEmailAddress": "alex.rivera@horizontech.com",
                            "type": "internal"
                          },
                          {
                            "id": 2,
                            "firstName": "Jordan",
                            "lastName": "Lee",
                            "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                            "type": "external"
                          }
                        ]
                      }
                    }
                  },
                  {
                    "id": "first-email",
                    "type": "relationship-intelligence",
                    "enrichmentSource": null,
                    "name": "First Email",
                    "value": {
                      "type": "interaction",
                      "data": {
                        "id": 1,
                        "type": "email",
                        "subject": "Defective Products",
                        "sentAt": "2020-01-01T00:00:00Z",
                        "from": {
                          "emailAddress": "alex.rivera@horizontech.com",
                          "person": {
                            "id": 1,
                            "firstName": "Alex",
                            "lastName": "Rivera",
                            "primaryEmailAddress": "alex.rivera@horizontech.com",
                            "type": "internal"
                          }
                        },
                        "to": [
                          {
                            "emailAddress": "jordan.lee@crestwoodcap.com",
                            "person": {
                              "id": 2,
                              "firstName": "Jordan",
                              "lastName": "Lee",
                              "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                              "type": "external"
                            }
                          }
                        ],
                        "cc": []
                      }
                    }
                  },
                  {
                    "id": "first-event",
                    "type": "relationship-intelligence",
                    "enrichmentSource": null,
                    "name": "First Event",
                    "value": {
                      "type": "interaction",
                      "data": {
                        "id": 1,
                        "type": "meeting",
                        "title": "Defective Products",
                        "allDay": false,
                        "startTime": "2020-01-02T00:00:00Z",
                        "endTime": "2020-01-02T01:00:00Z",
                        "attendees": [
                          {
                            "emailAddress": "alex.rivera@horizontech.com",
                            "person": {
                              "id": 1,
                              "firstName": "Alex",
                              "lastName": "Rivera",
                              "primaryEmailAddress": "alex.rivera@horizontech.com",
                              "type": "internal"
                            }
                          },
                          {
                            "emailAddress": "jordan.lee@crestwoodcap.com",
                            "person": {
                              "id": 2,
                              "firstName": "Jordan",
                              "lastName": "Lee",
                              "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                              "type": "external"
                            }
                          }
                        ]
                      }
                    }
                  },
                  {
                    "id": "last-chat-message",
                    "type": "relationship-intelligence",
                    "enrichmentSource": null,
                    "name": "Last Chat Message",
                    "value": {
                      "type": "interaction",
                      "data": {
                        "id": 2,
                        "type": "chat-message",
                        "direction": "sent",
                        "sentAt": "2020-01-02T00:00:00Z",
                        "manualCreator": {
                          "id": 1,
                          "firstName": "Alex",
                          "lastName": "Rivera",
                          "primaryEmailAddress": "alex.rivera@horizontech.com",
                          "type": "internal"
                        },
                        "participants": [
                          {
                            "id": 1,
                            "firstName": "Alex",
                            "lastName": "Rivera",
                            "primaryEmailAddress": "alex.rivera@horizontech.com",
                            "type": "internal"
                          },
                          {
                            "id": 2,
                            "firstName": "Jordan",
                            "lastName": "Lee",
                            "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                            "type": "external"
                          }
                        ]
                      }
                    }
                  },
                  {
                    "id": "last-contact",
                    "type": "relationship-intelligence",
                    "enrichmentSource": null,
                    "name": "Last Contact",
                    "value": {
                      "type": "interaction",
                      "data": {
                        "id": 2,
                        "type": "email",
                        "subject": "re: re: re: Defective Products",
                        "sentAt": "2020-02-01T00:00:00Z",
                        "from": {
                          "emailAddress": "alex.rivera@horizontech.com",
                          "person": {
                            "id": 1,
                            "firstName": "Alex",
                            "lastName": "Rivera",
                            "primaryEmailAddress": "alex.rivera@horizontech.com",
                            "type": "internal"
                          }
                        },
                        "to": [
                          {
                            "emailAddress": "jordan.lee@crestwoodcap.com",
                            "person": {
                              "id": 2,
                              "firstName": "Jordan",
                              "lastName": "Lee",
                              "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                              "type": "external"
                            }
                          }
                        ],
                        "cc": []
                      }
                    }
                  },
                  {
                    "id": "last-email",
                    "type": "relationship-intelligence",
                    "enrichmentSource": null,
                    "name": "Last Email",
                    "value": {
                      "type": "interaction",
                      "data": {
                        "id": 2,
                        "type": "email",
                        "subject": "re: re: re: Defective Products",
                        "sentAt": "2020-02-01T00:00:00Z",
                        "from": {
                          "emailAddress": "alex.rivera@horizontech.com",
                          "person": {
                            "id": 1,
                            "firstName": "Alex",
                            "lastName": "Rivera",
                            "primaryEmailAddress": "alex.rivera@horizontech.com",
                            "type": "internal"
                          }
                        },
                        "to": [
                          {
                            "emailAddress": "jordan.lee@crestwoodcap.com",
                            "person": {
                              "id": 2,
                              "firstName": "Jordan",
                              "lastName": "Lee",
                              "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                              "type": "external"
                            }
                          }
                        ],
                        "cc": []
                      }
                    }
                  },
                  {
                    "id": "last-event",
                    "type": "relationship-intelligence",
                    "enrichmentSource": null,
                    "name": "Last Event",
                    "value": {
                      "type": "interaction",
                      "data": {
                        "id": 2,
                        "type": "meeting",
                        "title": "re: re: re: Defective Products",
                        "allDay": false,
                        "startTime": "2020-01-03T00:00:00Z",
                        "endTime": "2020-01-03T01:00:00Z",
                        "attendees": [
                          {
                            "emailAddress": "alex.rivera@horizontech.com",
                            "person": {
                              "id": 1,
                              "firstName": "Alex",
                              "lastName": "Rivera",
                              "primaryEmailAddress": "alex.rivera@horizontech.com",
                              "type": "internal"
                            }
                          },
                          {
                            "emailAddress": "jordan.lee@crestwoodcap.com",
                            "person": {
                              "id": 2,
                              "firstName": "Jordan",
                              "lastName": "Lee",
                              "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                              "type": "external"
                            }
                          }
                        ]
                      }
                    }
                  },
                  {
                    "id": "next-event",
                    "type": "relationship-intelligence",
                    "enrichmentSource": null,
                    "name": "Next Event",
                    "value": {
                      "type": "interaction",
                      "data": {
                        "id": 3,
                        "type": "meeting",
                        "title": "re: re: re: re: Defective Products",
                        "allDay": false,
                        "startTime": "2020-02-03T00:00:00Z",
                        "endTime": "2020-02-03T01:00:00Z",
                        "attendees": [
                          {
                            "emailAddress": "alex.rivera@horizontech.com",
                            "person": {
                              "id": 1,
                              "firstName": "Alex",
                              "lastName": "Rivera",
                              "primaryEmailAddress": "alex.rivera@horizontech.com",
                              "type": "internal"
                            }
                          },
                          {
                            "emailAddress": "jordan.lee@crestwoodcap.com",
                            "person": {
                              "id": 2,
                              "firstName": "Jordan",
                              "lastName": "Lee",
                              "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                              "type": "external"
                            }
                          }
                        ]
                      }
                    }
                  },
                  {
                    "id": "source-of-introduction",
                    "type": "relationship-intelligence",
                    "enrichmentSource": null,
                    "name": "Source of Introduction",
                    "value": {
                      "type": "person",
                      "data": {
                        "id": 3,
                        "firstName": "Taylor",
                        "lastName": "Wong",
                        "primaryEmailAddress": "taylor.wong@northpointvc.com",
                        "type": "internal"
                      }
                    }
                  }
                ]
              },
              "creatorId": 1,
              "createdAt": "2023-01-01T00:00:00Z"
            },
            {
              "id": 2,
              "type": "company",
              "listId": 1,
              "entity": {
                "id": 2,
                "name": "Crestwood Capital",
                "domain": "crestwoodcap.com",
                "domains": [
                  "crestwoodcap.com"
                ],
                "isGlobal": true,
                "fields": [
                  {
                    "id": "first-chat-message",
                    "type": "relationship-intelligence",
                    "enrichmentSource": null,
                    "name": "First Chat Message",
                    "value": {
                      "type": "interaction",
                      "data": {
                        "id": 3,
                        "type": "chat-message",
                        "direction": "sent",
                        "sentAt": "2020-01-01T00:00:00Z",
                        "manualCreator": {
                          "id": 4,
                          "firstName": "Leon S",
                          "lastName": "Kennedy",
                          "primaryEmailAddress": "leon.s@kennedy.com",
                          "type": "internal"
                        },
                        "participants": [
                          {
                            "id": 4,
                            "firstName": "Leon S",
                            "lastName": "Kennedy",
                            "primaryEmailAddress": "leon.s@kennedy.com",
                            "type": "internal"
                          },
                          {
                            "id": 5,
                            "firstName": "Jordan",
                            "lastName": "Lee",
                            "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                            "type": "external"
                          }
                        ]
                      }
                    }
                  },
                  {
                    "id": "first-email",
                    "type": "relationship-intelligence",
                    "enrichmentSource": null,
                    "name": "First Email",
                    "value": {
                      "type": "interaction",
                      "data": {
                        "id": 4,
                        "type": "email",
                        "subject": "Zombie Outbreak",
                        "sentAt": "2020-01-01T00:00:00Z",
                        "from": {
                          "emailAddress": "leon.s@kennedy.com",
                          "person": {
                            "id": 4,
                            "firstName": "Leon S",
                            "lastName": "Kennedy",
                            "primaryEmailAddress": "leon.s@kennedy.com",
                            "type": "internal"
                          }
                        },
                        "to": [
                          {
                            "emailAddress": "jordan.lee@crestwoodcap.com",
                            "person": {
                              "id": 5,
                              "firstName": "Jordan",
                              "lastName": "Lee",
                              "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                              "type": "external"
                            }
                          }
                        ],
                        "cc": []
                      }
                    }
                  },
                  {
                    "id": "first-event",
                    "type": "relationship-intelligence",
                    "enrichmentSource": null,
                    "name": "First Event",
                    "value": {
                      "type": "interaction",
                      "data": {
                        "id": 4,
                        "type": "meeting",
                        "title": "Zombie Outbreak",
                        "allDay": false,
                        "startTime": "2020-01-02T00:00:00Z",
                        "endTime": "2020-01-02T01:00:00Z",
                        "attendees": [
                          {
                            "emailAddress": "leon.s@kennedy.com",
                            "person": {
                              "id": 4,
                              "firstName": "Leon S",
                              "lastName": "Kennedy",
                              "primaryEmailAddress": "leon.s@kennedy.com",
                              "type": "internal"
                            }
                          },
                          {
                            "emailAddress": "jordan.lee@crestwoodcap.com",
                            "person": {
                              "id": 5,
                              "firstName": "Jordan",
                              "lastName": "Lee",
                              "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                              "type": "external"
                            }
                          }
                        ]
                      }
                    }
                  },
                  {
                    "id": "last-chat-message",
                    "type": "relationship-intelligence",
                    "enrichmentSource": null,
                    "name": "Last Chat Message",
                    "value": {
                      "type": "interaction",
                      "data": {
                        "id": 4,
                        "type": "chat-message",
                        "direction": "sent",
                        "sentAt": "2020-01-02T00:00:00Z",
                        "manualCreator": {
                          "id": 4,
                          "firstName": "Leon S",
                          "lastName": "Kennedy",
                          "primaryEmailAddress": "leon.s@kennedy.com",
                          "type": "internal"
                        },
                        "participants": [
                          {
                            "id": 4,
                            "firstName": "Leon S",
                            "lastName": "Kennedy",
                            "primaryEmailAddress": "leon.s@kennedy.com",
                            "type": "internal"
                          },
                          {
                            "id": 5,
                            "firstName": "Jordan",
                            "lastName": "Lee",
                            "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                            "type": "external"
                          }
                        ]
                      }
                    }
                  },
                  {
                    "id": "last-contact",
                    "type": "relationship-intelligence",
                    "enrichmentSource": null,
                    "name": "Last Contact",
                    "value": {
                      "type": "interaction",
                      "data": {
                        "id": 5,
                        "type": "email",
                        "subject": "re: re: re: Zombie Outbreak",
                        "sentAt": "2020-02-01T00:00:00Z",
                        "from": {
                          "emailAddress": "leon.s@kennedy.com",
                          "person": {
                            "id": 4,
                            "firstName": "Leon S",
                            "lastName": "Kennedy",
                            "primaryEmailAddress": "leon.s@kennedy.com",
                            "type": "internal"
                          }
                        },
                        "to": [
                          {
                            "emailAddress": "jordan.lee@crestwoodcap.com",
                            "person": {
                              "id": 5,
                              "firstName": "Jordan",
                              "lastName": "Lee",
                              "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                              "type": "external"
                            }
                          }
                        ],
                        "cc": []
                      }
                    }
                  },
                  {
                    "id": "last-email",
                    "type": "relationship-intelligence",
                    "enrichmentSource": null,
                    "name": "Last Email",
                    "value": {
                      "type": "interaction",
                      "data": {
                        "id": 5,
                        "type": "email",
                        "subject": "re: re: re: Zombie Outbreak",
                        "sentAt": "2020-02-01T00:00:00Z",
                        "from": {
                          "emailAddress": "leon.s@kennedy.com",
                          "person": {
                            "id": 4,
                            "firstName": "Leon S",
                            "lastName": "Kennedy",
                            "primaryEmailAddress": "leon.s@kennedy.com",
                            "type": "internal"
                          }
                        },
                        "to": [
                          {
                            "emailAddress": "jordan.lee@crestwoodcap.com",
                            "person": {
                              "id": 5,
                              "firstName": "Jordan",
                              "lastName": "Lee",
                              "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                              "type": "external"
                            }
                          }
                        ],
                        "cc": []
                      }
                    }
                  },
                  {
                    "id": "last-event",
                    "type": "relationship-intelligence",
                    "enrichmentSource": null,
                    "name": "Last Event",
                    "value": {
                      "type": "interaction",
                      "data": {
                        "id": 5,
                        "type": "meeting",
                        "title": "re: re: re: Zombie Outbreak",
                        "allDay": false,
                        "startTime": "2020-01-02T00:00:00Z",
                        "endTime": "2020-01-02T01:00:00Z",
                        "attendees": [
                          {
                            "emailAddress": "leon.s@kennedy.com",
                            "person": {
                              "id": 4,
                              "firstName": "Leon S",
                              "lastName": "Kennedy",
                              "primaryEmailAddress": "leon.s@kennedy.com",
                              "type": "internal"
                            }
                          },
                          {
                            "emailAddress": "jordan.lee@crestwoodcap.com",
                            "person": {
                              "id": 5,
                              "firstName": "Jordan",
                              "lastName": "Lee",
                              "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                              "type": "external"
                            }
                          }
                        ]
                      }
                    }
                  },
                  {
                    "id": "next-event",
                    "type": "relationship-intelligence",
                    "enrichmentSource": null,
                    "name": "Next Event",
                    "value": {
                      "type": "interaction",
                      "data": {
                        "id": 6,
                        "type": "meeting",
                        "title": "re: re: re: re: Zombie Outbreak",
                        "allDay": false,
                        "startTime": "2020-01-03T00:00:00Z",
                        "endTime": "2020-01-03T01:00:00Z",
                        "attendees": [
                          {
                            "emailAddress": "leon.s@kennedy.com",
                            "person": {
                              "id": 4,
                              "firstName": "Leon S",
                              "lastName": "Kennedy",
                              "primaryEmailAddress": "leon.s@kennedy.com",
                              "type": "internal"
                            }
                          },
                          {
                            "emailAddress": "jordan.lee@crestwoodcap.com",
                            "person": {
                              "id": 5,
                              "firstName": "Jordan",
                              "lastName": "Lee",
                              "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                              "type": "external"
                            }
                          }
                        ]
                      }
                    }
                  },
                  {
                    "id": "source-of-introduction",
                    "type": "relationship-intelligence",
                    "enrichmentSource": null,
                    "name": "Source of Introduction",
                    "value": {
                      "type": "person",
                      "data": {
                        "id": 3,
                        "firstName": "Michael",
                        "lastName": "Torres",
                        "primaryEmailAddress": "m.torres@northpointvc.com",
                        "type": "internal"
                      }
                    }
                  }
                ]
              },
              "creatorId": 1,
              "createdAt": "2023-01-01T00:00:00Z"
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/lists/1/list-entries?fieldTypes=relationship-intelligence&cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/lists/1/list-entries?fieldTypes=relationship-intelligence&cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "company-list-global-and-list": {
        "description": "Example response on a Company list using `fieldTypes=global&fieldTypes=list`.",
        "value": {
          "data": [
            {
              "id": 1,
              "type": "company",
              "listId": 1,
              "entity": {
                "id": 222345350,
                "name": "Horizon Technologies",
                "domain": "horizontech.com",
                "domains": [
                  "horizontech.com"
                ],
                "isGlobal": true,
                "fields": [
                  {
                    "id": "field-1",
                    "type": "global",
                    "enrichmentSource": null,
                    "name": "Global Number Field",
                    "value": {
                      "type": "number",
                      "data": 100
                    }
                  },
                  {
                    "id": "field-2",
                    "type": "list",
                    "enrichmentSource": null,
                    "name": "List Number Field",
                    "value": {
                      "type": "number",
                      "data": 200
                    }
                  }
                ]
              },
              "createdAt": "2023-01-01T00:00:00Z",
              "creatorId": 1
            },
            {
              "id": 2,
              "type": "company",
              "listId": 1,
              "entity": {
                "id": 2,
                "name": "Crestwood Capital",
                "domain": "crestwoodcap.com",
                "domains": [
                  "crestwoodcap.com"
                ],
                "isGlobal": true,
                "fields": [
                  {
                    "id": "field-1",
                    "type": "global",
                    "enrichmentSource": null,
                    "name": "Global Number Field",
                    "value": {
                      "type": "number",
                      "data": 100
                    }
                  },
                  {
                    "id": "field-2",
                    "type": "list",
                    "enrichmentSource": null,
                    "name": "List Number Field",
                    "value": {
                      "type": "number",
                      "data": 200
                    }
                  }
                ]
              },
              "createdAt": "2023-01-01T00:00:00Z",
              "creatorId": 1
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/lists/1/list-entries?fieldTypes=global&fieldTypes=list&cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/lists/1/list-entries?fieldTypes=global&fieldTypes=list&cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "filter-by-dropdown-2": {
        "summary": "Filter by a dropdown field value",
        "description": "Filter list entries where a dropdown field matches specific options. Use `GET /v2/lists/{listId}/fields?includes=filterability` to discover field IDs, valueTypes, and dropdown option IDs.",
        "value": {
          "filters": {
            "operator": "and",
            "filters": [
              {
                "fieldId": "field-4574182",
                "valueType": "dropdown",
                "operator": "is-any-of",
                "value": [
                  {
                    "dropdownOptionId": 1
                  },
                  {
                    "dropdownOptionId": 2
                  }
                ]
              }
            ]
          }
        }
      },
      "filter-and-sort-2": {
        "summary": "Filter by last email date and sort",
        "description": "Filter list entries to those with a last email within the past 30 days, sorted by when they were added to the list. The `attributeId` is required for interaction fields like `last-email` — use `GET /v2/lists/{listId}/fields?includes=filterability` to discover valid attribute IDs.",
        "value": {
          "filters": {
            "operator": "and",
            "filters": [
              {
                "fieldId": "last-email",
                "attributeId": "date-of-activity",
                "valueType": "date",
                "operator": "is-within-the-last",
                "value": {
                  "amount": [
                    30
                  ],
                  "unit": "day"
                }
              }
            ]
          },
          "sorts": [
            {
              "fieldId": "created-at",
              "direction": "desc"
            }
          ]
        }
      },
      "grouped-filter-2": {
        "summary": "Nested AND/OR filter group",
        "description": "Filter list entries matching a dropdown value AND (a number condition OR an is-empty condition). Filter groups can be nested to arbitrary depth to build complex boolean logic.",
        "value": {
          "filters": {
            "operator": "and",
            "filters": [
              {
                "fieldId": "field-4574182",
                "valueType": "dropdown",
                "operator": "is-any-of",
                "value": [
                  {
                    "dropdownOptionId": 1
                  }
                ]
              },
              {
                "operator": "or",
                "filters": [
                  {
                    "fieldId": "affinity-data-employees-current",
                    "valueType": "number",
                    "operator": "is-greater-than",
                    "value": 100
                  },
                  {
                    "fieldId": "affinity-data-employees-current",
                    "valueType": "number",
                    "operator": "is-empty"
                  }
                ]
              }
            ]
          }
        }
      },
      "search-with-filter-2": {
        "summary": "Keyword search combined with a filter",
        "description": "Search for list entries matching the keyword \"acme\" AND where a dropdown field is not empty. Results must satisfy both the search term and the filter conditions (intersection).",
        "value": {
          "search": {
            "term": "acme"
          },
          "filters": {
            "operator": "and",
            "filters": [
              {
                "fieldId": "field-4574182",
                "valueType": "dropdown",
                "operator": "is-not-empty"
              }
            ]
          }
        }
      },
      "filter-by-time-in-current-status": {
        "summary": "Filter by time in current status",
        "description": "Filter list entries where the time spent in the current status exceeds a relative threshold. The `time-in-current-status` field requires a list with a status field configured. Use `GET /v2/lists/{listId}/fields?includes=filterability` to confirm the field is filterable on your list.",
        "value": {
          "filters": {
            "operator": "and",
            "filters": [
              {
                "fieldId": "time-in-current-status",
                "valueType": "date",
                "operator": "is-more-than-relative",
                "value": {
                  "amount": 14,
                  "unit": "day"
                }
              }
            ]
          }
        }
      },
      "company-list-enriched-2": {
        "description": "Example response on a Company list using `fieldTypes=enriched`.",
        "value": {
          "id": 1,
          "type": "company",
          "listId": 1,
          "entity": {
            "id": 1,
            "name": "Horizon Technologies",
            "domain": "horizontech.com",
            "domains": [
              "horizontech.com"
            ],
            "isGlobal": true,
            "fields": [
              {
                "id": "affinity-data-description",
                "name": "Description",
                "type": "enriched",
                "enrichmentSource": "affinity-data",
                "value": {
                  "type": "text",
                  "data": "Horizon Technologies is a leading technology company specializing in enterprise software and cloud infrastructure."
                }
              },
              {
                "id": "affinity-data-industry",
                "name": "Industry",
                "type": "enriched",
                "enrichmentSource": "affinity-data",
                "value": {
                  "type": "filterable-text-multi",
                  "data": [
                    "Healthcare",
                    "Fintech",
                    "SaaS"
                  ],
                  "totalCount": 3
                }
              },
              {
                "id": "affinity-data-investment-stage",
                "name": "Investment Stage",
                "type": "enriched",
                "enrichmentSource": "affinity-data",
                "value": {
                  "type": "filterable-text",
                  "data": "Public Markets"
                }
              },
              {
                "id": "affinity-data-investors",
                "name": "Investors",
                "type": "enriched",
                "enrichmentSource": "affinity-data",
                "value": {
                  "type": "filterable-text-multi",
                  "data": [
                    "Alex Rivera",
                    "Taylor Wong"
                  ],
                  "totalCount": 2
                }
              },
              {
                "id": "affinity-data-last-funding-amount",
                "name": "Last Funding Amount (USD)",
                "type": "enriched",
                "enrichmentSource": "affinity-data",
                "value": {
                  "type": "number",
                  "data": 100000000
                }
              },
              {
                "id": "affinity-data-last-funding-date",
                "name": "Last Funding Date",
                "type": "enriched",
                "enrichmentSource": "affinity-data",
                "value": {
                  "type": "datetime",
                  "data": "2023-01-01T00:00:00Z"
                }
              },
              {
                "id": "affinity-data-linkedin-url",
                "name": "LinkedIn URL",
                "type": "enriched",
                "enrichmentSource": "affinity-data",
                "value": {
                  "type": "text",
                  "data": "https://linkedin.com/company/horizontech"
                }
              },
              {
                "id": "affinity-data-location",
                "name": "Location",
                "type": "enriched",
                "enrichmentSource": "affinity-data",
                "value": {
                  "type": "location",
                  "data": {
                    "streetAddress": null,
                    "city": "Fairfield",
                    "state": "New Jersey",
                    "country": "United States",
                    "continent": null
                  }
                }
              },
              {
                "id": "affinity-data-number-of-employees",
                "name": "Number of Employees",
                "type": "enriched",
                "enrichmentSource": "affinity-data",
                "value": {
                  "type": "number",
                  "data": 3990
                }
              },
              {
                "id": "affinity-data-total-funding-amount",
                "name": "Total Funding Amount (USD)",
                "type": "enriched",
                "enrichmentSource": "affinity-data",
                "value": {
                  "type": "number",
                  "data": 90000000
                }
              },
              {
                "id": "affinity-data-year-founded",
                "name": "Year Founded",
                "type": "enriched",
                "enrichmentSource": "affinity-data",
                "value": {
                  "type": "number",
                  "data": 1952
                }
              }
            ]
          },
          "creatorId": 1,
          "createdAt": "2023-01-01T00:00:00Z"
        }
      },
      "company-list-relationship-intelligence-2": {
        "description": "Example response on a Company list using `fieldTypes=relationship-intelligence`.",
        "value": {
          "id": 1,
          "type": "company",
          "listId": 1,
          "entity": {
            "id": 1,
            "name": "Horizon Technologies",
            "domain": "horizontech.com",
            "domains": [
              "horizontech.com"
            ],
            "isGlobal": true,
            "fields": [
              {
                "id": "first-chat-message",
                "type": "relationship-intelligence",
                "enrichmentSource": null,
                "name": "First Chat Message",
                "value": {
                  "type": "interaction",
                  "data": {
                    "id": 1,
                    "type": "chat-message",
                    "direction": "sent",
                    "sentAt": "2020-01-01T00:00:00Z",
                    "manualCreator": {
                      "id": 1,
                      "firstName": "Alex",
                      "lastName": "Rivera",
                      "primaryEmailAddress": "alex.rivera@horizontech.com",
                      "type": "internal"
                    },
                    "participants": [
                      {
                        "id": 1,
                        "firstName": "Alex",
                        "lastName": "Rivera",
                        "primaryEmailAddress": "alex.rivera@horizontech.com",
                        "type": "internal"
                      },
                      {
                        "id": 2,
                        "firstName": "Jordan",
                        "lastName": "Lee",
                        "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                        "type": "external"
                      }
                    ]
                  }
                }
              },
              {
                "id": "first-email",
                "type": "relationship-intelligence",
                "enrichmentSource": null,
                "name": "First Email",
                "value": {
                  "type": "interaction",
                  "data": {
                    "id": 1,
                    "type": "email",
                    "subject": "Defective Products",
                    "sentAt": "2020-01-01T00:00:00Z",
                    "from": {
                      "emailAddress": "alex.rivera@horizontech.com",
                      "person": {
                        "id": 1,
                        "firstName": "Alex",
                        "lastName": "Rivera",
                        "primaryEmailAddress": "alex.rivera@horizontech.com",
                        "type": "internal"
                      }
                    },
                    "to": [
                      {
                        "emailAddress": "jordan.lee@crestwoodcap.com",
                        "person": {
                          "id": 2,
                          "firstName": "Jordan",
                          "lastName": "Lee",
                          "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                          "type": "external"
                        }
                      }
                    ],
                    "cc": []
                  }
                }
              },
              {
                "id": "first-event",
                "type": "relationship-intelligence",
                "enrichmentSource": null,
                "name": "First Event",
                "value": {
                  "type": "interaction",
                  "data": {
                    "id": 1,
                    "type": "meeting",
                    "title": "Defective Products",
                    "allDay": false,
                    "startTime": "2020-01-02T00:00:00Z",
                    "endTime": "2020-01-02T01:00:00Z",
                    "attendees": [
                      {
                        "emailAddress": "alex.rivera@horizontech.com",
                        "person": {
                          "id": 1,
                          "firstName": "Alex",
                          "lastName": "Rivera",
                          "primaryEmailAddress": "alex.rivera@horizontech.com",
                          "type": "internal"
                        }
                      },
                      {
                        "emailAddress": "jordan.lee@crestwoodcap.com",
                        "person": {
                          "id": 2,
                          "firstName": "Jordan",
                          "lastName": "Lee",
                          "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                          "type": "external"
                        }
                      }
                    ]
                  }
                }
              },
              {
                "id": "last-chat-message",
                "type": "relationship-intelligence",
                "enrichmentSource": null,
                "name": "Last Chat Message",
                "value": {
                  "type": "interaction",
                  "data": {
                    "id": 2,
                    "type": "chat-message",
                    "direction": "sent",
                    "sentAt": "2020-01-02T00:00:00Z",
                    "manualCreator": {
                      "id": 1,
                      "firstName": "Alex",
                      "lastName": "Rivera",
                      "primaryEmailAddress": "alex.rivera@horizontech.com",
                      "type": "internal"
                    },
                    "participants": [
                      {
                        "id": 1,
                        "firstName": "Alex",
                        "lastName": "Rivera",
                        "primaryEmailAddress": "alex.rivera@horizontech.com",
                        "type": "internal"
                      },
                      {
                        "id": 2,
                        "firstName": "Jordan",
                        "lastName": "Lee",
                        "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                        "type": "external"
                      }
                    ]
                  }
                }
              },
              {
                "id": "last-contact",
                "type": "relationship-intelligence",
                "enrichmentSource": null,
                "name": "Last Contact",
                "value": {
                  "type": "interaction",
                  "data": {
                    "id": 2,
                    "type": "email",
                    "subject": "re: re: re: Defective Products",
                    "sentAt": "2020-02-01T00:00:00Z",
                    "from": {
                      "emailAddress": "alex.rivera@horizontech.com",
                      "person": {
                        "id": 1,
                        "firstName": "Alex",
                        "lastName": "Rivera",
                        "primaryEmailAddress": "alex.rivera@horizontech.com",
                        "type": "internal"
                      }
                    },
                    "to": [
                      {
                        "emailAddress": "jordan.lee@crestwoodcap.com",
                        "person": {
                          "id": 2,
                          "firstName": "Jordan",
                          "lastName": "Lee",
                          "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                          "type": "external"
                        }
                      }
                    ],
                    "cc": []
                  }
                }
              },
              {
                "id": "last-email",
                "type": "relationship-intelligence",
                "enrichmentSource": null,
                "name": "Last Email",
                "value": {
                  "type": "interaction",
                  "data": {
                    "id": 2,
                    "type": "email",
                    "subject": "re: re: re: Defective Products",
                    "sentAt": "2020-02-01T00:00:00Z",
                    "from": {
                      "emailAddress": "alex.rivera@horizontech.com",
                      "person": {
                        "id": 1,
                        "firstName": "Alex",
                        "lastName": "Rivera",
                        "primaryEmailAddress": "alex.rivera@horizontech.com",
                        "type": "internal"
                      }
                    },
                    "to": [
                      {
                        "emailAddress": "jordan.lee@crestwoodcap.com",
                        "person": {
                          "id": 2,
                          "firstName": "Jordan",
                          "lastName": "Lee",
                          "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                          "type": "external"
                        }
                      }
                    ],
                    "cc": []
                  }
                }
              },
              {
                "id": "last-event",
                "type": "relationship-intelligence",
                "enrichmentSource": null,
                "name": "Last Event",
                "value": {
                  "type": "interaction",
                  "data": {
                    "id": 2,
                    "type": "meeting",
                    "title": "re: re: re: Defective Products",
                    "allDay": false,
                    "startTime": "2020-01-03T00:00:00Z",
                    "endTime": "2020-01-03T01:00:00Z",
                    "attendees": [
                      {
                        "emailAddress": "alex.rivera@horizontech.com",
                        "person": {
                          "id": 1,
                          "firstName": "Alex",
                          "lastName": "Rivera",
                          "primaryEmailAddress": "alex.rivera@horizontech.com",
                          "type": "internal"
                        }
                      },
                      {
                        "emailAddress": "jordan.lee@crestwoodcap.com",
                        "person": {
                          "id": 2,
                          "firstName": "Jordan",
                          "lastName": "Lee",
                          "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                          "type": "external"
                        }
                      }
                    ]
                  }
                }
              },
              {
                "id": "next-event",
                "type": "relationship-intelligence",
                "enrichmentSource": null,
                "name": "Next Event",
                "value": {
                  "type": "interaction",
                  "data": {
                    "id": 3,
                    "type": "meeting",
                    "title": "re: re: re: re: Defective Products",
                    "allDay": false,
                    "startTime": "2020-02-03T00:00:00Z",
                    "endTime": "2020-02-03T01:00:00Z",
                    "attendees": [
                      {
                        "emailAddress": "alex.rivera@horizontech.com",
                        "person": {
                          "id": 1,
                          "firstName": "Alex",
                          "lastName": "Rivera",
                          "primaryEmailAddress": "alex.rivera@horizontech.com",
                          "type": "internal"
                        }
                      },
                      {
                        "emailAddress": "jordan.lee@crestwoodcap.com",
                        "person": {
                          "id": 2,
                          "firstName": "Jordan",
                          "lastName": "Lee",
                          "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                          "type": "external"
                        }
                      }
                    ]
                  }
                }
              },
              {
                "id": "source-of-introduction",
                "type": "relationship-intelligence",
                "enrichmentSource": null,
                "name": "Source of Introduction",
                "value": {
                  "type": "person",
                  "data": {
                    "id": 3,
                    "firstName": "Taylor",
                    "lastName": "Wong",
                    "primaryEmailAddress": "taylor.wong@northpointvc.com",
                    "type": "internal"
                  }
                }
              }
            ]
          },
          "creatorId": 1,
          "createdAt": "2023-01-01T00:00:00Z"
        }
      },
      "company-list-global-and-list-2": {
        "description": "Example response on a Company list using `fieldTypes=global&fieldTypes=list`.",
        "value": {
          "id": 1,
          "type": "company",
          "listId": 1,
          "entity": {
            "id": 222345350,
            "name": "Horizon Technologies",
            "domain": "horizontech.com",
            "domains": [
              "horizontech.com"
            ],
            "isGlobal": true,
            "fields": [
              {
                "id": "field-1",
                "type": "global",
                "enrichmentSource": null,
                "name": "Global Number Field",
                "value": {
                  "type": "number",
                  "data": 100
                }
              },
              {
                "id": "field-2",
                "type": "list",
                "enrichmentSource": null,
                "name": "List Number Field",
                "value": {
                  "type": "number",
                  "data": 200
                }
              }
            ]
          },
          "createdAt": "2023-01-01T00:00:00Z",
          "creatorId": 1
        }
      },
      "company-list-enriched-3": {
        "description": "Example response on a Company list using `types=enriched`.",
        "value": {
          "data": [
            {
              "id": "affinity-data-description",
              "name": "Description",
              "type": "enriched",
              "enrichmentSource": "affinity-data",
              "value": {
                "type": "text",
                "data": "Horizon Technologies is a leading technology company specializing in enterprise software and cloud infrastructure."
              }
            },
            {
              "id": "affinity-data-industry",
              "name": "Industry",
              "type": "enriched",
              "enrichmentSource": "affinity-data",
              "value": {
                "type": "filterable-text-multi",
                "data": [
                  "Healthcare",
                  "Fintech",
                  "SaaS"
                ],
                "totalCount": 3
              }
            },
            {
              "id": "affinity-data-investment-stage",
              "name": "Investment Stage",
              "type": "enriched",
              "enrichmentSource": "affinity-data",
              "value": {
                "type": "filterable-text",
                "data": "Public Markets"
              }
            },
            {
              "id": "affinity-data-investors",
              "name": "Investors",
              "type": "enriched",
              "enrichmentSource": "affinity-data",
              "value": {
                "type": "filterable-text-multi",
                "data": [
                  "Alex Rivera",
                  "Taylor Wong"
                ],
                "totalCount": 2
              }
            },
            {
              "id": "affinity-data-last-funding-amount",
              "name": "Last Funding Amount (USD)",
              "type": "enriched",
              "enrichmentSource": "affinity-data",
              "value": {
                "type": "number",
                "data": 100000000
              }
            },
            {
              "id": "affinity-data-last-funding-date",
              "name": "Last Funding Date",
              "type": "enriched",
              "enrichmentSource": "affinity-data",
              "value": {
                "type": "datetime",
                "data": "2023-01-01T00:00:00Z"
              }
            },
            {
              "id": "affinity-data-linkedin-url",
              "name": "LinkedIn URL",
              "type": "enriched",
              "enrichmentSource": "affinity-data",
              "value": {
                "type": "text",
                "data": "https://linkedin.com/company/horizontech"
              }
            },
            {
              "id": "affinity-data-location",
              "name": "Location",
              "type": "enriched",
              "enrichmentSource": "affinity-data",
              "value": {
                "type": "location",
                "data": {
                  "streetAddress": null,
                  "city": "Fairfield",
                  "state": "New Jersey",
                  "country": "United States",
                  "continent": null
                }
              }
            },
            {
              "id": "affinity-data-number-of-employees",
              "name": "Number of Employees",
              "type": "enriched",
              "enrichmentSource": "affinity-data",
              "value": {
                "type": "number",
                "data": 3990
              }
            },
            {
              "id": "affinity-data-total-funding-amount",
              "name": "Total Funding Amount (USD)",
              "type": "enriched",
              "enrichmentSource": "affinity-data",
              "value": {
                "type": "number",
                "data": 90000000
              }
            },
            {
              "id": "affinity-data-year-founded",
              "name": "Year Founded",
              "type": "enriched",
              "enrichmentSource": "affinity-data",
              "value": {
                "type": "number",
                "data": 1952
              }
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/lists/1/list-entries?types=enriched&cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/lists/1/list-entries?types=enriched&cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "company-list-relationship-intelligence-3": {
        "description": "Example response on a Company list using `types=relationship-intelligence`.",
        "value": {
          "data": [
            {
              "id": "first-chat-message",
              "type": "relationship-intelligence",
              "enrichmentSource": null,
              "name": "First Chat Message",
              "value": {
                "type": "interaction",
                "data": {
                  "id": 1,
                  "type": "chat-message",
                  "direction": "sent",
                  "sentAt": "2020-01-01T00:00:00Z",
                  "manualCreator": {
                    "id": 1,
                    "firstName": "Alex",
                    "lastName": "Rivera",
                    "primaryEmailAddress": "alex.rivera@horizontech.com",
                    "type": "internal"
                  },
                  "participants": [
                    {
                      "id": 1,
                      "firstName": "Alex",
                      "lastName": "Rivera",
                      "primaryEmailAddress": "alex.rivera@horizontech.com",
                      "type": "internal"
                    },
                    {
                      "id": 2,
                      "firstName": "Jordan",
                      "lastName": "Lee",
                      "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                      "type": "external"
                    }
                  ]
                }
              }
            },
            {
              "id": "first-email",
              "type": "relationship-intelligence",
              "enrichmentSource": null,
              "name": "First Email",
              "value": {
                "type": "interaction",
                "data": {
                  "id": 1,
                  "type": "email",
                  "subject": "Defective Products",
                  "sentAt": "2020-01-01T00:00:00Z",
                  "from": {
                    "emailAddress": "alex.rivera@horizontech.com",
                    "person": {
                      "id": 1,
                      "firstName": "Alex",
                      "lastName": "Rivera",
                      "primaryEmailAddress": "alex.rivera@horizontech.com",
                      "type": "internal"
                    }
                  },
                  "to": [
                    {
                      "emailAddress": "jordan.lee@crestwoodcap.com",
                      "person": {
                        "id": 2,
                        "firstName": "Jordan",
                        "lastName": "Lee",
                        "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                        "type": "external"
                      }
                    }
                  ],
                  "cc": []
                }
              }
            },
            {
              "id": "first-event",
              "type": "relationship-intelligence",
              "enrichmentSource": null,
              "name": "First Event",
              "value": {
                "type": "interaction",
                "data": {
                  "id": 1,
                  "type": "meeting",
                  "title": "Defective Products",
                  "allDay": false,
                  "startTime": "2020-01-02T00:00:00Z",
                  "endTime": "2020-01-02T01:00:00Z",
                  "attendees": [
                    {
                      "emailAddress": "alex.rivera@horizontech.com",
                      "person": {
                        "id": 1,
                        "firstName": "Alex",
                        "lastName": "Rivera",
                        "primaryEmailAddress": "alex.rivera@horizontech.com",
                        "type": "internal"
                      }
                    },
                    {
                      "emailAddress": "jordan.lee@crestwoodcap.com",
                      "person": {
                        "id": 2,
                        "firstName": "Jordan",
                        "lastName": "Lee",
                        "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                        "type": "external"
                      }
                    }
                  ]
                }
              }
            },
            {
              "id": "last-chat-message",
              "type": "relationship-intelligence",
              "enrichmentSource": null,
              "name": "Last Chat Message",
              "value": {
                "type": "interaction",
                "data": {
                  "id": 2,
                  "type": "chat-message",
                  "direction": "sent",
                  "sentAt": "2020-01-02T00:00:00Z",
                  "manualCreator": {
                    "id": 1,
                    "firstName": "Alex",
                    "lastName": "Rivera",
                    "primaryEmailAddress": "alex.rivera@horizontech.com",
                    "type": "internal"
                  },
                  "participants": [
                    {
                      "id": 1,
                      "firstName": "Alex",
                      "lastName": "Rivera",
                      "primaryEmailAddress": "alex.rivera@horizontech.com",
                      "type": "internal"
                    },
                    {
                      "id": 2,
                      "firstName": "Jordan",
                      "lastName": "Lee",
                      "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                      "type": "external"
                    }
                  ]
                }
              }
            },
            {
              "id": "last-contact",
              "type": "relationship-intelligence",
              "enrichmentSource": null,
              "name": "Last Contact",
              "value": {
                "type": "interaction",
                "data": {
                  "id": 2,
                  "type": "email",
                  "subject": "re: re: re: Defective Products",
                  "sentAt": "2020-02-01T00:00:00Z",
                  "from": {
                    "emailAddress": "alex.rivera@horizontech.com",
                    "person": {
                      "id": 1,
                      "firstName": "Alex",
                      "lastName": "Rivera",
                      "primaryEmailAddress": "alex.rivera@horizontech.com",
                      "type": "internal"
                    }
                  },
                  "to": [
                    {
                      "emailAddress": "jordan.lee@crestwoodcap.com",
                      "person": {
                        "id": 2,
                        "firstName": "Jordan",
                        "lastName": "Lee",
                        "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                        "type": "external"
                      }
                    }
                  ],
                  "cc": []
                }
              }
            },
            {
              "id": "last-email",
              "type": "relationship-intelligence",
              "enrichmentSource": null,
              "name": "Last Email",
              "value": {
                "type": "interaction",
                "data": {
                  "id": 2,
                  "type": "email",
                  "subject": "re: re: re: Defective Products",
                  "sentAt": "2020-02-01T00:00:00Z",
                  "from": {
                    "emailAddress": "alex.rivera@horizontech.com",
                    "person": {
                      "id": 1,
                      "firstName": "Alex",
                      "lastName": "Rivera",
                      "primaryEmailAddress": "alex.rivera@horizontech.com",
                      "type": "internal"
                    }
                  },
                  "to": [
                    {
                      "emailAddress": "jordan.lee@crestwoodcap.com",
                      "person": {
                        "id": 2,
                        "firstName": "Jordan",
                        "lastName": "Lee",
                        "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                        "type": "external"
                      }
                    }
                  ],
                  "cc": []
                }
              }
            },
            {
              "id": "last-event",
              "type": "relationship-intelligence",
              "enrichmentSource": null,
              "name": "Last Event",
              "value": {
                "type": "interaction",
                "data": {
                  "id": 2,
                  "type": "meeting",
                  "title": "re: re: re: Defective Products",
                  "allDay": false,
                  "startTime": "2020-01-03T00:00:00Z",
                  "endTime": "2020-01-03T01:00:00Z",
                  "attendees": [
                    {
                      "emailAddress": "alex.rivera@horizontech.com",
                      "person": {
                        "id": 1,
                        "firstName": "Alex",
                        "lastName": "Rivera",
                        "primaryEmailAddress": "alex.rivera@horizontech.com",
                        "type": "internal"
                      }
                    },
                    {
                      "emailAddress": "jordan.lee@crestwoodcap.com",
                      "person": {
                        "id": 2,
                        "firstName": "Jordan",
                        "lastName": "Lee",
                        "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                        "type": "external"
                      }
                    }
                  ]
                }
              }
            },
            {
              "id": "next-event",
              "type": "relationship-intelligence",
              "enrichmentSource": null,
              "name": "Next Event",
              "value": {
                "type": "interaction",
                "data": {
                  "id": 3,
                  "type": "meeting",
                  "title": "re: re: re: re: Defective Products",
                  "allDay": false,
                  "startTime": "2020-02-03T00:00:00Z",
                  "endTime": "2020-02-03T01:00:00Z",
                  "attendees": [
                    {
                      "emailAddress": "alex.rivera@horizontech.com",
                      "person": {
                        "id": 1,
                        "firstName": "Alex",
                        "lastName": "Rivera",
                        "primaryEmailAddress": "alex.rivera@horizontech.com",
                        "type": "internal"
                      }
                    },
                    {
                      "emailAddress": "jordan.lee@crestwoodcap.com",
                      "person": {
                        "id": 2,
                        "firstName": "Jordan",
                        "lastName": "Lee",
                        "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                        "type": "external"
                      }
                    }
                  ]
                }
              }
            },
            {
              "id": "source-of-introduction",
              "type": "relationship-intelligence",
              "enrichmentSource": null,
              "name": "Source of Introduction",
              "value": {
                "type": "person",
                "data": {
                  "id": 3,
                  "firstName": "Taylor",
                  "lastName": "Wong",
                  "primaryEmailAddress": "taylor.wong@northpointvc.com",
                  "type": "internal"
                }
              }
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/lists/1/list-entries?types=relationship-intelligence&cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/lists/1/list-entries?types=relationship-intelligence&cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "company-list-global-and-list-3": {
        "description": "Example response on a Company list using `types=global&fieldTypes=list`.",
        "value": {
          "data": [
            {
              "id": "field-1",
              "type": "global",
              "enrichmentSource": null,
              "name": "Global Number Field",
              "value": {
                "type": "number",
                "data": 100
              }
            },
            {
              "id": "field-2",
              "type": "list",
              "enrichmentSource": null,
              "name": "List Number Field",
              "value": {
                "type": "number",
                "data": 200
              }
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/lists/1/list-entries/1/fields?types=global&types=list&cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/lists/1/list-entries/1/fields?types=global&types=list&cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "company-3": {
        "description": "Example response on a field with a company value.",
        "value": {
          "id": "field-1",
          "name": "Field with company value",
          "type": "list",
          "enrichmentSource": null,
          "value": {
            "type": "company",
            "data": {
              "id": 1,
              "name": "Horizon Technologies",
              "domain": "horizontech.com"
            }
          }
        }
      },
      "datetime-3": {
        "description": "Example response on a field with a datetime value.",
        "value": {
          "id": "field-3",
          "name": "Field with datetime value",
          "type": "list",
          "enrichmentSource": null,
          "value": {
            "type": "datetime",
            "data": "2023-01-01T00:00:00Z"
          }
        }
      },
      "dropdown-7": {
        "description": "Example response on a field with a dropdown value.",
        "value": {
          "id": "field-4",
          "name": "Field with dropdown value",
          "type": "list",
          "enrichmentSource": null,
          "value": {
            "type": "dropdown",
            "data": {
              "dropdownOptionId": 1,
              "text": "Option 1"
            }
          }
        }
      },
      "dropdown-multi-3": {
        "description": "Example response on a field with a dropdown-multi value.",
        "value": {
          "id": "field-5",
          "name": "Field with dropdown-multi value",
          "type": "list",
          "enrichmentSource": null,
          "value": {
            "type": "dropdown-multi",
            "data": [
              {
                "dropdownOptionId": 1,
                "text": "Series A"
              },
              {
                "dropdownOptionId": 2,
                "text": "Series B"
              }
            ]
          }
        }
      },
      "filterable-text-3": {
        "description": "Example response on a field with a filterable-text value.",
        "value": {
          "id": "field-6",
          "name": "Field with filterable-text value",
          "type": "list",
          "enrichmentSource": null,
          "value": {
            "type": "filterable-text",
            "data": "A text value"
          }
        }
      },
      "filterable-text-multi-3": {
        "description": "Example response on a field with a filterable-text-multi value.",
        "value": {
          "id": "field-7",
          "name": "Field with filterable-text-multi value",
          "type": "list",
          "enrichmentSource": null,
          "value": {
            "type": "filterable-text-multi",
            "data": [
              "Healthcare",
              "Fintech"
            ]
          }
        }
      },
      "formula-number-2": {
        "description": "Example response on a field with a formula-number value.",
        "value": {
          "id": "field-8",
          "name": "Field with formula-number value",
          "type": "list",
          "enrichmentSource": null,
          "value": {
            "type": "formula-number",
            "data": {
              "calculatedValue": 100
            }
          }
        }
      },
      "interaction-2": {
        "description": "Example response on a field with a interaction value.",
        "value": {
          "id": "field-9",
          "name": "Field with interaction value",
          "type": "list",
          "enrichmentSource": null,
          "value": {
            "type": "interaction",
            "data": {
              "id": 1,
              "type": "meeting",
              "title": "Defective Products",
              "allDay": false,
              "startTime": "2020-01-02T00:00:00Z",
              "endTime": "2020-01-02T01:00:00Z",
              "attendees": [
                {
                  "emailAddress": "alex.rivera@horizontech.com",
                  "person": {
                    "id": 1,
                    "firstName": "Alex",
                    "lastName": "Rivera",
                    "primaryEmailAddress": "alex.rivera@horizontech.com",
                    "type": "internal"
                  }
                },
                {
                  "emailAddress": "jordan.lee@crestwoodcap.com",
                  "person": {
                    "id": 2,
                    "firstName": "Jordan",
                    "lastName": "Lee",
                    "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                    "type": "external"
                  }
                }
              ]
            }
          }
        }
      },
      "location-3": {
        "description": "Example response on a field with a location value.",
        "value": {
          "id": "field-10",
          "name": "Field with location value",
          "type": "list",
          "enrichmentSource": null,
          "value": {
            "type": "location",
            "data": {
              "streetAddress": "1 Main Street",
              "city": "San Francisco",
              "state": "California",
              "country": "United States",
              "continent": "North America"
            }
          }
        }
      },
      "number-3": {
        "description": "Example response on a field with a number value.",
        "value": {
          "id": "field-12",
          "name": "Field with number value",
          "type": "list",
          "enrichmentSource": null,
          "value": {
            "type": "number",
            "data": 100
          }
        }
      },
      "number-multi-3": {
        "description": "Example response on a field with a number-multi value.",
        "value": {
          "id": "field-13",
          "name": "Field with number-multi value",
          "type": "list",
          "enrichmentSource": null,
          "value": {
            "type": "number-multi",
            "data": [
              1000000,
              2500000,
              5000000
            ]
          }
        }
      },
      "person-3": {
        "description": "Example response on a field with a person value.",
        "value": {
          "id": "field-14",
          "name": "Field with person value",
          "type": "list",
          "enrichmentSource": null,
          "value": {
            "type": "person",
            "data": {
              "id": 1,
              "firstName": "Alex",
              "lastName": "Rivera",
              "primaryEmailAddress": "alex.rivera@horizontech.com",
              "type": "internal"
            }
          }
        }
      },
      "ranked-dropdown-7": {
        "description": "Example response on a field with a ranked-dropdown value.",
        "value": {
          "id": "field-16",
          "name": "Field with ranked-dropdown value",
          "type": "list",
          "enrichmentSource": null,
          "value": {
            "type": "ranked-dropdown",
            "data": {
              "dropdownOptionId": 1,
              "text": "Option 1",
              "rank": 1,
              "color": "gray"
            }
          }
        }
      },
      "text-3": {
        "description": "Example response on a field with a text value.",
        "value": {
          "id": "field-17",
          "name": "Field with text value",
          "type": "list",
          "enrichmentSource": null,
          "value": {
            "type": "text",
            "data": "Hello"
          }
        }
      },
      "company-4": {
        "description": "Example response on a field with a company value.",
        "value": {
          "value": {
            "type": "company",
            "data": {
              "id": 1
            }
          }
        }
      },
      "company-multi-3": {
        "description": "Example response on a field with a company-multi value.",
        "value": {
          "value": {
            "type": "company-multi",
            "data": [
              {
                "id": 1
              },
              {
                "id": 2
              }
            ]
          }
        }
      },
      "datetime-4": {
        "description": "Example response on a field with a datetime value.",
        "value": {
          "value": {
            "type": "datetime",
            "data": "2023-01-01T00:00:00Z"
          }
        }
      },
      "dropdown-8": {
        "description": "Example response on a field with a dropdown value.",
        "value": {
          "value": {
            "type": "dropdown",
            "data": {
              "dropdownOptionId": 1
            }
          }
        }
      },
      "dropdown-multi-4": {
        "description": "Example response on a field with a dropdown-multi value.",
        "value": {
          "value": {
            "type": "dropdown-multi",
            "data": [
              {
                "dropdownOptionId": 1
              },
              {
                "dropdownOptionId": 2
              }
            ]
          }
        }
      },
      "filterable-text-4": {
        "description": "Example response on a field with a filterable-text value.",
        "value": {
          "value": {
            "type": "filterable-text",
            "data": "A text value"
          }
        }
      },
      "filterable-text-multi-4": {
        "description": "Example response on a field with a filterable-text-multi value.",
        "value": {
          "value": {
            "type": "filterable-text-multi",
            "data": [
              "A text value",
              "Another text value"
            ]
          }
        }
      },
      "location-4": {
        "description": "Example response on a field with a location value.",
        "value": {
          "value": {
            "type": "location",
            "data": {
              "streetAddress": "1 Main Street",
              "city": "San Francisco",
              "state": "California",
              "country": "United States",
              "continent": "North America"
            }
          }
        }
      },
      "location-multi-3": {
        "description": "Example response on a field with a location-multi value.",
        "value": {
          "value": {
            "type": "location-multi",
            "data": [
              {
                "streetAddress": "1 Main Street",
                "city": "San Francisco",
                "state": "California",
                "country": "United States",
                "continent": "North America"
              },
              {
                "streetAddress": "1600 Pennsylvania Avenue NW",
                "city": "Washington",
                "state": "DC",
                "country": "United States",
                "continent": "North America"
              }
            ]
          }
        }
      },
      "number-4": {
        "description": "Example response on a field with a number value.",
        "value": {
          "value": {
            "type": "number",
            "data": 100
          }
        }
      },
      "number-multi-4": {
        "description": "Example response on a field with a number-multi value.",
        "value": {
          "value": {
            "type": "number-multi",
            "data": [
              100,
              200,
              300
            ]
          }
        }
      },
      "person-4": {
        "description": "Example response on a field with a person value.",
        "value": {
          "value": {
            "type": "person",
            "data": {
              "id": 1
            }
          }
        }
      },
      "person-multi-3": {
        "description": "Example response on a field with a person-multi value.",
        "value": {
          "value": {
            "type": "person-multi",
            "data": [
              {
                "id": 1
              },
              {
                "id": 2
              }
            ]
          }
        }
      },
      "ranked-dropdown-8": {
        "description": "Example response on a field with a ranked-dropdown value.",
        "value": {
          "value": {
            "type": "ranked-dropdown",
            "data": {
              "dropdownOptionId": 1
            }
          }
        }
      },
      "text-4": {
        "description": "Example response on a field with a text value.",
        "value": {
          "value": {
            "type": "text",
            "data": "Some new text"
          }
        }
      },
      "ai-notetaker": {
        "description": "Example response for AI Notetaker notes.",
        "value": {
          "data": [
            {
              "id": 1,
              "type": "ai-notetaker",
              "content": {
                "html": "<p> This is an AI Notetaker note! </p>"
              },
              "creator": {
                "id": 1,
                "firstName": "Jane",
                "lastName": "Smith",
                "primaryEmailAddress": "jane.smith@northpointvc.com",
                "type": "internal"
              },
              "mentions": [],
              "transcriptId": 1,
              "createdAt": "2023-01-01T00:00:00Z",
              "updatedAt": "2023-01-21T00:00:00Z"
            },
            {
              "id": 2,
              "type": "ai-notetaker",
              "content": {
                "html": "<p> This is another AI Notetaker note! </p>"
              },
              "creator": {
                "id": 1,
                "firstName": "Jane",
                "lastName": "Smith",
                "primaryEmailAddress": "jane.smith@northpointvc.com",
                "type": "internal"
              },
              "mentions": [],
              "transcriptId": 2,
              "createdAt": "2024-01-01T00:00:00Z",
              "updatedAt": "2024-01-21T00:00:00Z"
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/notes?cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/notes?cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "entities": {
        "description": "Example response for entity notes.",
        "value": {
          "data": [
            {
              "id": 1,
              "type": "entities",
              "content": {
                "html": "<p> This is a note! <span data-type=\"note-mention\" data-note-mention-type=\"person\" data-note-mention-person-id=\"1\"> Michael Torres </span></p>"
              },
              "creator": {
                "id": 1,
                "firstName": "Jane",
                "lastName": "Smith",
                "primaryEmailAddress": "jane.smith@northpointvc.com",
                "type": "internal"
              },
              "mentions": [
                {
                  "id": 1,
                  "type": "person",
                  "person": {
                    "id": 2,
                    "firstName": "Michael",
                    "lastName": "Torres",
                    "primaryEmailAddress": "m.torres@northpointvc.com",
                    "type": "internal"
                  }
                }
              ],
              "createdAt": "2023-01-01T00:00:00Z",
              "updatedAt": "2023-01-21T00:00:00Z"
            },
            {
              "id": 2,
              "type": "entities",
              "content": {
                "html": "<p> This is another note! </p>"
              },
              "creator": {
                "id": 1,
                "firstName": "Jane",
                "lastName": "Smith",
                "primaryEmailAddress": "jane.smith@northpointvc.com",
                "type": "internal"
              },
              "mentions": [],
              "createdAt": "2024-01-01T00:00:00Z",
              "updatedAt": "2024-01-21T00:00:00Z"
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/notes?cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/notes?cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "interaction-3": {
        "description": "Example response for interaction notes.",
        "value": {
          "data": [
            {
              "id": 1,
              "type": "interaction",
              "content": {
                "html": "<p>This is a call note!</p><span data-type=\"note-mention\" data-note-mention-type=\"person\" data-note-mention-person-id=\"1\">Jane Smith</span>"
              },
              "creator": {
                "id": 1,
                "firstName": "Jane",
                "lastName": "Smith",
                "primaryEmailAddress": "jane.smith@northpointvc.com",
                "type": "internal"
              },
              "mentions": [
                {
                  "id": 1,
                  "type": "person",
                  "person": {
                    "id": 1,
                    "firstName": "Jane",
                    "lastName": "Smith",
                    "primaryEmailAddress": "jane.smith@northpointvc.com",
                    "type": "internal"
                  }
                }
              ],
              "createdAt": "2023-01-01T00:00:00Z",
              "updatedAt": "2023-01-21T00:00:00Z",
              "interaction": {
                "id": 1,
                "type": "call"
              }
            },
            {
              "id": 2,
              "type": "interaction",
              "content": {
                "html": "<p>This is a meeting note!</p>"
              },
              "creator": {
                "id": 1,
                "firstName": "Jane",
                "lastName": "Smith",
                "primaryEmailAddress": "jane.smith@northpointvc.com",
                "type": "internal"
              },
              "mentions": [],
              "createdAt": "2023-02-01T00:00:00Z",
              "updatedAt": null,
              "interaction": {
                "id": 1,
                "type": "meeting"
              }
            },
            {
              "id": 3,
              "type": "interaction",
              "content": {
                "html": "<p>This is an email note!</p>"
              },
              "creator": {
                "id": 1,
                "firstName": "Jane",
                "lastName": "Smith",
                "primaryEmailAddress": "jane.smith@northpointvc.com",
                "type": "internal"
              },
              "mentions": [],
              "createdAt": "2023-02-01T00:00:00Z",
              "updatedAt": null,
              "interaction": {
                "id": 1,
                "type": "email"
              }
            },
            {
              "id": 4,
              "type": "interaction",
              "content": {
                "html": "<p>This is a chat message note!</p>"
              },
              "creator": {
                "id": 1,
                "firstName": "Jane",
                "lastName": "Smith",
                "primaryEmailAddress": "jane.smith@northpointvc.com",
                "type": "internal"
              },
              "mentions": [],
              "createdAt": "2023-02-01T00:00:00Z",
              "updatedAt": null,
              "interaction": {
                "id": 1,
                "type": "chat-message"
              }
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/notes?cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/notes?cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "entities-2": {
        "summary": "Create a note attached to entities",
        "description": "Create a note attached directly to two Persons, one Company, and one Opportunity. The new note is attached to those entities and is authored by the calling user.",
        "value": {
          "type": "entities",
          "content": {
            "html": "<p>Followed up after the demo. Strong interest, will recirculate next week.</p>"
          },
          "persons": [
            {
              "id": 2
            },
            {
              "id": 3
            }
          ],
          "companies": [
            {
              "id": 10
            }
          ],
          "opportunities": [
            {
              "id": 100
            }
          ]
        }
      },
      "interaction-4": {
        "summary": "Create a note attached to a meeting",
        "description": "Create an interaction note that is attached to a meeting (id `12345`). Optionally, an additional Person association is supplied so the note also surfaces on that Person's profile.",
        "value": {
          "type": "interaction",
          "content": {
            "html": "<p>Discussed Q2 pricing options. Sending the deck tomorrow.</p>"
          },
          "interaction": {
            "type": "meeting",
            "id": 12345
          },
          "persons": [
            {
              "id": 2
            }
          ]
        }
      },
      "user-reply": {
        "summary": "Reply to an existing note",
        "description": "Create a reply to root note id `1`. Replies do not have their own entity associations or interaction attachment.",
        "value": {
          "type": "user-reply",
          "content": {
            "html": "<p>Thanks for the update — looping in the AE.</p>"
          },
          "parent": {
            "id": 1
          }
        }
      },
      "entities-3": {
        "description": "Example response after creating a note attached to entities.",
        "value": {
          "id": 1,
          "type": "entities",
          "content": {
            "html": "<p>Followed up after the demo. Strong interest, will recirculate next week.</p>"
          },
          "creator": {
            "id": 1,
            "firstName": "Jane",
            "lastName": "Smith",
            "primaryEmailAddress": "jane.smith@northpointvc.com",
            "type": "internal"
          },
          "mentions": [],
          "createdAt": "2023-01-01T00:00:00Z",
          "updatedAt": null
        }
      },
      "interaction-5": {
        "description": "Example response after creating a note attached to a meeting.",
        "value": {
          "id": 1,
          "type": "interaction",
          "content": {
            "html": "<p>Discussed Q2 pricing options. Sending the deck tomorrow.</p>"
          },
          "creator": {
            "id": 1,
            "firstName": "Jane",
            "lastName": "Smith",
            "primaryEmailAddress": "jane.smith@northpointvc.com",
            "type": "internal"
          },
          "mentions": [],
          "createdAt": "2023-01-01T00:00:00Z",
          "updatedAt": null,
          "interaction": {
            "id": 12345,
            "type": "meeting"
          }
        }
      },
      "user-reply-2": {
        "description": "Example response after creating a reply to an existing note.",
        "value": {
          "id": 2,
          "type": "user-reply",
          "content": {
            "html": "<p>Thanks for the update — looping in the AE.</p>"
          },
          "creator": {
            "id": 1,
            "firstName": "Jane",
            "lastName": "Smith",
            "primaryEmailAddress": "jane.smith@northpointvc.com",
            "type": "internal"
          },
          "mentions": [],
          "parent": {
            "id": 1
          },
          "createdAt": "2023-01-01T00:00:00Z",
          "updatedAt": null
        }
      },
      "ai-notetaker-2": {
        "description": "Example response for an AI Notetaker note.",
        "value": {
          "id": 1,
          "type": "ai-notetaker",
          "content": {
            "html": "<p> This is an AI Notetaker note! </p>"
          },
          "creator": {
            "id": 1,
            "firstName": "Jane",
            "lastName": "Smith",
            "primaryEmailAddress": "jane.smith@northpointvc.com",
            "type": "internal"
          },
          "transcriptId": 1,
          "mentions": [],
          "createdAt": "2023-01-01T00:00:00Z",
          "updatedAt": "2023-01-21T00:00:00Z"
        }
      },
      "ai-notetaker-reply": {
        "description": "Example response for an AI Notetaker note reply.",
        "value": {
          "id": 2,
          "type": "ai-notetaker-reply",
          "content": {
            "html": "<p> This is an AI Notetaker reply note! </p>"
          },
          "creator": {
            "id": 1,
            "firstName": "Jane",
            "lastName": "Smith",
            "primaryEmailAddress": "jane.smith@northpointvc.com",
            "type": "internal"
          },
          "mentions": [],
          "transcriptId": 1,
          "parent": {
            "id": 1
          },
          "createdAt": "2023-01-01T00:00:00Z",
          "updatedAt": "2023-01-21T00:00:00Z"
        }
      },
      "entities-4": {
        "description": "Example response for an entities note.",
        "value": {
          "id": 1,
          "type": "entities",
          "content": {
            "html": "<p> This is a note! <span data-type=\"note-mention\" data-note-mention-type=\"person\" data-note-mention-person-id=\"1\"> Michael Torres </span> was mentioned. </p>"
          },
          "creator": {
            "id": 1,
            "firstName": "Jane",
            "lastName": "Smith",
            "primaryEmailAddress": "jane.smith@northpointvc.com",
            "type": "internal"
          },
          "mentions": [
            {
              "id": 1,
              "type": "person",
              "person": {
                "id": 2,
                "firstName": "Michael",
                "lastName": "Torres",
                "primaryEmailAddress": "m.torres@northpointvc.com",
                "type": "internal"
              }
            }
          ],
          "createdAt": "2023-01-01T00:00:00Z",
          "updatedAt": "2023-01-21T00:00:00Z"
        }
      },
      "interaction-6": {
        "description": "Example response for an interaction note.",
        "value": {
          "id": 1,
          "type": "interaction",
          "content": {
            "html": "<p> This is a note! <span data-type=\"note-mention\" data-note-mention-type=\"person\" data-note-mention-person-id=\"1\"> Michael Torres </span> was mentioned. </p>"
          },
          "creator": {
            "id": 1,
            "firstName": "Jane",
            "lastName": "Smith",
            "primaryEmailAddress": "jane.smith@northpointvc.com",
            "type": "internal"
          },
          "mentions": [
            {
              "id": 1,
              "type": "person",
              "person": {
                "id": 2,
                "firstName": "Michael",
                "lastName": "Torres",
                "primaryEmailAddress": "m.torres@northpointvc.com",
                "type": "internal"
              }
            }
          ],
          "createdAt": "2023-01-01T00:00:00Z",
          "updatedAt": "2023-01-21T00:00:00Z",
          "interaction": {
            "id": 2,
            "type": "call"
          }
        }
      },
      "user-reply-3": {
        "description": "Example response for a user reply note.",
        "value": {
          "id": 2,
          "type": "user-reply",
          "content": {
            "html": "<p> This reply note was added manually by a user. <span data-type=\"note-mention\" data-note-mention-type=\"person\" data-note-mention-person-id=\"1\"> Michael Torres </span> was mentioned. </p>"
          },
          "creator": {
            "id": 1,
            "firstName": "Jane",
            "lastName": "Smith",
            "primaryEmailAddress": "jane.smith@northpointvc.com",
            "type": "internal"
          },
          "mentions": [
            {
              "id": 1,
              "type": "person",
              "person": {
                "id": 2,
                "firstName": "Michael",
                "lastName": "Torres",
                "primaryEmailAddress": "m.torres@northpointvc.com",
                "type": "internal"
              }
            }
          ],
          "parent": {
            "id": 1
          },
          "createdAt": "2023-01-01T00:00:00Z",
          "updatedAt": "2023-01-21T00:00:00Z"
        }
      },
      "content-only": {
        "summary": "Entities note — update just the content",
        "description": "Replace the body of an entities note. Entity associations are not included in the payload, so they are left unchanged.",
        "value": {
          "content": {
            "html": "<p>Updated recap: pricing approved, contract going out today.</p>"
          }
        }
      },
      "replace-associations": {
        "summary": "Entities note — replace entity associations",
        "description": "Replace an entities note's Person and Company associations with the supplied lists. `opportunities` is not included in the payload, so existing opportunity associations are left unchanged.",
        "value": {
          "persons": [
            {
              "id": 2
            },
            {
              "id": 3
            }
          ],
          "companies": [
            {
              "id": 10
            }
          ]
        }
      },
      "clear-associations": {
        "summary": "Interaction note — clear opportunity associations",
        "description": "Remove all opportunity associations from an interaction note while leaving Person and Company associations unchanged. An empty array means \"clear\"; omitting the field would mean \"leave unchanged\".",
        "value": {
          "opportunities": []
        }
      },
      "reply-content-only": {
        "summary": "Reply note — update the content",
        "description": "Replace the body of a reply note (`user-reply` or `ai-notetaker-reply`). Reply notes have no entity associations, so only `content` may be updated.",
        "value": {
          "content": {
            "html": "<p>Updated reply: confirmed with legal, we are clear to proceed.</p>"
          }
        }
      },
      "success-2": {
        "description": "Example response on fetching opportunities attached to a note.",
        "value": {
          "data": [
            {
              "id": 1,
              "name": "Opp Name",
              "listId": 1000,
              "listName": "Pipeline Q1 2024",
              "isRestricted": false,
              "isRedacted": false
            },
            {
              "id": 2,
              "name": "Another Opp Name",
              "listId": 1001,
              "listName": "Enterprise Deals",
              "isRestricted": false,
              "isRedacted": false
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/notes/1/attached-opportunities?cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/notes/1/attached-opportunities?cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "user-reply-4": {
        "value": {
          "data": [
            {
              "id": 2,
              "type": "user-reply",
              "content": {
                "html": "<p> This is a user reply note. <span data-type=\"note-mention\" data-note-mention-type=\"person\" data-note-mention-person-id=\"1\"> Michael Torres </span> was mentioned. </p>"
              },
              "creator": {
                "id": 1,
                "firstName": "Jane",
                "lastName": "Smith",
                "primaryEmailAddress": "jane.smith@northpointvc.com",
                "type": "internal"
              },
              "mentions": [
                {
                  "id": 1,
                  "type": "person",
                  "person": {
                    "id": 1,
                    "firstName": "Michael",
                    "lastName": "Torres",
                    "primaryEmailAddress": "m.torres@northpointvc.com",
                    "type": "internal"
                  }
                }
              ],
              "parent": {
                "id": 1
              },
              "createdAt": "2023-01-01T00:00:00Z",
              "updatedAt": "2023-02-01T00:00:00Z"
            },
            {
              "id": 3,
              "type": "user-reply",
              "content": {
                "html": "<p>This is another user reply note.</p>"
              },
              "creator": {
                "id": 2,
                "firstName": "Michael",
                "lastName": "Torres",
                "primaryEmailAddress": "m.torres@northpointvc.com",
                "type": "internal"
              },
              "mentions": [],
              "parent": {
                "id": 1
              },
              "createdAt": "2023-02-01T00:00:00Z",
              "updatedAt": "2023-03-01T00:00:00Z"
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/notes/1/replies?cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/notes/1/notes?cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "ai-notetaker-reply-2": {
        "value": {
          "data": [
            {
              "id": 2,
              "type": "ai-notetaker-reply",
              "content": {
                "html": "<p> This is an AI Notetaker reply note. <span data-type=\"note-mention\" data-note-mention-type=\"person\" data-note-mention-person-id=\"1\"> Michael Torres </span> was mentioned. </p>"
              },
              "creator": {
                "id": 1,
                "firstName": "Jane",
                "lastName": "Smith",
                "primaryEmailAddress": "jane.smith@northpointvc.com",
                "type": "internal"
              },
              "mentions": [
                {
                  "id": 1,
                  "type": "person",
                  "person": {
                    "id": 1,
                    "firstName": "Michael",
                    "lastName": "Torres",
                    "primaryEmailAddress": "m.torres@northpointvc.com",
                    "type": "internal"
                  }
                }
              ],
              "parent": {
                "id": 1
              },
              "transcriptId": 1,
              "createdAt": "2023-01-01T00:00:00Z",
              "updatedAt": "2023-02-01T00:00:00Z"
            },
            {
              "id": 3,
              "type": "ai-notetaker-reply",
              "content": {
                "html": "<p>This is another AI Notetaker reply note.</p>"
              },
              "creator": {
                "id": 1,
                "firstName": "Jane",
                "lastName": "Smith",
                "primaryEmailAddress": "jane.smith@northpointvc.com",
                "type": "internal"
              },
              "mentions": [],
              "parent": {
                "id": 1
              },
              "transcriptId": 2,
              "createdAt": "2023-02-01T00:00:00Z",
              "updatedAt": "2023-03-01T00:00:00Z"
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/notes/1/replies?cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/notes/1/notes?cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "entities-5": {
        "value": {
          "data": [
            {
              "id": 1,
              "type": "entities",
              "content": {
                "html": "<p>Met with the founding team to discuss the Series A term sheet.</p>"
              },
              "creator": {
                "id": 1,
                "firstName": "Jane",
                "lastName": "Smith",
                "primaryEmailAddress": "jane.smith@northpointvc.com",
                "type": "internal"
              },
              "mentions": [
                {
                  "id": 1,
                  "type": "person",
                  "person": {
                    "id": 1,
                    "firstName": "Jane",
                    "lastName": "Smith",
                    "primaryEmailAddress": "jane.smith@northpointvc.com",
                    "type": "internal"
                  }
                }
              ],
              "createdAt": "2023-01-01T00:00:00Z",
              "updatedAt": "2023-01-01T00:00:00Z"
            },
            {
              "id": 2,
              "type": "entities",
              "content": {
                "html": "<p>This is another note!</p>"
              },
              "creator": {
                "id": 1,
                "firstName": "Jane",
                "lastName": "Smith",
                "primaryEmailAddress": "jane.smith@northpointvc.com",
                "type": "internal"
              },
              "mentions": [],
              "createdAt": "2024-01-01T00:00:00Z",
              "updatedAt": "2024-01-01T00:00:00Z"
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/opportunities/1/notes?cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/opportunities/1/notes?cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "interaction-7": {
        "value": {
          "data": [
            {
              "id": 1,
              "type": "interaction",
              "content": {
                "html": "<p>Met with the founding team to discuss the Series A term sheet.</p>"
              },
              "creator": {
                "id": 1,
                "firstName": "Jane",
                "lastName": "Smith",
                "primaryEmailAddress": "jane.smith@northpointvc.com",
                "type": "internal"
              },
              "mentions": [
                {
                  "id": 1,
                  "type": "person",
                  "person": {
                    "id": 1,
                    "firstName": "Jane",
                    "lastName": "Smith",
                    "primaryEmailAddress": "jane.smith@northpointvc.com",
                    "type": "internal"
                  }
                }
              ],
              "createdAt": "2023-01-01T00:00:00Z",
              "updatedAt": "2023-01-01T00:00:00Z",
              "interaction": {
                "id": 2,
                "type": "call"
              }
            },
            {
              "id": 2,
              "type": "interaction",
              "content": {
                "html": "<p>This is another interaction note!</p>"
              },
              "creator": {
                "id": 1,
                "firstName": "Jane",
                "lastName": "Smith",
                "primaryEmailAddress": "jane.smith@northpointvc.com",
                "type": "internal"
              },
              "mentions": [],
              "createdAt": "2024-01-01T00:00:00Z",
              "updatedAt": "2024-01-01T00:00:00Z",
              "interaction": {
                "id": 3,
                "type": "meeting"
              }
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/opportunities/1/notes?cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/opportunities/1/notes?cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "ai-notetaker-3": {
        "value": {
          "data": [
            {
              "id": 1,
              "type": "ai-notetaker",
              "content": {
                "html": "<p>Met with the founding team to discuss the Series A term sheet.</p>"
              },
              "creator": {
                "id": 1,
                "firstName": "Jane",
                "lastName": "Smith",
                "primaryEmailAddress": "jane.smith@northpointvc.com",
                "type": "internal"
              },
              "mentions": [
                {
                  "id": 1,
                  "type": "person",
                  "person": {
                    "id": 1,
                    "firstName": "Jane",
                    "lastName": "Smith",
                    "primaryEmailAddress": "jane.smith@northpointvc.com",
                    "type": "internal"
                  }
                }
              ],
              "transcriptId": 1,
              "createdAt": "2023-01-01T00:00:00Z",
              "updatedAt": "2023-01-01T00:00:00Z"
            },
            {
              "id": 2,
              "type": "ai-notetaker",
              "content": {
                "html": "<p>This is another AI Notetaker note!</p>"
              },
              "creator": {
                "id": 1,
                "firstName": "Jane",
                "lastName": "Smith",
                "primaryEmailAddress": "jane.smith@northpointvc.com",
                "type": "internal"
              },
              "mentions": [],
              "transcriptId": 2,
              "createdAt": "2024-01-01T00:00:00Z",
              "updatedAt": "2024-01-01T00:00:00Z"
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/opportunities/1/notes?cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/opportunities/1/notes?cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "merges-list-2": {
        "summary": "Person merges",
        "description": "Example response showing multiple person merges with different statuses",
        "value": {
          "data": [
            {
              "id": 12,
              "status": "success",
              "taskId": "789e0123-e45b-67c8-d901-234567890123",
              "startedAt": "2025-06-03T10:30:00Z",
              "primaryPersonId": 12345,
              "duplicatePersonId": 67890,
              "completedAt": "2025-06-03T10:32:15Z",
              "errorMessage": null
            },
            {
              "id": 13,
              "status": "failed",
              "taskId": "456e7890-1234-5678-9012-345678901234",
              "startedAt": "2025-06-03T09:15:00Z",
              "primaryPersonId": 54321,
              "duplicatePersonId": 98765,
              "completedAt": "2025-06-03T09:16:30Z",
              "errorMessage": "Primary person not found"
            }
          ],
          "pagination": {
            "nextUrl": "https://api.affinity.co/v2/persons/merge?cursor=eyJpZCI6NDU2ZTc4OTAtZTEyYi0zNGM1LWQ2NzgtOTAxMjM0NTY3ODkwfQ==",
            "prevUrl": null
          }
        }
      },
      "merge-persons": {
        "summary": "Merge two person profiles",
        "description": "Example request to merge a duplicate person profile into a primary person profile. The primary person (ID 12345) will be kept and all data from the duplicate person (ID 67890) will be merged into it.",
        "value": {
          "primaryPersonId": 12345,
          "duplicatePersonId": 67890
        }
      },
      "merge-initiated-2": {
        "summary": "Merge task initiated",
        "description": "Response when a person merge task has been accepted for processing. The task ID can be used to track the progress of the merge task.",
        "value": {
          "taskUrl": "https://api.affinity.co/v2/tasks/person-merges/123e4567-e89b-12d3-a456-426614174000"
        }
      },
      "succeeded-merge-2": {
        "summary": "Succeeded person merge",
        "description": "Example of a successful person merge",
        "value": {
          "id": 12345,
          "status": "success",
          "taskId": "1b9684ad-e954-46d7-9684-ade95436d7dd",
          "startedAt": "2025-06-03T10:30:00Z",
          "primaryPersonId": 12345,
          "duplicatePersonId": 67890,
          "completedAt": "2025-06-03T10:32:15Z",
          "errorMessage": null
        }
      },
      "failed-merge-2": {
        "summary": "Failed person merge",
        "description": "Example of a failed person merge with error details",
        "value": {
          "id": 67890,
          "status": "failed",
          "taskId": "789e0123-e45b-67c8-d901-234567890123",
          "startedAt": "2025-06-03T09:15:00Z",
          "primaryPersonId": 54321,
          "duplicatePersonId": 98765,
          "completedAt": "2025-06-03T09:16:30Z",
          "errorMessage": "Primary person not found"
        }
      },
      "in-progress-merge-2": {
        "summary": "In-progress person merge",
        "description": "Example of a person merge currently being processed",
        "value": {
          "id": 98765,
          "status": "in-progress",
          "taskId": "456e7890-e12b-34c5-d678-901234567890",
          "startedAt": "2025-06-03T11:45:00Z",
          "primaryPersonId": 24680,
          "duplicatePersonId": 13579,
          "completedAt": null,
          "errorMessage": null
        }
      },
      "default-2": {
        "description": "Example response for GET /v2/persons/fields.",
        "value": {
          "data": [
            {
              "id": "affinity-data-current-job-title",
              "name": "Current Job Title",
              "type": "enriched",
              "valueType": "filterable-text",
              "enrichmentSource": "affinity-data",
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "affinity-data-industry",
              "name": "Industry",
              "type": "enriched",
              "valueType": "filterable-text-multi",
              "enrichmentSource": "affinity-data",
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "affinity-data-location",
              "name": "Location",
              "type": "enriched",
              "valueType": "location",
              "enrichmentSource": "affinity-data",
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "field-1",
              "name": "Custom global field",
              "type": "global",
              "valueType": "text",
              "enrichmentSource": null,
              "createdAt": "2024-03-07T20:21:42Z"
            },
            {
              "id": "last-email",
              "name": "Last Email",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null
            },
            {
              "id": "source-of-introduction",
              "name": "Source of Introduction",
              "type": "relationship-intelligence",
              "valueType": "person",
              "enrichmentSource": null,
              "createdAt": "2024-03-07T20:21:42Z"
            }
          ],
          "pagination": {
            "prevUrl": null,
            "nextUrl": "https://api.affinity.co/v2/persons/fields?cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "filterability-sortability-2": {
        "description": "Example response for GET /v2/persons/fields when `includes=filterability&includes=sortability` is requested. `filterability` and `sortability` are `null` for fields that are not filterable or sortable.",
        "value": {
          "data": [
            {
              "id": "affinity-data-current-job-title",
              "name": "Current Job Title",
              "type": "enriched",
              "valueType": "filterable-text",
              "enrichmentSource": "affinity-data",
              "createdAt": "2024-03-07T20:21:42Z",
              "filterability": {
                "filterableFieldType": "field-only",
                "operators": [
                  {
                    "id": "is-none-of",
                    "name": "Is none of",
                    "numberOfValuesRequired": "multi"
                  },
                  {
                    "id": "is-any-of",
                    "name": "Is any of",
                    "numberOfValuesRequired": "multi"
                  },
                  {
                    "id": "is-not-empty",
                    "name": "Is not empty",
                    "numberOfValuesRequired": "none"
                  },
                  {
                    "id": "is-empty",
                    "name": "Is empty",
                    "numberOfValuesRequired": "none"
                  }
                ]
              },
              "sortability": {
                "sortableFieldType": "field-only"
              }
            },
            {
              "id": "last-email",
              "name": "Last Email",
              "type": "relationship-intelligence",
              "valueType": "interaction",
              "enrichmentSource": null,
              "createdAt": null,
              "filterability": {
                "filterableFieldType": "attribute-on-field",
                "attributes": [
                  {
                    "id": "date-of-activity",
                    "name": "Date of Activity",
                    "valueType": "date",
                    "operators": [
                      {
                        "id": "is-not-within-the-next",
                        "name": "Is not within the next",
                        "numberOfValuesRequired": "one",
                        "relativeDateUnits": [
                          "day",
                          "week",
                          "month",
                          "quarter",
                          "year"
                        ]
                      },
                      {
                        "id": "is-within-the-next",
                        "name": "Is within the next",
                        "numberOfValuesRequired": "one",
                        "relativeDateUnits": [
                          "day",
                          "week",
                          "month",
                          "quarter",
                          "year"
                        ]
                      },
                      {
                        "id": "is-not-within-the-last",
                        "name": "Is not within the last",
                        "numberOfValuesRequired": "one",
                        "relativeDateUnits": [
                          "day",
                          "week",
                          "month",
                          "quarter",
                          "year"
                        ]
                      },
                      {
                        "id": "is-within-the-last",
                        "name": "Is within the last",
                        "numberOfValuesRequired": "one",
                        "relativeDateUnits": [
                          "day",
                          "week",
                          "month",
                          "quarter",
                          "year"
                        ]
                      },
                      {
                        "id": "is-between",
                        "name": "Is between",
                        "numberOfValuesRequired": "two"
                      },
                      {
                        "id": "is-after",
                        "name": "Is after",
                        "numberOfValuesRequired": "one"
                      },
                      {
                        "id": "is-before",
                        "name": "Is before",
                        "numberOfValuesRequired": "one"
                      },
                      {
                        "id": "is-on",
                        "name": "Is on",
                        "numberOfValuesRequired": "one"
                      },
                      {
                        "id": "is-not-on",
                        "name": "Is not on",
                        "numberOfValuesRequired": "one"
                      },
                      {
                        "id": "is-not-empty",
                        "name": "Is not empty",
                        "numberOfValuesRequired": "none"
                      },
                      {
                        "id": "is-empty",
                        "name": "Is empty",
                        "numberOfValuesRequired": "none"
                      }
                    ]
                  }
                ]
              },
              "sortability": {
                "sortableFieldType": "attribute-on-field",
                "attributes": [
                  {
                    "id": "date-of-activity",
                    "name": "Date of Activity",
                    "valueType": "date"
                  }
                ]
              }
            }
          ],
          "pagination": {
            "prevUrl": null,
            "nextUrl": null
          }
        }
      },
      "dropdown-options-2": {
        "description": "Example response for dropdown options on a dropdown field.",
        "value": {
          "data": [
            {
              "type": "dropdown",
              "id": 1,
              "text": "Director"
            },
            {
              "type": "dropdown",
              "id": 2,
              "text": "VP"
            },
            {
              "type": "dropdown",
              "id": 3,
              "text": "C-Level"
            }
          ],
          "pagination": {
            "prevUrl": null,
            "nextUrl": null
          }
        }
      },
      "dropdown-options-ranked-2": {
        "description": "Example response for dropdown options on a ranked dropdown field.",
        "value": {
          "data": [
            {
              "type": "ranked-dropdown",
              "id": 1,
              "text": "Hot",
              "rank": 0,
              "color": "red"
            },
            {
              "type": "ranked-dropdown",
              "id": 2,
              "text": "Warm",
              "rank": 1,
              "color": "orange"
            },
            {
              "type": "ranked-dropdown",
              "id": 3,
              "text": "Cold",
              "rank": 2,
              "color": "blue"
            }
          ],
          "pagination": {
            "prevUrl": null,
            "nextUrl": null
          }
        }
      },
      "filter-by-dropdown-3": {
        "summary": "Filter by a dropdown field value",
        "description": "Filter persons where a dropdown field matches specific options. Use `GET /v2/persons/fields` to discover field IDs, valueTypes, and dropdown option IDs.",
        "value": {
          "filters": {
            "operator": "and",
            "filters": [
              {
                "fieldId": "field-4574182",
                "valueType": "dropdown",
                "operator": "is-any-of",
                "value": [
                  {
                    "dropdownOptionId": 1
                  },
                  {
                    "dropdownOptionId": 2
                  }
                ]
              }
            ]
          }
        }
      },
      "filter-and-sort-3": {
        "summary": "Filter by last email date and sort",
        "description": "Filter persons to those with a last email within the past 30 days, sorted by when they were last contacted. The `attributeId` is required for interaction fields like `last-email` — use `GET /v2/persons/fields` to confirm which fields require an `attributeId`.",
        "value": {
          "filters": {
            "operator": "and",
            "filters": [
              {
                "fieldId": "last-email",
                "attributeId": "date-of-activity",
                "valueType": "date",
                "operator": "is-within-the-last",
                "value": {
                  "amount": [
                    30
                  ],
                  "unit": "day"
                }
              }
            ]
          },
          "sorts": [
            {
              "fieldId": "last-contact",
              "attributeId": "date-of-activity",
              "direction": "desc"
            }
          ]
        }
      },
      "grouped-filter-3": {
        "summary": "Nested AND/OR filter group",
        "description": "Filter persons matching a dropdown value AND (a last-email condition OR an is-empty condition). Filter groups can be nested to arbitrary depth to build complex boolean logic.",
        "value": {
          "filters": {
            "operator": "and",
            "filters": [
              {
                "fieldId": "field-4574182",
                "valueType": "dropdown",
                "operator": "is-any-of",
                "value": [
                  {
                    "dropdownOptionId": 1
                  }
                ]
              },
              {
                "operator": "or",
                "filters": [
                  {
                    "fieldId": "last-email",
                    "attributeId": "date-of-activity",
                    "valueType": "date",
                    "operator": "is-within-the-last",
                    "value": {
                      "amount": [
                        90
                      ],
                      "unit": "day"
                    }
                  },
                  {
                    "fieldId": "last-email",
                    "attributeId": "date-of-activity",
                    "valueType": "date",
                    "operator": "is-empty"
                  }
                ]
              }
            ]
          }
        }
      },
      "search-with-filter-3": {
        "summary": "Keyword search combined with a filter",
        "description": "Search for persons matching the keyword \"Jane\" AND where a dropdown field is not empty. Results must satisfy both the search term and the filter conditions (intersection).",
        "value": {
          "search": {
            "term": "Jane"
          },
          "filters": {
            "operator": "and",
            "filters": [
              {
                "fieldId": "field-4574182",
                "valueType": "dropdown",
                "operator": "is-not-empty"
              }
            ]
          }
        }
      },
      "person-enriched": {
        "description": "Example response on a Person using `types=enriched`.",
        "value": {
          "data": [
            {
              "id": "affinity-data-location",
              "name": "Location",
              "type": "enriched",
              "enrichmentSource": "affinity-data",
              "value": {
                "type": "location",
                "data": {
                  "streetAddress": null,
                  "city": "San Francisco",
                  "state": "California",
                  "country": "United States",
                  "continent": "North America"
                }
              }
            },
            {
              "id": "affinity-data-linkedin-url",
              "name": "LinkedIn URL",
              "type": "enriched",
              "enrichmentSource": "affinity-data",
              "value": {
                "type": "text",
                "data": "https://linkedin.com/in/alex-rivera"
              }
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/persons/1/fields?types=enriched&cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/persons/1/fields?types=enriched&cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "person-relationship-intelligence": {
        "description": "Example response on a Person using `types=relationship-intelligence`.",
        "value": {
          "data": [
            {
              "id": "first-email",
              "type": "relationship-intelligence",
              "enrichmentSource": null,
              "name": "First Email",
              "value": {
                "type": "interaction",
                "data": {
                  "id": 1,
                  "type": "email",
                  "subject": "Defective Products",
                  "sentAt": "2020-01-01T00:00:00Z",
                  "from": {
                    "emailAddress": "alex.rivera@horizontech.com",
                    "person": {
                      "id": 1,
                      "firstName": "Alex",
                      "lastName": "Rivera",
                      "primaryEmailAddress": "alex.rivera@horizontech.com",
                      "type": "internal"
                    }
                  },
                  "to": [
                    {
                      "emailAddress": "jordan.lee@crestwoodcap.com",
                      "person": {
                        "id": 2,
                        "firstName": "Jordan",
                        "lastName": "Lee",
                        "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                        "type": "external"
                      }
                    }
                  ],
                  "cc": []
                }
              }
            },
            {
              "id": "last-email",
              "type": "relationship-intelligence",
              "enrichmentSource": null,
              "name": "Last Email",
              "value": {
                "type": "interaction",
                "data": {
                  "id": 2,
                  "type": "email",
                  "subject": "re: re: re: Defective Products",
                  "sentAt": "2020-02-01T00:00:00Z",
                  "from": {
                    "emailAddress": "alex.rivera@horizontech.com",
                    "person": {
                      "id": 1,
                      "firstName": "Alex",
                      "lastName": "Rivera",
                      "primaryEmailAddress": "alex.rivera@horizontech.com",
                      "type": "internal"
                    }
                  },
                  "to": [
                    {
                      "emailAddress": "jordan.lee@crestwoodcap.com",
                      "person": {
                        "id": 2,
                        "firstName": "Jordan",
                        "lastName": "Lee",
                        "primaryEmailAddress": "jordan.lee@crestwoodcap.com",
                        "type": "external"
                      }
                    }
                  ],
                  "cc": []
                }
              }
            },
            {
              "id": "source-of-introduction",
              "type": "relationship-intelligence",
              "enrichmentSource": null,
              "name": "Source of Introduction",
              "value": {
                "type": "person",
                "data": {
                  "id": 3,
                  "firstName": "Taylor",
                  "lastName": "Wong",
                  "primaryEmailAddress": "taylor.wong@northpointvc.com",
                  "type": "internal"
                }
              }
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/persons/1/fields?types=relationship-intelligence&cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/persons/1/fields?types=relationship-intelligence&cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "person-global": {
        "description": "Example response on a Person using `types=global`.",
        "value": {
          "data": [
            {
              "id": "field-1",
              "type": "global",
              "enrichmentSource": null,
              "name": "Global Number Field",
              "value": {
                "type": "number",
                "data": 100
              }
            },
            {
              "id": "field-2",
              "type": "global",
              "enrichmentSource": null,
              "name": "Global Text Field",
              "value": {
                "type": "text",
                "data": "Some global text value"
              }
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/persons/1/fields?types=global&cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/persons/1/fields?types=global&cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "entities-6": {
        "value": {
          "data": [
            {
              "id": 1,
              "type": "entities",
              "content": {
                "html": "<p>Met with the founding team to discuss the Series A term sheet.</p>"
              },
              "creator": {
                "id": 1,
                "firstName": "Jane",
                "lastName": "Smith",
                "primaryEmailAddress": "jane.smith@northpointvc.com",
                "type": "internal"
              },
              "mentions": [
                {
                  "id": 1,
                  "type": "person",
                  "person": {
                    "id": 1,
                    "firstName": "Jane",
                    "lastName": "Smith",
                    "primaryEmailAddress": "jane.smith@northpointvc.com",
                    "type": "internal"
                  }
                }
              ],
              "createdAt": "2023-01-01T00:00:00Z",
              "updatedAt": "2023-01-01T00:00:00Z"
            },
            {
              "id": 2,
              "type": "entities",
              "content": {
                "html": "<p>This is another note!</p>"
              },
              "creator": {
                "id": 1,
                "firstName": "Jane",
                "lastName": "Smith",
                "primaryEmailAddress": "jane.smith@northpointvc.com",
                "type": "internal"
              },
              "mentions": [],
              "createdAt": "2024-01-01T00:00:00Z",
              "updatedAt": "2024-01-01T00:00:00Z"
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/persons/1/notes?cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/persons/1/notes?cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "interaction-8": {
        "value": {
          "data": [
            {
              "id": 1,
              "type": "interaction",
              "content": {
                "html": "<p>Met with the founding team to discuss the Series A term sheet.</p>"
              },
              "creator": {
                "id": 1,
                "firstName": "Jane",
                "lastName": "Smith",
                "primaryEmailAddress": "jane.smith@northpointvc.com",
                "type": "internal"
              },
              "mentions": [
                {
                  "id": 1,
                  "type": "person",
                  "person": {
                    "id": 1,
                    "firstName": "Jane",
                    "lastName": "Smith",
                    "primaryEmailAddress": "jane.smith@northpointvc.com",
                    "type": "internal"
                  }
                }
              ],
              "createdAt": "2023-01-01T00:00:00Z",
              "updatedAt": "2023-01-01T00:00:00Z",
              "interaction": {
                "id": 2,
                "type": "call"
              }
            },
            {
              "id": 2,
              "type": "interaction",
              "content": {
                "html": "<p>This is another interaction note!</p>"
              },
              "creator": {
                "id": 1,
                "firstName": "Jane",
                "lastName": "Smith",
                "primaryEmailAddress": "jane.smith@northpointvc.com",
                "type": "internal"
              },
              "mentions": [],
              "createdAt": "2024-01-01T00:00:00Z",
              "updatedAt": "2024-01-01T00:00:00Z",
              "interaction": {
                "id": 3,
                "type": "meeting"
              }
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/persons/1/notes?cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/persons/1/notes?cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "ai-notetaker-4": {
        "value": {
          "data": [
            {
              "id": 1,
              "type": "ai-notetaker",
              "content": {
                "html": "<p>Met with the founding team to discuss the Series A term sheet.</p>"
              },
              "creator": {
                "id": 1,
                "firstName": "Jane",
                "lastName": "Smith",
                "primaryEmailAddress": "jane.smith@northpointvc.com",
                "type": "internal"
              },
              "mentions": [
                {
                  "id": 1,
                  "type": "person",
                  "person": {
                    "id": 1,
                    "firstName": "Jane",
                    "lastName": "Smith",
                    "primaryEmailAddress": "jane.smith@northpointvc.com",
                    "type": "internal"
                  }
                }
              ],
              "transcriptId": 1,
              "createdAt": "2023-01-01T00:00:00Z",
              "updatedAt": "2023-01-01T00:00:00Z"
            },
            {
              "id": 2,
              "type": "ai-notetaker",
              "content": {
                "html": "<p>This is another AI Notetaker note!</p>"
              },
              "creator": {
                "id": 1,
                "firstName": "Jane",
                "lastName": "Smith",
                "primaryEmailAddress": "jane.smith@northpointvc.com",
                "type": "internal"
              },
              "mentions": [],
              "transcriptId": 2,
              "createdAt": "2024-01-01T00:00:00Z",
              "updatedAt": "2024-01-01T00:00:00Z"
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/persons/1/notes?cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/persons/1/notes?cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "relationships-2": {
        "value": {
          "data": [
            {
              "person1": {
                "id": 1,
                "firstName": "Jane",
                "lastName": "Smith",
                "primaryEmailAddress": "jane.smith@northpointvc.com"
              },
              "person2": {
                "id": 100,
                "firstName": "John",
                "lastName": "Doe",
                "primaryEmailAddress": "john.doe@acme.co"
              },
              "interactionScore": 0.85,
              "linkedIn": null
            },
            {
              "person1": {
                "id": 1,
                "firstName": "Jane",
                "lastName": "Smith",
                "primaryEmailAddress": "jane.smith@northpointvc.com"
              },
              "person2": {
                "id": 101,
                "firstName": "Alex",
                "lastName": "Kim",
                "primaryEmailAddress": "alex.kim@acme.co"
              },
              "interactionScore": 0.72,
              "linkedIn": {
                "connectedOn": "2022-06-15"
              }
            },
            {
              "person1": {
                "id": 1,
                "firstName": "Jane",
                "lastName": "Smith",
                "primaryEmailAddress": "jane.smith@northpointvc.com"
              },
              "person2": {
                "id": 102,
                "firstName": "Robin",
                "lastName": "Hill",
                "primaryEmailAddress": null
              },
              "interactionScore": 0.45,
              "linkedIn": null
            }
          ],
          "pagination": {
            "prevUrl": null,
            "nextUrl": "https://api.affinity.co/v2/persons/1/relationships?cursor=ICAgICAgIGFmdGVyOjo6Mw"
          }
        }
      },
      "tasks-list": {
        "summary": "List of company merge tasks",
        "description": "Example response showing multiple company merge tasks with different statuses",
        "value": {
          "data": [
            {
              "id": "123e4567-e89b-12d3-a456-426614174000",
              "status": "success",
              "resultsSummary": {
                "total": 1,
                "inProgress": 0,
                "success": 1,
                "failed": 0
              }
            },
            {
              "id": "456e7890-e12b-34c5-d678-901234567890",
              "status": "failed",
              "resultsSummary": {
                "total": 1,
                "inProgress": 0,
                "success": 0,
                "failed": 1
              }
            }
          ],
          "pagination": {
            "nextUrl": "https://api.affinity.co/v2/tasks/company-merges?cursor=eyJpZCI6NDU2ZTc4OTAtZTEyYi0zNGM1LWQ2NzgtOTAxMjM0NTY3ODkwfQ==",
            "prevUrl": null
          }
        }
      },
      "task-in-progress": {
        "summary": "Merge task in progress",
        "description": "Example response showing a merge task that is currently being processed.",
        "value": {
          "id": "456e7890-e12b-34c5-d678-901234567890",
          "status": "in-progress",
          "resultsSummary": {
            "total": 1,
            "inProgress": 1,
            "success": 0,
            "failed": 0
          }
        }
      },
      "task-success": {
        "summary": "Merge task succeeded",
        "description": "Example response showing a merge task that has been successfully completed.",
        "value": {
          "id": "d8ff68ec-33d9-4d70-bf68-ec33d93d7092",
          "status": "success",
          "resultsSummary": {
            "total": 1,
            "inProgress": 0,
            "success": 1,
            "failed": 0
          }
        }
      },
      "task-failed": {
        "summary": "Merge task failed",
        "description": "Example response showing a merge task that failed during processing.",
        "value": {
          "id": "012e3456-a78b-90c1-d234-567890123456",
          "status": "failed",
          "resultsSummary": {
            "total": 1,
            "inProgress": 0,
            "success": 0,
            "failed": 1
          }
        }
      },
      "tasks-list-2": {
        "summary": "Person merge tasks",
        "description": "Example response showing multiple person merge tasks with different statuses",
        "value": {
          "data": [
            {
              "id": "123e4567-e89b-12d3-a456-426614174000",
              "status": "success",
              "resultsSummary": {
                "total": 1,
                "inProgress": 0,
                "success": 1,
                "failed": 0
              }
            },
            {
              "id": "456e7890-e12b-34c5-d678-901234567890",
              "status": "failed",
              "resultsSummary": {
                "total": 1,
                "inProgress": 0,
                "success": 0,
                "failed": 1
              }
            }
          ],
          "pagination": {
            "nextUrl": "https://api.affinity.co/v2/tasks/person-merges?cursor=eyJpZCI6NDU2ZTc4OTAtZTEyYi0zNGM1LWQ2NzgtOTAxMjM0NTY3ODkwfQ==",
            "prevUrl": null
          }
        }
      },
      "task-success-2": {
        "summary": "Merge task succeeded",
        "description": "Example response showing a merge task that has been successfully completed.",
        "value": {
          "id": "76b45575-c17a-4b73-b455-75c17a9b737c",
          "status": "success",
          "resultsSummary": {
            "total": 1,
            "inProgress": 0,
            "success": 1,
            "failed": 0
          }
        }
      },
      "success-3": {
        "description": "Example response for transcripts.",
        "value": {
          "data": [
            {
              "id": 1,
              "note": {
                "id": 742,
                "type": "ai-notetaker",
                "content": {
                  "html": "<p> Sarah reviews the company's ARR growth trajectory with Alex. The team discusses expansion revenue drivers and the path to Series B. </p>"
                },
                "creator": {
                  "id": 8,
                  "firstName": "Sarah",
                  "lastName": "Park",
                  "primaryEmailAddress": "sarah.park@horizontech.com",
                  "type": "internal"
                },
                "mentions": [],
                "transcriptId": 1,
                "createdAt": "2023-01-01T00:00:20Z",
                "updatedAt": "2023-01-21T00:01:00Z"
              },
              "languageCode": "en",
              "createdAt": "2023-01-01T00:00:23Z"
            },
            {
              "id": 2,
              "note": {
                "id": 844,
                "type": "ai-notetaker",
                "content": {
                  "html": "<p> Daniel and the founder discuss due diligence findings from the technical review. The team aligns on next steps before the term sheet is finalized. </p>"
                },
                "creator": {
                  "id": 10,
                  "firstName": "Daniel",
                  "lastName": "Kim",
                  "primaryEmailAddress": "d.kim@northpointvc.com",
                  "type": "internal"
                },
                "mentions": [],
                "transcriptId": 2,
                "createdAt": "2023-02-01T00:00:00Z",
                "updatedAt": "2023-02-21T00:00:00Z"
              },
              "languageCode": "en",
              "createdAt": "2023-02-01T00:00:35Z"
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/transcripts?cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/transcripts?cursor=ICAgICAgIGFmdGVyOjo6NA"
          }
        }
      },
      "success-4": {
        "description": "Example response for a transcript.",
        "value": {
          "id": 1,
          "fragmentsPreview": {
            "data": [
              {
                "content": "Can you walk us through your ARR growth over the past two quarters?",
                "speaker": "Sarah Park",
                "startTimestamp": "00:00:01",
                "endTimestamp": "00:00:05"
              },
              {
                "content": "We went from 1.2 million to 2.5 million ARR — roughly 110% growth.",
                "speaker": "Alex Rivera",
                "startTimestamp": "00:00:06",
                "endTimestamp": "00:00:11"
              },
              {
                "content": "That's impressive. What's primarily driving the expansion?",
                "speaker": "Sarah Park",
                "startTimestamp": "00:00:12",
                "endTimestamp": "00:00:15"
              },
              {
                "content": "Mostly upsells from existing accounts. Our net revenue retention is at 135%.",
                "speaker": "Alex Rivera",
                "startTimestamp": "00:00:16",
                "endTimestamp": "00:00:21"
              }
            ],
            "totalCount": 4
          },
          "note": {
            "id": 742,
            "type": "ai-notetaker",
            "content": {
              "html": "<p> Sarah reviews the company's ARR growth trajectory with Alex. The team discusses expansion revenue drivers and the path to Series B. </p>"
            },
            "transcriptId": 1,
            "creator": {
              "id": 8,
              "firstName": "Sarah",
              "lastName": "Park",
              "primaryEmailAddress": "sarah.park@horizontech.com",
              "type": "internal"
            },
            "mentions": [],
            "createdAt": "2023-01-01T00:00:20Z",
            "updatedAt": "2023-01-21T00:01:00Z"
          },
          "languageCode": "en",
          "createdAt": "2023-01-01T00:00:00Z"
        }
      },
      "success-5": {
        "description": "Example response for a paginated fragments response given a transcript id.",
        "value": {
          "data": [
            {
              "content": "Can you walk us through your ARR growth over the past two quarters?",
              "speaker": "Sarah Park",
              "startTimestamp": "00:00:01",
              "endTimestamp": "00:00:05"
            },
            {
              "content": "We went from 1.2 million to 2.5 million ARR — roughly 110% growth.",
              "speaker": "Alex Rivera",
              "startTimestamp": "00:00:06",
              "endTimestamp": "00:00:11"
            },
            {
              "content": "That's impressive. What's primarily driving the expansion?",
              "speaker": "Sarah Park",
              "startTimestamp": "00:00:12",
              "endTimestamp": "00:00:15"
            },
            {
              "content": "Mostly upsells from existing accounts. Our net revenue retention is at 135%.",
              "speaker": "Alex Rivera",
              "startTimestamp": "00:00:16",
              "endTimestamp": "00:00:21"
            }
          ],
          "pagination": {
            "prevUrl": "https://api.affinity.co/v2/transcripts/1/fragments?cursor=ICAgICAgYmVmb3JlOjo6Nw",
            "nextUrl": "https://api.affinity.co/v2/transcripts/1/fragments?cursor=ICAgICAgIGFmdGVyOjo6NA",
            "totalCount": 4
          }
        }
      }
    }
  }
}