openapi: 3.0.3 info: version: '' x-affinity-api-version: '2024-01-01' 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 [here](https://api-docs.affinity.co/).\ \ The v2 API is not at\nfeature parity with v1 - we are continuing to develop\ \ new v2 APIs to support all v1 functionality\nover 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)\n\ or 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** (this is an important difference from\nAffinity\ \ API v1's use of basic authentication).\n\nTo generate an API key, navigate to\ \ the Settings page in the Affinity web app. You will need the\n\"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)\n\ for full instructions on API key generation, and\n[this article](https://support.affinity.co/hc/en-us/articles/360015976732-Account-Level-Permissions)\n\ for 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\nWe support one API key per user in your Affinity account. Your API key\ \ is able to read data and\nperform actions in Affinity on your behalf, so keep\ \ it safe as you would a password.\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)\n\ for 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\n\ also 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\n\ are 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\"`
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”
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”
!(content = ”hello world”)\ \
!(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## 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 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[here](https://support.affinity.co/hc/en-us/articles/115001608232-How-to-create-a-new-column-in-a-list).\n\ Here 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\n\ array).\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\n\ relationship 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).\n\ Due 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\n\ also 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# User Guides\n\n## A Tour of Our GET Endpoints\n\n| Desired Data\ \ | Relevant Endpoints \ \ \ \ \ \ \ \ \ \ | Notes \ \ |\n| -----------------------------------------------------------\ \ | -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\ \ | -----------------------------------------------------------------------------------------\ \ |\n| Company/Person/Opportunity rows from a List | Grab the\ \ List’s ID from its URL in the Affinity web app, then hit GET `/v2/lists/{listId}/list-entries`\ \ \ \ \ \ \ \ | Data returned will be restricted to the rows on the requested List\ \ |\n| Company/Person/Opportunity rows from a Saved View\ \ | In the Affinity web app, navigate to a List and [create a Saved\ \ View](https://support.affinity.co/hc/en-us/articles/115001508572-How-to-leverage-saved-views-within-a-list)\ \ with the desired field data and filters on it. Grab the List and Saved View\ \ IDs from the web app URL, then hit GET `/v2/lists/{listId}/saved-views/{viewId}/list-entries`\ \ | Data returned will be restricted to the rows and columns on the requested\ \ Saved View |\n| Full rolodex of Companies or Persons in Affinity \ \ | GET `/v2/companies`, GET `/v2/persons` \ \ \ \ \ \ \ \ | Data from list-specific Fields\ \ will not be returned |\n| All the rows\ \ for a given Company or Person across all Lists | GET `/v2/companies/{id}/list-entries`,\ \ GET `/v2/persons/{id}/list-entries` \ \ \ \ \ \ |\ \ \ \ |\n| Metadata on Fields, including Field IDs \ \ | GET `/v2/companies/fields`, GET `/v2/persons/fields`, GET `/v2/lists/{listId}/fields`\ \ \ \ \ \ \ \ | Metadata on list-specific Fields will only be\ \ returned by GET `/v2/lists/{listId}/fields` |\n| Metadata on Lists or Saved\ \ Views | GET `/v2/lists`, GET `/v2/lists/{listId}/saved-views`\ \ \ \ \ \ \ \ | \ \ \ \ |\n| Opportunity data | GET `/v2/opportunities`\ \ will only return Opportunity names and List IDs. For comprehensive Opportunity\ \ data, hit GET `/v2/lists/{listId}/list-entries` for an Opportunity List \ \ \ \ \ \ | \ \ |\n\nTip: The ID for a List, Saved View, Person,\ \ Company, or Opportunity can always be found in its\nAffinity web app URL.\n\n\ # Changelog\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)](#section/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](#section/Data-Model/Working-with-Field-Data)\ \ section\n of 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://s3.us-west-2.amazonaws.com/assets.affinity.co/img/logos/full-color-svg.svg altText: Affinity logo servers: - url: https://api.affinity.co security: - bearerAuth: [] tags: - description: Operations about auths name: auth - description: Operations about companies name: companies - description: Operations about company merges name: companyMerges x-stability-level: beta - description: Operations about emails name: emails x-stability-level: beta - description: Operations about lists name: lists - description: Operations about meetings name: meetings x-stability-level: beta - description: Operations about notes name: notes x-stability-level: beta - description: Operations about opportunities name: opportunities - description: Operations about person merges name: personMerges x-stability-level: beta - description: Operations about persons name: persons paths: /v2/auth/whoami: get: description: 'Returns information about the authenticated user, their current organization, and API key permissions. Use 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' 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/companies: get: description: 'Paginate through Companies in Affinity. Returns basic information and non-list-specific field data on each Company. To retrieve field data, you must use either the `fieldIds` or the `fieldTypes` parameter to specify the Fields for which you want data returned. These Field IDs and Types can be found using the GET `/v2/companies/fields` endpoint. When no `fieldIds` or `fieldTypes` are provided, Companies will be returned without any field data attached. To supply multiple `fieldIds` or `fieldTypes` parameters, generate a query string that looks like this: `?fieldIds=field-1234&fieldIds=affinity-data-location` or `?fieldTypes=enriched&fieldTypes=global`. Requires the "Export All Organizations directory" [permission](#section/Getting-Started/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: 9223372036854776000 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/{companyId}: get: description: 'Returns basic information and non-list-specific field data on the requested Company. To retrieve field data, you must use either the `fieldIds` or the `fieldTypes` parameter to specify the Fields for which you want data returned. These Field IDs and Types can be found using the GET `/v2/companies/fields` endpoint. When no `fieldIds` or `fieldTypes` are provided, Companies will be returned without any field data attached. To supply multiple `fieldIds` or `fieldTypes` parameters, generate a query string that looks like this: `?fieldIds=field-1234&fieldIds=affinity-data-location` or `?fieldTypes=enriched&fieldTypes=global`. Requires the "Export All Organizations directory" [permission](#section/Getting-Started/Permissions).' 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: 9223372036854776000 - 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/fields: get: description: 'Returns metadata on non-list-specific Company Fields. Use the returned Field IDs to request field data from the GET `/v2/companies` and GET `/v2/companies/{id}` endpoints.' 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 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/FieldMetadataPaged' 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/{companyId}/lists: get: description: 'Paginate through all Lists where the given Company appears as an entry and that you have access to view. Returns 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: 9223372036854776000 - 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}/list-entries: get: description: 'Paginate through the List Entries (AKA rows) for the given Company across all Lists. Each List Entry includes field data for the Company, including list-specific field data. Each List Entry also includes metadata about its creation, i.e., when it was added to the List and by whom. Requires the "Export data from Lists" [permission](#section/Getting-Started/Permissions).' 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: 9223372036854776000 - 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}/notes: get: x-stability-level: beta description: '| ⚠️ This endpoint is currently in BETA | |--| Returns relevant notes for a given company which includes directly attached notes and notes attached to persons on this company. You can filter notes using the `filter` query parameter. The filter parameter is a string that you can specify conditions based on the following properties. | **Property Name** | **Description** | **Type** | **Allowed Operators** | **Examples** | |-----------------------------|-----------------------------------------------------------------|------------|--------------------------------------|---------------------------------| | `creator.id` | Filter notes by the creator of the note | `int32` | `=` | `creator.id=1` | | `createdAt` | Filter notes by when it was created | `datetime` | `>`, `<`, `>=`, `<=` | `createdAt<2025-02-04T10:48:24Z` | | `updatedAt` | Filter notes by when it was updated | `datetime` | `>`, `<`, `>=`, `<=` | `updatedAt>=2025-02-03T10:48:24Z`| ' 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: 9223372036854776000 - 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/company-merges: get: x-stability-level: beta description: '| ⚠️ This endpoint is currently in BETA | |--| Retrieve paginated company merges for the organization. Returns all company merges initiated by users in your organization, including their current status, 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: | Property | Type | Operators | Values | Examples | |----------|------|-----------|--------|----------| | `status` | `enum` | `=` | `in-progress`, `success`, `failed` | `status=failed` | | `taskId` | `string` | `=` | | `taskId=789e0123-e45b-67c8-d901-234567890123` | Company merges are returned in reverse chronological order (most recent first). Requires the "Manage duplicates" [permission](#section/Getting-Started/Permissions) and organization admin role. ' summary: Get All Company Merges operationId: v2_company-merges__GET tags: - companyMerges 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-stability-level: beta description: '| ⚠️ This endpoint is currently in BETA | |--| Initiate a company merge to combine a duplicate company profile into a primary company profile. This 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](#tag/companyMerges/operation/v2_tasks_company-merges_taskId__GET). Requires the "Manage duplicates" [permission](#section/Getting-Started/Permissions) and organization admin role.' summary: Initiate Company Merge operationId: v2_company-merges__POST tags: - companyMerges 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-stability-level: beta description: '| ⚠️ This endpoint is currently in BETA | |--| Retrieve the status and details of a specific company merge. Returns information about the company merge including its current status, the companies involved, timestamps, and any error information if the merge failed. The `mergeId` can be obtained from the response of the [Get All Company Merges](#tag/companyMerges/operation/v2_company-merges__GET) endpoint, or by filtering company merges by task ID using `/v2/company-merges?filter=taskId={taskId}` after initiating a merge. Requires the "Manage duplicates" [permission](#section/Getting-Started/Permissions) and organization admin role.' summary: Get Company Merge operationId: v2_company-merges_mergeId__GET tags: - companyMerges 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-stability-level: beta description: '| ⚠️ This endpoint is currently in BETA | |--| Paginate through all emails in Affinity. Returns basic information about the email interaction and its participants. Will only return emails or subject lines that the current authenticated user has permission to see. This endpoint is currently in a Closed Beta; to get access reach out to your Affinity CSM. ' 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 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/lists: get: description: 'Paginate through all Lists in your organization that you have access to view. Returns 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: 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' /v2/lists/{listId}: get: description: 'Retrieve detailed information about a specific List you have access to view. Returns 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: 9223372036854776000 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}/list-entries: get: description: 'Paginate through the List Entries (AKA rows) on a given List. Returns basic information and field data, including list-specific field data, on each Company, Person, or Opportunity on the List. List Entries also include metadata about their creation, i.e., when they were added to the List and by whom. To retrieve field data, you must use either the `fieldIds` or the `fieldTypes` parameter to specify the Fields for which you want data returned. These Field IDs and Types can be found using the GET `/v2/lists/{listId}/fields` endpoint. When no `fieldIds` or `fieldTypes` are provided, List Entries will be returned without any field data attached. To supply multiple `fieldIds` or `fieldTypes` parameters, generate a query string that looks like this: `?fieldIds=field-1234&fieldIds=affinity-data-location` or `?fieldTypes=enriched&fieldTypes=global`. Requires the "Export data from Lists" [permission](#section/Getting-Started/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: 9223372036854776000 - 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/{listEntryId}: get: description: 'Retrieve a single list entry. Returns basic information and field data, including list-specific field data. To retrieve field data, you must use either the `fieldIds` or the `fieldTypes` parameter to specify the Fields for which you want data returned. These Field IDs and Types can be found using the GET `/v2/lists/{listId}/fields` endpoint. When no `fieldIds` or `fieldTypes` are provided, the List Entry will be returned without any field data attached. To supply multiple `fieldIds` or `fieldTypes` parameters, generate a query string that looks like this: `?fieldIds=field-1234&fieldIds=affinity-data-location` or `?fieldTypes=enriched&fieldTypes=global`. Requires the "Export data from Lists" [permission](#section/Getting-Started/Permissions).' 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: 9223372036854776000 - name: listEntryId description: List Entry ID in: path required: true schema: type: integer format: int64 minimum: 1 maximum: 9223372036854776000 - 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}/fields: get: description: 'Paginate through all field values on a single list entry. All fields will be included by default. The `ids` and `types` parameters can be used to filter the collection. Requires the "Export data from Lists" [permission](#section/Getting-Started/Permissions).' 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: 9223372036854776000 - name: listEntryId description: List Entry ID in: path required: true schema: type: integer format: int64 minimum: 1 maximum: 9223372036854776000 - 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: 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](#operation/v2_lists_listId_list-entries_listEntryId_fields_fieldId__POST)\ \ endpoint multiple times. \n\nRequires the \"Export data from Lists\"\ \ [permission](#section/Getting-Started/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: 9223372036854776000 - name: listEntryId description: List Entry ID in: path required: true schema: type: integer format: int64 minimum: 1 maximum: 9223372036854776000 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: description: 'Returns a single field value on a list entry. Requires the "Export data from Lists" [permission](#section/Getting-Started/Permissions).' 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: 9223372036854776000 - name: listEntryId description: List Entry ID in: path required: true schema: type: integer format: int64 minimum: 1 maximum: 9223372036854776000 - 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: description: "Update a single field value.\n \nRequires the \"Export data\ \ from Lists\" [permission](#section/Getting-Started/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: 9223372036854776000 - name: listEntryId description: List Entry ID in: path required: true schema: type: integer format: int64 minimum: 1 maximum: 9223372036854776000 - 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-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/lists/{listId}/fields: get: description: 'Returns metadata on the Fields available on a single List. Use the returned Field IDs to request field data from the GET `/v2/lists/{listId}/list-entries` endpoint.' 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: 9223372036854776000 - 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/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' 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: get: description: 'Paginate through all Saved Views you have access to view for a specific List. Returns Saved View configurations including name, column settings, and owner information.' 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: 9223372036854776000 - 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: description: 'Retrieve detailed information about a specific Saved View you have access to view. Returns complete Saved View configuration including name, sorting, and column visibility settings.' 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: 9223372036854776000 - name: viewId description: Saved view ID in: path required: true schema: type: integer format: int64 minimum: 1 maximum: 9223372036854776000 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: description: 'Paginate through the List Entries (AKA rows) on a given Saved View. Use this endpoint when you need to filter entities or only want **some** field data to be returned: This endpoint respects the filters set on a Saved View via web app, and only returns field data corresponding to the columns that have been pulled into the Saved View via web app. Though this endpoint respects the Saved View''s filters and column/Field selection, it does not yet preserve sort order. This endpoint also only supports **sheet-type Saved Views**, and not board- or dashboard-type Saved Views. See the [Data Model](#section/Data-Model) section for more information about Saved Views. Requires the "Export data from Lists" [permission](#section/Getting-Started/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: 9223372036854776000 - name: viewId description: Saved view ID in: path required: true schema: type: integer format: int64 minimum: 1 maximum: 9223372036854776000 - 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-stability-level: beta description: '| ⚠️ This endpoint is currently in BETA | |--| Paginate through all Meetings you have access to view in your organization. Returns information about meetings including title, start/end times, organizer, and attendee previews. ' summary: Get metadata on all Meetings [COMING SOON] 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 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-stability-level: beta description: '| ⚠️ This endpoint is currently in BETA | |--| Returns all notes, with the exception of replies. You can filter notes using the `filter` query parameter. The filter parameter is a string that you can specify conditions based on the following properties. | **Property Name** | **Description** | **Type** | **Allowed Operators** | **Examples** | |-----------------------------|-----------------------------------------------------------------|------------|--------------------------------------|---------------------------------| | `id` | Filter notes by id | `int32` | `=` | `id=1` | | `creator.id` | Filter notes by the creator of the note | `int32` | `=` | `creator.id=1` | | `createdAt` | Filter notes by when it was created | `datetime` | `>`, `<`, `>=`, `<=` | `createdAt<2025-02-04T10:48:24Z` | | `updatedAt` | Filter notes by when it was updated | `datetime` | `>`, `<`, `>=`, `<=` | `updatedAt>=2025-02-03T10:48:24Z`| ' 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 - $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-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}: get: x-stability-level: beta description: '| ⚠️ This endpoint is currently in BETA | |--| 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-2' interaction: $ref: '#/components/examples/interaction-3' user-reply: $ref: '#/components/examples/user-reply' 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-companies: get: x-stability-level: beta description: '| ⚠️ This endpoint is currently in BETA | |--| 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-stability-level: beta description: '| ⚠️ This endpoint is currently in BETA | |--| 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-stability-level: beta description: '| ⚠️ This endpoint is currently in BETA | |--| 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-stability-level: beta description: '| ⚠️ This endpoint is currently in BETA | |--| This endpoint returns reply notes for a given note id. You can filter replies using the `filter` query parameter. The filter parameter is a string that you can specify conditions based on the following properties. | **Property Name** | **Description** | **Type** | **Allowed Operators** | **Examples** | |-----------------------------|-----------------------------------------------------------------|------------|--------------------------------------|---------------------------------| | `creator.id` | Filter notes by the creator of the note | `int32` | `=` | `creator.id=1` | | `createdAt` | Filter notes by when it was created | `datetime` | `>`, `<`, `>=`, `<=` | `createdAt<2025-02-04T10:48:24Z` | | `updatedAt` | Filter notes by when it was updated | `datetime` | `>`, `<`, `>=`, `<=` | `updatedAt>=2025-02-03T10:48:24Z`| ' 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-2' 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: description: 'Paginate through Opportunities in Affinity. Returns basic information but **not** field data on each Opportunity. To access field data on Opportunities, use the `/lists/{list_id}/list-entries` or the `/v2/lists/{list_id}/saved-views/{view_id}/list-entries` GET endpoint. Requires the "Export data from Lists" [permission](#section/Getting-Started/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: 9223372036854776000 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: description: 'Returns basic information but **not** field data on the requested Opportunity. To access field data on Opportunities, use the `/lists/{list_id}/list-entries` or the `/v2/lists/{list_id}/saved-views/{view_id}/list-entries` GET endpoint. Requires the "Export data from Lists" [permission](#section/Getting-Started/Permissions).' 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: 9223372036854776000 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-stability-level: beta description: '| ⚠️ This endpoint is currently in BETA | |--| Returns Notes for a given Opportunity which includes directly attached notes and those attached to persons on this Opportunity. You can filter notes using the `filter` query parameter. The filter parameter is a string that you can specify conditions based on the following properties. | **Property Name** | **Description** | **Type** | **Allowed Operators** | **Examples** | |-----------------------------|-----------------------------------------------------------------|------------|--------------------------------------|---------------------------------| | `creator.id` | Filter notes by the creator of the note | `int32` | `=` | `creator.id=1` | | `createdAt` | Filter notes by when it was created | `datetime` | `>`, `<`, `>=`, `<=` | `createdAt<2025-02-04T10:48:24Z` | | `updatedAt` | Filter notes by when it was updated | `datetime` | `>`, `<`, `>=`, `<=` | `updatedAt>=2025-02-03T10:48:24Z`| ' 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: 9223372036854776000 - 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-3' interaction: $ref: '#/components/examples/interaction-4' 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' '404': $ref: '#/components/responses/404' default: $ref: '#/components/responses/default' /v2/persons: get: description: 'Paginate through Persons in Affinity. Returns basic information and non-list-specific field data on each Person. To retrieve field data, you must use either the `fieldIds` or the `fieldTypes` parameter to specify the Fields for which you want data returned. These Field IDs and Types can be found using the GET `/v2/persons/fields` endpoint. When no `fieldIds` or `fieldTypes` are provided, Persons will be returned without any field data attached. To supply multiple `fieldIds` or `fieldTypes` parameters, generate a query string that looks like this: `?fieldIds=field-1234&fieldIds=affinity-data-location` or `?fieldTypes=enriched&fieldTypes=global`. Requires the "Export All People directory" [permission](#section/Getting-Started/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: 9223372036854776000 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/{personId}: get: description: 'Returns basic information and non-list-specific field data on the requested Person. To retrieve field data, you must use either the `fieldIds` or the `fieldTypes` parameter to specify the Fields for which you want data returned. These Field IDs and Types can be found using the GET `/v2/persons/fields` endpoint. When no `fieldIds` or `fieldTypes` are provided, Persons will be returned without any field data attached. To supply multiple `fieldIds` or `fieldTypes` parameters, generate a query string that looks like this: `?fieldIds=field-1234&fieldIds=affinity-data-location` or `?fieldTypes=enriched&fieldTypes=global`. Requires the "Export All People directory" [permission](#section/Getting-Started/Permissions).' 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: 9223372036854776000 - 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}/notes: get: x-stability-level: beta description: '| ⚠️ This endpoint is currently in BETA | |--| 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. You can filter notes using the `filter` query parameter. The filter parameter is a string that you can specify conditions based on the following properties. | **Property Name** | **Description** | **Type** | **Allowed Operators** | **Examples** | |-----------------------------|-----------------------------------------------------------------|------------|--------------------------------------|---------------------------------| | `creator.id` | Filter notes by the creator of the note | `int32` | `=` | `creator.id=1` | | `createdAt` | Filter notes by when it was created | `datetime` | `>`, `<`, `>=`, `<=` | `createdAt<2025-02-04T10:48:24Z` | | `updatedAt` | Filter notes by when it was updated | `datetime` | `>`, `<`, `>=`, `<=` | `updatedAt>=2025-02-03T10:48:24Z`| ' 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: 9223372036854776000 - 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-3' interaction: $ref: '#/components/examples/interaction-4' 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' '404': $ref: '#/components/responses/404' default: $ref: '#/components/responses/default' /v2/persons/fields: get: description: 'Returns metadata on non-list-specific Person Fields. Use the returned Field IDs to request field data from the GET `/v2/persons` and GET `/v2/persons/{id}` endpoints.' 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 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/FieldMetadataPaged' 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/{personId}/lists: get: description: 'Paginate through all Lists where the given Person appears as an entry and that you have access to view. Returns 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: 9223372036854776000 - 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}/list-entries: get: description: 'Paginate through the List Entries (AKA rows) for the given Person across all Lists. Each List Entry includes field data for the Person, including list-specific field data. Each List Entry also includes metadata about its creation, i.e., when it was added to the List and by whom. Requires the "Export data from Lists" [permission](#section/Getting-Started/Permissions).' 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: 9223372036854776000 - 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/person-merges: get: x-stability-level: beta description: '| ⚠️ This endpoint is currently in BETA | |--| Retrieve paginated person merges for the organization. Returns all person merges initiated by users in your organization, including their current status, 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: | Property | Type | Operators | Values | Examples | |----------|------|-----------|--------|----------| | `status` | `enum` | `=` | `in-progress`, `success`, `failed` | `status=failed` | | `taskId` | `string` | `=` | | `taskId=789e0123-e45b-67c8-d901-234567890123` | Person merges are returned in reverse chronological order (most recent first). Requires the "Manage duplicates" [permission](#section/Getting-Started/Permissions) and organization admin role. ' summary: Get All Person Merges operationId: v2_person-merges__GET tags: - personMerges 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-stability-level: beta description: '| ⚠️ This endpoint is currently in BETA | |--| Initiate a person merge to combine a duplicate person profile into a primary person profile. This 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](#tag/personMerges/operation/v2_tasks_person-merges_taskId__GET). Requires the "Manage duplicates" [permission](#section/Getting-Started/Permissions) and organization admin role.' summary: Initiate Person Merge operationId: v2_person-merges__POST tags: - personMerges 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-stability-level: beta description: '| ⚠️ This endpoint is currently in BETA | |--| Retrieve the status and details of a specific person merge. Returns information about the person merge including its current status, the persons involved, timestamps, and any error information if the merge failed. The `mergeId` can be obtained from the response of the [Get All Person Merges](#tag/personMerges/operation/v2_person-merges__GET) endpoint, or by filtering person merges by task ID using `/v2/person-merges?filter=taskId={taskId}` after initiating a merge. Requires the "Manage duplicates" [permission](#section/Getting-Started/Permissions) and organization admin role.' summary: Get Person Merge operationId: v2_person-merges_mergeId__GET tags: - personMerges 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/tasks/person-merges: get: x-stability-level: beta description: '| ⚠️ This endpoint is currently in BETA | |--| Retrieve paginated person merge tasks for the organization. Returns all merge tasks initiated by users in your organization, including their current status, the persons involved, and task details. You can filter tasks using the `filter` query parameter. The filter parameter is a string that you can specify conditions based on the following properties: | Property | Type | Operators | Values | Examples | |----------|------|-----------|--------|----------| | `status` | `enum` | `=` | `in-progress`, `success`, `failed` | `status=failed` | Tasks are returned in reverse chronological order (most recent first). Requires the "Manage duplicates" [permission](#section/Getting-Started/Permissions) and organization admin role. ' summary: Get All Person Merge Tasks operationId: v2_tasks_person-merges__GET tags: - personMerges 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' 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-stability-level: beta description: '| ⚠️ This endpoint is currently in BETA | |--| Retrieve the status and details of a specific task for person merges. Returns information about the person merges for a specific task including its overall status, number of merges in-progress, completed, and failed. Detailed information about individual merges for this task can be found by querying: `/v2/person-merges?filter=taskId={taskId}` See [Person Merges](#tag/personMerges/operation/v2_person-merges__GET) for more details. Task statuses: - `in-progress`: The merge task is currently being processed. - `success`: The merge task completed successfully. - `failed`: The merge task failed. Requires the "Manage duplicates" [permission](#section/Getting-Started/Permissions) and organization admin role. ' summary: Get Person Merge Task operationId: v2_tasks_person-merges_taskId__GET tags: - personMerges 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' 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/company-merges: get: x-stability-level: beta description: '| ⚠️ This endpoint is currently in BETA | |--| Retrieve paginated company merge tasks for the organization. Returns all merge tasks initiated by users in your organization, including their current status, the companies involved, and task details. You can filter tasks using the `filter` query parameter. The filter parameter is a string that you can specify conditions based on the following properties: | Property | Type | Operators | Values | Examples | |----------|------|-----------|--------|----------| | `status` | `enum` | `=` | `in-progress`, `success`, `failed` | `status=failed` | Tasks are returned in reverse chronological order (most recent first). Requires the "Manage duplicates" [permission](#section/Getting-Started/Permissions) and organization admin role. ' summary: Get All Company Merge Tasks operationId: v2_tasks_company-merges__GET tags: - companyMerges 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-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/company-merges/{taskId}: get: x-stability-level: beta description: '| ⚠️ This endpoint is currently in BETA | |--| Retrieve the status and details of a specific task for company merges. Returns information about the company merges for a specific task including its overall status, number of merges in-progress, completed, and failed. Detailed information about individual merges for this task can be found by querying: `/v2/company-merges?filter=taskId={taskId}` See [Company Merges](#tag/companyMerges/operation/v2_company-merges__GET) for more details. Task statuses: - `in-progress`: The merge task is currently being processed. - `success`: The merge task completed successfully. - `failed`: The merge task failed. Requires the "Manage duplicates" [permission](#section/Getting-Started/Permissions) and organization admin role. ' summary: Get Company Merge Task operationId: v2_tasks_company-merges_taskId__GET tags: - companyMerges 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-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' 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 enum: - authentication message: description: Error message type: string required: - code - message additionalProperties: false examples: - code: authentication message: 🚨 Error! Sound the alarm! 🚨 AuthorizationError: title: AuthorizationError type: object properties: code: description: Error code type: string enum: - authorization message: description: Error message type: string required: - code - message additionalProperties: false examples: - code: authorization message: 🚨 Error! Sound the alarm! 🚨 BadRequestError: title: BadRequestError type: object properties: code: description: Error code type: string enum: - bad-request message: description: Error message type: string required: - code - message additionalProperties: false examples: - code: bad-request message: 🚨 Error! Sound the alarm! 🚨 ConflictError: title: ConflictError type: object properties: code: description: Error code type: string enum: - conflict message: description: Error message type: string required: - code - message additionalProperties: false examples: - code: conflict message: 🚨 Error! Sound the alarm! 🚨 MethodNotAllowedError: title: MethodNotAllowedError type: object properties: code: description: Error code type: string enum: - method-not-allowed message: description: Error message type: string required: - code - message additionalProperties: false examples: - code: method-not-allowed message: 🚨 Error! Sound the alarm! 🚨 NotAcceptableError: title: NotAcceptableError type: object properties: code: description: Error code type: string enum: - not-acceptable message: description: Error message type: string required: - code - message additionalProperties: false examples: - code: not-acceptable message: 🚨 Error! Sound the alarm! 🚨 NotFoundError: title: NotFoundError type: object properties: code: description: Error code type: string enum: - not-found message: description: Error message type: string required: - code - message additionalProperties: false examples: - code: not-found message: 🚨 Error! Sound the alarm! 🚨 NotImplementedError: title: NotImplementedError type: object properties: code: description: Error code type: string enum: - not-implemented message: description: Error message type: string required: - code - message additionalProperties: false examples: - code: not-implemented message: 🚨 Error! Sound the alarm! 🚨 RateLimitError: title: RateLimitError type: object properties: code: description: Error code type: string enum: - rate-limit message: description: Error message type: string required: - code - message additionalProperties: false examples: - code: rate-limit message: 🚨 Error! Sound the alarm! 🚨 ServerError: title: ServerError type: object properties: code: description: Error code type: string enum: - server message: description: Error message type: string required: - code - message additionalProperties: false examples: - code: server message: 🚨 Error! Sound the alarm! 🚨 UnprocessableEntityError: title: UnprocessableEntityError type: object properties: code: description: Error code type: string enum: - unprocessable-entity message: description: Error message type: string required: - code - message additionalProperties: false examples: - code: unprocessable-entity message: 🚨 Error! Sound the alarm! 🚨 UnsupportedMediaTypeError: title: UnsupportedMediaTypeError type: object properties: code: description: Error code type: string enum: - unsupported-media-type message: description: Error message type: string required: - code - message additionalProperties: false examples: - code: unsupported-media-type message: 🚨 Error! Sound the alarm! 🚨 ValidationError: title: ValidationError type: object properties: code: description: Error code type: string enum: - validation message: description: Error message type: string param: description: Param the error refers to type: string required: - code - message - param additionalProperties: false examples: - code: validation param: limit message: 🚨 Error! Sound the alarm! 🚨 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/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' 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 examples: - 1 name: description: The name of the tenant type: string examples: - Contoso Ltd. subdomain: description: The tenant's subdomain under affinity.co type: string format: hostname examples: - contoso required: - id - name - subdomain additionalProperties: false examples: - name: Contoso Ltd. subdomain: contoso id: 1 User: title: User type: object properties: id: description: The user's unique identifier type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 firstName: description: The user's first name type: string examples: - John lastName: description: The user's last name type: string examples: - Smith nullable: true emailAddress: description: The user's email address type: string format: email examples: - john.smith@contoso.com required: - emailAddress - firstName - id - lastName additionalProperties: false examples: - firstName: John lastName: Smith emailAddress: john.smith@contoso.com id: 1 Grant: title: Grant type: object properties: type: description: The type of grant used to authenticate type: string enum: - api-key - access-token examples: - api-key scopes: description: The scopes available to the current grant type: array items: type: string examples: - - api createdAt: description: When the grant was created type: string format: date-time examples: - '2023-01-01T00:00:00Z' required: - createdAt - scopes - type additionalProperties: false examples: - createdAt: '2023-01-01T00:00:00Z' scopes: - api type: api-key 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 examples: - 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 NotFoundErrors: title: NotFoundErrors description: NotFoundErrors model type: object properties: errors: description: NotFoundError errors type: array items: $ref: '#/components/schemas/NotFoundError' required: - errors additionalProperties: false examples: - errors: - code: not-found message: 🚨 Error! Sound the alarm! 🚨 - code: not-found message: 🚨 Error! Sound the alarm! 🚨 PersonData: title: PersonData type: object properties: id: description: The persons's unique identifier type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 firstName: description: The person's first name type: string examples: - Jane nullable: true lastName: description: The person's last name type: string examples: - Doe nullable: true primaryEmailAddress: description: The person's primary email address type: string format: email examples: - jane.doe@acme.co nullable: true type: description: The person's type type: string enum: - internal - external - collaborator examples: - 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 format: email examples: - john.smith@contoso.com nullable: true person: oneOf: - $ref: '#/components/schemas/PersonData' - type: 'null' required: - emailAddress - person additionalProperties: false AttendeesPreview: x-stability-level: beta title: interactions.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 examples: - 200 required: - data - totalCount additionalProperties: false Pagination: title: Pagination type: object properties: prevUrl: description: URL for the previous page type: string format: uri examples: - https://api.affinity.co/v2/foo?cursor=ICAgICAgYmVmb3JlOjo6Nw nullable: true nextUrl: description: URL for the next page type: string format: uri examples: - https://api.affinity.co/v2/foo?cursor=ICAgICAgIGFmdGVyOjo6NA nullable: true examples: - prevUrl: https://api.affinity.co/v2/foo?cursor=ICAgICAgYmVmb3JlOjo6Nw nextUrl: https://api.affinity.co/v2/foo?cursor=ICAgICAgIGFmdGVyOjo6NA 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 CompanyData: title: CompanyData type: object properties: id: description: The company's unique identifier type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 name: description: The company's name type: string examples: - Acme domain: description: The company's primary domain type: string format: hostname examples: - acme.co nullable: true required: - domain - id - name additionalProperties: false CompanyValue: title: CompanyValue type: object properties: type: description: The type of value type: string enum: - company data: oneOf: - $ref: '#/components/schemas/CompanyData' - type: 'null' required: - data - type additionalProperties: false CompaniesValue: title: CompaniesValue type: object properties: type: description: The type of value type: string enum: - company-multi data: description: The values for many companies type: array items: $ref: '#/components/schemas/CompanyData' maxItems: 100 nullable: true required: - data - type additionalProperties: false DateValue: title: DateValue type: object properties: type: description: The type of value type: string enum: - datetime data: description: The value for a date type: string format: date-time nullable: true required: - data - type additionalProperties: false Dropdown: title: Dropdown type: object properties: dropdownOptionId: description: Dropdown item's unique identifier type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 text: description: Dropdown item text type: string examples: - first required: - dropdownOptionId - text additionalProperties: false DropdownValue: title: DropdownValue type: object properties: type: description: The type of value type: string enum: - dropdown data: oneOf: - $ref: '#/components/schemas/Dropdown' - type: 'null' required: - data - type additionalProperties: false DropdownsValue: title: DropdownsValue type: object properties: type: description: The type of value type: string enum: - dropdown-multi data: description: The value for many dropdown items type: array items: $ref: '#/components/schemas/Dropdown' nullable: true required: - data - type additionalProperties: false FloatValue: title: FloatValue type: object properties: type: description: The type of value type: string enum: - number data: description: The value for a number type: number nullable: true required: - data - type additionalProperties: false FloatsValue: title: FloatsValue type: object properties: type: description: The type of value type: string enum: - number-multi data: description: The value for many numbers type: array items: type: number nullable: true required: - data - type additionalProperties: false TextValue: title: TextValue type: object properties: type: description: The type of value type: string enum: - filterable-text - text examples: - filterable-text data: description: The value for a string type: string nullable: true required: - data - type additionalProperties: false TextsValue: title: TextsValue type: object properties: type: description: The type of value type: string enum: - filterable-text-multi data: description: The value for many strings type: array items: type: string nullable: true required: - data - type additionalProperties: false FormulaNumber: title: FormulaNumber type: object properties: calculatedValue: description: Calculated value type: number nullable: true additionalProperties: false FormulaValue: title: FormulaValue type: object properties: type: description: The type of value type: string enum: - formula-number data: oneOf: - $ref: '#/components/schemas/FormulaNumber' - type: 'null' required: - data - type additionalProperties: false ChatMessage: title: ChatMessage type: object properties: type: description: The type of interaction type: string examples: - chat-message enum: - chat-message id: description: The chat message's unique identifier type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 direction: description: The direction of the chat message type: string enum: - received - sent examples: - sent sentAt: description: The time the chat message was sent type: string format: date-time examples: - '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 Email: title: Email type: object properties: type: description: The type of interaction type: string examples: - email enum: - email id: description: The email's unique identifier type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 subject: description: The subject of the email type: string examples: - Acme Upsell $10k nullable: true sentAt: description: The time the email was sent type: string format: date-time examples: - '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 Meeting: title: Meeting type: object properties: type: description: The type of interaction type: string examples: - meeting enum: - meeting id: description: The meeting's unique identifier type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 title: description: The meeting's title type: string examples: - Acme Upsell $10k nullable: true allDay: description: Whether the meeting is an all-day event type: boolean examples: - false startTime: description: The meeting start time type: string format: date-time examples: - '2023-02-03T04:00:00Z' endTime: description: The meeting end time type: string format: date-time examples: - '2023-02-03T05:00:00Z' nullable: true attendees: description: People attending the meeting type: array items: $ref: '#/components/schemas/Attendee' required: - allDay - attendees - endTime - id - startTime - title - type additionalProperties: false PhoneCall: title: PhoneCall type: object properties: type: description: The type of interaction type: string examples: - call enum: - call id: description: The phon_call's unique identifier type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 startTime: description: The call start time type: string format: date-time examples: - '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 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 enum: - interaction data: oneOf: - $ref: '#/components/schemas/Interaction' - type: 'null' required: - data - type additionalProperties: false Location: title: Location type: object properties: streetAddress: description: Street address type: string examples: - 1 Main Street nullable: true city: description: City type: string examples: - San Francisco nullable: true state: description: State type: string examples: - California nullable: true country: description: Country type: string examples: - United States nullable: true continent: description: Continent type: string examples: - North America nullable: true required: - city - continent - country - state - streetAddress additionalProperties: false examples: - continent: North America country: United States streetAddress: 1 Main Street city: San Francisco state: California LocationValue: title: LocationValue type: object properties: type: description: The type of value type: string enum: - location data: oneOf: - $ref: '#/components/schemas/Location' - type: 'null' required: - data - type additionalProperties: false LocationsValue: title: LocationsValue type: object properties: type: description: The type of value type: string enum: - location-multi data: description: The values for many locations type: array items: $ref: '#/components/schemas/Location' nullable: true required: - data - type additionalProperties: false PersonValue: title: PersonValue type: object properties: type: description: The type of value type: string enum: - person data: oneOf: - $ref: '#/components/schemas/PersonData' - type: 'null' required: - data - type additionalProperties: false PersonsValue: title: PersonsValue type: object properties: type: description: The type of value type: string enum: - person-multi data: description: The values for many persons type: array items: $ref: '#/components/schemas/PersonData' maxItems: 100 nullable: true required: - data - type additionalProperties: false RankedDropdown: title: RankedDropdown type: object properties: dropdownOptionId: description: Dropdown item's unique identifier type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 text: description: Dropdown item text type: string examples: - first rank: description: Dropdown item rank type: integer format: int64 minimum: 0 maximum: 9007199254740991 examples: - 0 color: description: Dropdown item color type: string examples: - white nullable: true required: - color - dropdownOptionId - rank - text additionalProperties: false RankedDropdownValue: title: RankedDropdownValue type: object properties: type: description: The type of value type: string enum: - ranked-dropdown data: oneOf: - $ref: '#/components/schemas/RankedDropdown' - type: 'null' required: - data - type additionalProperties: false 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' examples: - data: continent: North America country: United States streetAddress: 1 Main Street city: San Francisco state: California type: location Field: title: Field type: object properties: id: description: The field's unique identifier type: string examples: - affinity-data-location - field-1234 name: description: The field's name type: string examples: - Location type: description: The field's type type: string enum: - enriched - global - list - relationship-intelligence examples: - enriched enrichmentSource: description: The source of the data in this Field (if it is enriched) type: string enum: - affinity-data - dealroom - null examples: - affinity-data nullable: true value: $ref: '#/components/schemas/FieldValue' required: - enrichmentSource - id - name - type - value additionalProperties: false examples: - enrichmentSource: affinity-data name: Location id: affinity-data-location type: enriched value: data: continent: North America country: United States streetAddress: 1 Main Street city: San Francisco state: California type: location Company: title: Company description: Company model type: object properties: id: description: The company's unique identifier type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 name: description: The company's name type: string examples: - Acme domain: description: The company's primary domain type: string format: hostname examples: - acme.co nullable: true domains: description: All of the company's domains type: array items: type: string format: hostname examples: - - acme.co isGlobal: description: Whether or not the company is tenant specific type: boolean examples: - true fields: description: The fields associated with the company type: array items: $ref: '#/components/schemas/Field' required: - domain - domains - id - isGlobal - name additionalProperties: false examples: - domain: acme.co name: Acme isGlobal: true domains: - acme.co id: 1 fields: - enrichmentSource: affinity-data name: Location id: affinity-data-location type: enriched value: data: continent: North America country: United States streetAddress: 1 Main Street city: San Francisco state: California type: location - enrichmentSource: affinity-data name: Description id: affinity-data-description type: enriched value: data: A leading provider of innovative solutions type: text 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 examples: - pagination: prevUrl: https://api.affinity.co/v2/foo?cursor=ICAgICAgYmVmb3JlOjo6Nw nextUrl: https://api.affinity.co/v2/foo?cursor=ICAgICAgIGFmdGVyOjo6NA data: - domain: acme.co name: Acme isGlobal: true domains: - acme.co id: 1 fields: - enrichmentSource: affinity-data name: Location id: affinity-data-location type: enriched value: data: continent: North America country: United States streetAddress: 1 Main Street city: San Francisco state: California type: location - enrichmentSource: affinity-data name: Description id: affinity-data-description type: enriched value: data: A leading provider of innovative solutions type: text - domain: umbrella.co name: Umbrella Corporation isGlobal: true domains: - umbrella.co id: 2 fields: - enrichmentSource: affinity-data name: Location id: affinity-data-location type: enriched value: data: continent: North America country: United States streetAddress: 200 Corporate Blvd city: Raccoon City state: Ohio type: location - enrichmentSource: affinity-data name: Description id: affinity-data-description type: enriched value: data: Pharmaceutical and biotechnology company type: text AuthorizationErrors: title: AuthorizationErrors description: AuthorizationErrors model type: object properties: errors: description: AuthorizationError errors type: array items: $ref: '#/components/schemas/AuthorizationError' required: - errors additionalProperties: false examples: - errors: - code: authorization message: 🚨 Error! Sound the alarm! 🚨 - code: authorization message: 🚨 Error! Sound the alarm! 🚨 FieldMetadata: title: FieldMetadata type: object properties: id: description: The field's unique identifier type: string examples: - affinity-data-location - field-1234 name: description: The field's name type: string examples: - Location type: description: The field's type type: string enum: - enriched - global - list - relationship-intelligence examples: - enriched enrichmentSource: description: The source of the data in this Field (if it is enriched) type: string enum: - affinity-data - dealroom - null examples: - affinity-data nullable: true 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 examples: - location required: - enrichmentSource - id - name - type - valueType additionalProperties: false examples: - enrichmentSource: affinity-data valueType: location name: Location id: affinity-data-location type: enriched 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 List: title: List type: object properties: id: description: The unique identifier for the list type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 name: description: The name of the list type: string examples: - All companies creatorId: description: The ID of the user that created this list type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 ownerId: description: The ID of the user that owns this list type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 isPublic: description: Whether or not the list is public type: boolean examples: - false required: - creatorId - id - isPublic - name - ownerId additionalProperties: false examples: - name: All companies creatorId: 1 isPublic: false id: 1 ownerId: 1 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 examples: - pagination: prevUrl: https://api.affinity.co/v2/foo?cursor=ICAgICAgYmVmb3JlOjo6Nw nextUrl: https://api.affinity.co/v2/foo?cursor=ICAgICAgIGFmdGVyOjo6NA data: - name: All companies creatorId: 1 isPublic: false id: 1 ownerId: 1 - name: All companies creatorId: 1 isPublic: false id: 1 ownerId: 1 ListEntry: title: ListEntry type: object properties: id: description: The list entry's unique identifier type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 listId: description: The ID of the list that this list entry belongs to type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 createdAt: description: The date that the list entry was created type: string format: date-time examples: - '2023-01-01T00:00:00Z' creatorId: description: The ID of the user that created this list entry type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 nullable: true fields: description: The fields associated with the list entry type: array items: $ref: '#/components/schemas/Field' required: - createdAt - creatorId - fields - id - listId additionalProperties: false examples: - listId: 1 createdAt: '2023-01-01T00:00:00Z' creatorId: 1 id: 1 fields: - enrichmentSource: affinity-data name: Location id: affinity-data-location type: enriched value: data: continent: North America country: United States streetAddress: 1 Main Street city: San Francisco state: California type: location - enrichmentSource: affinity-data name: Location id: affinity-data-location type: enriched value: data: continent: North America country: United States streetAddress: 1 Main Street city: San Francisco state: California type: location 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 examples: - pagination: prevUrl: https://api.affinity.co/v2/foo?cursor=ICAgICAgYmVmb3JlOjo6Nw nextUrl: https://api.affinity.co/v2/foo?cursor=ICAgICAgIGFmdGVyOjo6NA data: - listId: 1 createdAt: '2023-01-01T00:00:00Z' creatorId: 1 id: 1 fields: - enrichmentSource: affinity-data name: Location id: affinity-data-location type: enriched value: data: continent: North America country: United States streetAddress: 1 Main Street city: San Francisco state: California type: location - enrichmentSource: affinity-data name: Location id: affinity-data-location type: enriched value: data: continent: North America country: United States streetAddress: 1 Main Street city: San Francisco state: California type: location - listId: 1 createdAt: '2023-01-01T00:00:00Z' creatorId: 1 id: 1 fields: - enrichmentSource: affinity-data name: Location id: affinity-data-location type: enriched value: data: continent: North America country: United States streetAddress: 1 Main Street city: San Francisco state: California type: location - enrichmentSource: affinity-data name: Location id: affinity-data-location type: enriched value: data: continent: North America country: United States streetAddress: 1 Main Street city: San Francisco state: California type: location notes.Content: x-stability-level: beta title: notes.Content description: A note content type: object properties: html: description: The HTML content of the note type: string nullable: true required: - html notes.PersonMention: x-stability-level: beta 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 enum: - person person: $ref: '#/components/schemas/PersonData' required: - id - type - person notes.Mention: x-stability-level: beta 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: x-stability-level: beta 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 format: date-time nullable: true required: - id - content - creator - mentions - createdAt - updatedAt notes.PermissionSettings: x-stability-level: beta title: notes.PermissionSettings description: The permission settings of a note type: object properties: sharingType: description: The sharing type of the note type: string enum: - private - public - custom owner: $ref: '#/components/schemas/PersonData' required: - sharingType - owner 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 examples: - 1 name: description: The name of the opportunity type: string examples: - Acme Upsell $10k listId: description: The ID of the list that the opportunity belongs to type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 required: - id - listId - name additionalProperties: false examples: - listId: 1 name: Acme Upsell $10k id: 1 notes.OpportunitiesPreview: x-stability-level: beta title: notes.OpportunitiesPreview description: A preview for attached Opportunities on a Note type: object properties: data: description: Preview of attached Opportunities for a Note type: array items: $ref: '#/components/schemas/Opportunity' maxItems: 100 totalCount: description: The total count of the collection parameter. type: integer format: int64 minimum: 0 maximum: 9007199254740991 notes.PersonsPreview: x-stability-level: beta title: notes.PersonsPreview description: A preview for attached Persons on a Note type: object properties: data: description: Preview of attached Persons for a Note type: array items: $ref: '#/components/schemas/PersonData' maxItems: 100 totalCount: description: The total count of the collection parameter. type: integer format: int64 minimum: 0 maximum: 9007199254740991 notes.CompaniesPreview: x-stability-level: beta title: notes.CompaniesPreview description: A preview for attached Companies on a Note type: object properties: data: description: Preview of attached Companies for a Note type: array items: $ref: '#/components/schemas/CompanyData' maxItems: 100 totalCount: description: The total count of the collection parameter. type: integer format: int64 minimum: 0 maximum: 9007199254740991 notes.BaseRootNote: x-stability-level: beta 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 permissions: $ref: '#/components/schemas/notes.PermissionSettings' opportunitiesPreview: $ref: '#/components/schemas/notes.OpportunitiesPreview' personsPreview: $ref: '#/components/schemas/notes.PersonsPreview' companiesPreview: $ref: '#/components/schemas/notes.CompaniesPreview' notes.EntitiesNote: x-stability-level: beta 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 enum: - entities required: - type notes.MeetingInteraction: x-stability-level: beta 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 enum: - meeting required: - id - type notes.CallInteraction: x-stability-level: beta 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 enum: - call required: - id - type notes.ChatMessageInteraction: x-stability-level: beta 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 enum: - chat-message required: - id - type notes.EmailInteraction: x-stability-level: beta 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 enum: - email required: - id - type notes.Interaction: x-stability-level: beta title: notes.NoteInteraction 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: x-stability-level: beta 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 enum: - interaction interaction: $ref: '#/components/schemas/notes.Interaction' required: - type - interaction notes.AiNotetakerRootNote: x-stability-level: beta 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 enum: - ai-notetaker interaction: description: The meeting this AI Notetaker was invited to. $ref: '#/components/schemas/notes.MeetingInteraction' required: - type notes.BaseReply: x-stability-level: beta 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: x-stability-level: beta 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 enum: - user-reply required: - type notes.AiNotetakerReplyNote: x-stability-level: beta 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 enum: - ai-notetaker-reply interaction: description: The meeting this AI Notetaker was invited to. $ref: '#/components/schemas/notes.MeetingInteraction' required: - type notes.Note: x-stability-level: beta 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' notes.NotesPaged: x-stability-level: beta 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 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 examples: - 12345 status: description: Current status of the merge type: string enum: - in-progress - success - failed examples: - success taskId: description: Identifier for the task this merge belongs to type: string format: uuid examples: - 789e0123-e45b-67c8-d901-234567890123 startedAt: description: Timestamp when the merge started type: string format: date-time examples: - '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 examples: - 12345 duplicateCompanyId: description: ID of the duplicate company that was merged into the primary company type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 67890 completedAt: description: Timestamp when the merge completed (success or failure) type: string format: date-time examples: - '2025-06-03T10:32:15Z' - null nullable: true errorMessage: description: Error message if the merge failed type: string examples: - Primary company not found - null nullable: true 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 examples: - 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 examples: - 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 examples: - https://api.affinit.com/tasks/company-merges/123e4567-e89b-12d3-a456-426614174000 required: - taskUrl additionalProperties: false interactions.Email: x-stability-level: beta title: interactions.Email type: object properties: id: description: The email's unique identifier type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 sentAt: description: The timestamp of when the email was sent type: string format: date-time examples: - '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 examples: - automated enum: - 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 examples: - received subject: description: The email's subject type: string examples: - Example subject nullable: true createdAt: description: The timestamp of when the email was created type: string format: date-time examples: - '2023-01-01T00:00:00Z' updatedAt: description: The timestamp of when the email was updated type: string format: date-time examples: - '2023-01-01T00:00:00Z' nullable: true 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: x-stability-level: beta 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/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 examples: - 1 name: description: The name of the list type: string examples: - All companies creatorId: description: The ID of the user that created this list type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 ownerId: description: The ID of the user that owns this list type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 isPublic: description: Whether or not the list is public type: boolean examples: - false type: description: The entity type for this list type: string enum: - company - opportunity - person examples: - company required: - 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 CompanyListEntry: title: CompanyListEntry type: object properties: id: description: The list entry's unique identifier type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 type: description: The entity type for this list entry type: string examples: - company enum: - company listId: description: The ID of the list that this list entry belongs to type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 createdAt: description: The date that the list entry was created type: string format: date-time examples: - '2023-01-01T00:00:00Z' creatorId: description: The ID of the user that created this list entry type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 nullable: true entity: $ref: '#/components/schemas/Company' required: - createdAt - creatorId - entity - id - listId - type additionalProperties: false OpportunityWithFields: title: OpportunityWithFields type: object properties: id: description: The unique identifier for the opportunity type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 name: description: The name of the opportunity type: string examples: - Acme Upsell $10k listId: description: The ID of the list that the opportunity belongs to type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 fields: description: The fields associated with the opportunity type: array items: $ref: '#/components/schemas/Field' required: - id - listId - name additionalProperties: false OpportunityListEntry: title: OpportunityListEntry type: object properties: id: description: The list entry's unique identifier type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 type: description: The entity type for this list entry type: string examples: - opportunity enum: - opportunity listId: description: The ID of the list that this list entry belongs to type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 createdAt: description: The date that the list entry was created type: string format: date-time examples: - '2023-01-01T00:00:00Z' creatorId: description: The ID of the user that created this list entry type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 nullable: true entity: $ref: '#/components/schemas/OpportunityWithFields' required: - createdAt - creatorId - entity - id - listId - type 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 examples: - 1 firstName: description: The person's first name type: string examples: - Jane lastName: description: The person's last name type: string examples: - Doe nullable: true primaryEmailAddress: description: The person's primary email address type: string format: email examples: - jane.doe@acme.co nullable: true emailAddresses: description: All of the person's email addresses type: array items: type: string format: email examples: - - jane.doe@acme.co - janedoe@gmail.com type: description: The person's type type: string enum: - internal - external examples: - 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 examples: - firstName: Jane lastName: Doe emailAddresses: - jane.doe@acme.co - janedoe@gmail.com id: 1 type: internal fields: - enrichmentSource: affinity-data name: Location id: affinity-data-location type: enriched value: data: continent: North America country: United States streetAddress: 1 Main Street city: San Francisco state: California type: location - enrichmentSource: affinity-data name: Location id: affinity-data-location type: enriched value: data: continent: North America country: United States streetAddress: 1 Main Street city: San Francisco state: California type: location primaryEmailAddress: jane.doe@acme.co PersonListEntry: title: PersonListEntry type: object properties: id: description: The list entry's unique identifier type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 type: description: The entity type for this list entry type: string examples: - person enum: - person listId: description: The ID of the list that this list entry belongs to type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 createdAt: description: The date that the list entry was created type: string format: date-time examples: - '2023-01-01T00:00:00Z' creatorId: description: The ID of the user that created this list entry type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 nullable: true entity: $ref: '#/components/schemas/Person' required: - createdAt - creatorId - entity - id - listId - type additionalProperties: false 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 items: $ref: '#/components/schemas/ListEntryWithEntity' maxItems: 100 nullable: true pagination: $ref: '#/components/schemas/Pagination' required: - data - pagination 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 CompanyReference: title: CompanyReference type: object properties: id: description: The company's unique identifier type: integer format: int64 minimum: 1 maximum: 9007199254740991 required: - id additionalProperties: false CompaniesValueUpdate: title: CompaniesValueUpdate type: object properties: type: description: The type of value type: string enum: - company-multi data: description: The values for many companies type: array items: $ref: '#/components/schemas/CompanyReference' maxItems: 100 nullable: true required: - data - type additionalProperties: false CompanyValueUpdate: title: CompanyValueUpdate type: object properties: type: description: The type of value type: string enum: - company data: oneOf: - type: 'null' - $ref: '#/components/schemas/CompanyReference' required: - data - type additionalProperties: false DropdownReference: title: DropdownReference type: object properties: dropdownOptionId: description: Dropdown item's unique identifier type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 required: - dropdownOptionId additionalProperties: false DropdownValueUpdate: title: DropdownValueUpdate type: object properties: type: description: The type of value type: string enum: - dropdown data: oneOf: - type: 'null' - $ref: '#/components/schemas/DropdownReference' required: - data - type DropdownsValueUpdate: title: DropdownsValueUpdate type: object properties: type: description: The type of value type: string enum: - dropdown-multi data: description: The value for many dropdown items type: array items: $ref: '#/components/schemas/DropdownReference' nullable: true required: - data - type additionalProperties: false PersonReference: title: PersonReference type: object properties: id: description: The persons's unique identifier type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 required: - id additionalProperties: false PersonValueUpdate: title: PersonValueUpdate type: object properties: type: description: The type of value type: string enum: - person data: oneOf: - type: 'null' - $ref: '#/components/schemas/PersonReference' required: - data - type additionalProperties: false PersonsValueUpdate: title: PersonsValueUpdate type: object properties: type: description: The type of value type: string enum: - person-multi data: description: The values for many persons type: array items: $ref: '#/components/schemas/PersonReference' maxItems: 100 nullable: true required: - data - type additionalProperties: false RankedDropdownReference: title: RankedDropdownReference type: object properties: dropdownOptionId: description: Ranked Dropdown item's unique identifier type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 1 required: - dropdownOptionId additionalProperties: false RankedDropdownValueUpdate: title: RankedDropdownValueUpdate type: object properties: type: description: The type of value type: string enum: - ranked-dropdown data: oneOf: - type: 'null' - $ref: '#/components/schemas/RankedDropdownReference' required: - data - type 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' examples: - type: location data: continent: North America country: United States streetAddress: 1 Main Street city: San Francisco state: California ListEntryBatchOperationUpdateFields: title: ListEntryBatchOperationUpdateFields description: Update multiple field values. type: object properties: operation: type: string enum: - update-fields updates: type: array maxItems: 100 items: type: object properties: id: description: The field's unique identifier. type: string examples: - 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' FieldUpdate: title: FieldUpdate type: object properties: value: $ref: '#/components/schemas/FieldValueUpdate' examples: - value: data: continent: North America country: United States streetAddress: 1 Main Street city: San Francisco state: California type: location additionalProperties: false 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 examples: - 28 name: description: The saved view's name type: string examples: - my interesting companies type: description: The type for this saved view type: string enum: - sheet - board - dashboard examples: - sheet createdAt: description: The date that the saved view was created type: string format: date-time examples: - '2023-01-01T00:00:00Z' required: - createdAt - id - name - type additionalProperties: false examples: - createdAt: '2023-01-01T00:00:00Z' name: my interesting companies id: 28 type: sheet 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 examples: - pagination: prevUrl: https://api.affinity.co/v2/foo?cursor=ICAgICAgYmVmb3JlOjo6Nw nextUrl: https://api.affinity.co/v2/foo?cursor=ICAgICAgIGFmdGVyOjo6NA data: - createdAt: '2023-01-01T00:00:00Z' name: my interesting companies id: 28 type: sheet - createdAt: '2023-01-01T00:00:00Z' name: my interesting companies id: 28 type: sheet interactions.Meeting: x-stability-level: beta title: interactions.Meeting type: object properties: id: description: The meeting's unique identifier type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 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 examples: - automated title: description: The meeting's title type: string examples: - Example title nullable: true startTime: description: The timestamp of when the meeting starts type: string format: date-time examples: - '2023-01-01T00:00:00Z' endTime: description: The timestamp of when the meeting ends type: string format: date-time examples: - '2023-01-01T00:00:00Z' nullable: true allDay: description: Whether the meeting is all day type: boolean examples: - 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 examples: - '2023-01-01T00:00:00Z' updatedAt: description: The timestamp of when the meeting was updated type: string format: date-time examples: - '2023-01-01T00:00:00Z' nullable: true 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: x-stability-level: beta 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/PaginationWithTotalCount' required: - data - pagination additionalProperties: false CompanyDataPaged: x-stability-level: beta 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 examples: - pagination: prevUrl: https://api.affinity.co/v2/foo?cursor=ICAgICAgYmVmb3JlOjo6Nw nextUrl: https://api.affinity.co/v2/foo?cursor=ICAgICAgIGFmdGVyOjo6NA data: - domain: acme.co name: Acme id: 1 - domain: acme.co name: Acme id: 1 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 examples: - pagination: prevUrl: https://api.affinity.co/v2/foo?cursor=ICAgICAgYmVmb3JlOjo6Nw nextUrl: https://api.affinity.co/v2/foo?cursor=ICAgICAgIGFmdGVyOjo6NA data: - listId: 1 name: Acme Upsell $10k id: 1 - listId: 1 name: Acme Upsell $10k id: 1 PersonDataPaged: x-stability-level: beta 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 examples: - pagination: prevUrl: https://api.affinity.co/v2/foo?cursor=ICAgICAgYmVmb3JlOjo6Nw nextUrl: https://api.affinity.co/v2/foo?cursor=ICAgICAgIGFmdGVyOjo6NA data: - firstName: Jane lastName: Doe id: 1 type: internal primaryEmailAddress: jane.doe@acme.co - firstName: Jane lastName: Doe id: 1 type: internal primaryEmailAddress: jane.doe@acme.co notes.Reply: x-stability-level: beta 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: x-stability-level: beta 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 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 examples: - pagination: prevUrl: https://api.affinity.co/v2/foo?cursor=ICAgICAgYmVmb3JlOjo6Nw nextUrl: https://api.affinity.co/v2/foo?cursor=ICAgICAgIGFmdGVyOjo6NA data: - firstName: Jane lastName: Doe emailAddresses: - jane.doe@acme.co - janedoe@gmail.com id: 1 type: internal fields: - enrichmentSource: affinity-data name: Location id: affinity-data-location type: enriched value: data: continent: North America country: United States streetAddress: 1 Main Street city: San Francisco state: California type: location - enrichmentSource: affinity-data name: Location id: affinity-data-location type: enriched value: data: continent: North America country: United States streetAddress: 1 Main Street city: San Francisco state: California type: location primaryEmailAddress: jane.doe@acme.co - firstName: Jane lastName: Doe emailAddresses: - jane.doe@acme.co - janedoe@gmail.com id: 1 type: internal fields: - enrichmentSource: affinity-data name: Location id: affinity-data-location type: enriched value: data: continent: North America country: United States streetAddress: 1 Main Street city: San Francisco state: California type: location - enrichmentSource: affinity-data name: Location id: affinity-data-location type: enriched value: data: continent: North America country: United States streetAddress: 1 Main Street city: San Francisco state: California type: location primaryEmailAddress: jane.doe@acme.co PersonMergeState: x-stability-level: beta 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 examples: - 12345 status: description: Current status of the merge type: string enum: - in-progress - success - failed examples: - success taskId: description: Identifier for the task this merge belongs to type: string format: uuid examples: - 789e0123-e45b-67c8-d901-234567890123 startedAt: description: Timestamp when the merge started type: string format: date-time examples: - '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 examples: - 12345 duplicatePersonId: description: ID of the duplicate person that was merged into the primary person type: integer format: int64 minimum: 1 maximum: 9007199254740991 examples: - 67890 completedAt: description: Timestamp when the merge completed (success or failure) type: string format: date-time examples: - '2025-06-03T10:32:15Z' - null nullable: true errorMessage: description: Error message if the merge failed type: string examples: - Primary person not found - null nullable: true required: - id - status - taskId - startedAt - primaryPersonId - duplicatePersonId - completedAt - errorMessage additionalProperties: false PersonMergeStatePaged: x-stability-level: beta 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: x-stability-level: beta 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 examples: - 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 examples: - 67890 required: - primaryPersonId - duplicatePersonId additionalProperties: false PersonMergeResponse: x-stability-level: beta 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 examples: - https://api.affinit.com/tasks/person-merges/123e4567-e89b-12d3-a456-426614174000 required: - taskUrl additionalProperties: false PersonMergeTask: x-stability-level: beta 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 examples: - 123e4567-e89b-12d3-a456-426614174000 status: description: The current status of the batch operation type: string enum: - in-progress - success - failed examples: - 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 examples: - 5 inProgress: description: Number of merges currently in progress type: integer format: int32 minimum: 0 maximum: 2147483647 examples: - 2 success: description: Number of successfully completed merges type: integer format: int32 minimum: 0 maximum: 2147483647 examples: - 2 failed: description: Number of failed merges type: integer format: int32 minimum: 0 maximum: 2147483647 examples: - 1 required: - total - inProgress - success - failed additionalProperties: false required: - id - status - resultsSummary additionalProperties: false PersonMergeTaskPaged: x-stability-level: beta 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' examples: - - 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 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 examples: - 123e4567-e89b-12d3-a456-426614174000 status: description: The current status of the batch operation type: string enum: - in-progress - success - failed examples: - 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 examples: - 5 inProgress: description: Number of merges currently in progress type: integer format: int32 minimum: 0 maximum: 2147483647 examples: - 2 success: description: Number of successfully completed merges type: integer format: int32 minimum: 0 maximum: 2147483647 examples: - 2 failed: description: Number of failed merges type: integer format: int32 minimum: 0 maximum: 2147483647 examples: - 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' examples: - - 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 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' examples: merges-list: x-stability-level: beta 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: x-stability-level: beta 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: x-stability-level: beta 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: x-stability-level: beta 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: x-stability-level: beta 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: x-stability-level: beta 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 success: value: data: - id: 1 name: My Companies type: company isPublic: false ownerId: 1 creatorId: 1 - id: 2 name: My Persons type: person isPublic: false ownerId: 1 creatorId: 1 - id: 3 name: My Opportunities type: opportunity isPublic: false ownerId: 1 creatorId: 1 pagination: prevUrl: https://api.affinity.co/v2/lists?cursor=ICAgICAgYmVmb3JlOjo6Nw nextUrl: https://api.affinity.co/v2/lists?cursor=ICAgICAgIGFmdGVyOjo6NA company-list: description: Example Company list. value: id: 1 name: My Companies type: company isPublic: false ownerId: 1 creatorId: 1 opportunity-list: description: Example Opportunity list. value: id: 3 name: My Opportunities type: opportunity isPublic: false ownerId: 1 creatorId: 1 person-list: description: Example Person list. value: id: 2 name: My Persons type: person isPublic: false ownerId: 1 creatorId: 1 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: Acme domain: acme.co domains: - acme.co isGlobal: true fields: - id: affinity-data-description name: Description type: enriched enrichmentSource: affinity-data value: type: text data: Acme is a mega-corporation that manufactures everything from anvils to earthquake pills. - id: affinity-data-industry name: Industry type: enriched enrichmentSource: affinity-data value: type: filterable-text-multi data: - Aerospace - Construction - Consumer Goods - 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: - Marvin Acme - Yosemite Sam - 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/acme - 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: Umbrella Corporation domain: umbrella.co domains: - umbrella.co isGlobal: true fields: - id: affinity-data-description name: Description type: enriched enrichmentSource: affinity-data value: type: text data: The Umbrella Corporation is a multinational conglomerate with subsidiaries active in a variety of industries. - id: affinity-data-industry name: Industry type: enriched enrichmentSource: affinity-data value: type: filterable-text-multi data: - Cosmetics - Chemical - Consumer Goods - Food Products - Machinery Manufacturing - Pharmaceuticals - Transportation - Tourism - 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: - Oswell E. Spencer - Albert Wesker - 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/umbrella - 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: Acme domain: acme.co domains: - acme.co 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: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal participants: - id: 1 firstName: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal - id: 2 firstName: Bobbo lastName: Acme primaryEmailAddress: bobbo@stackshare.io 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: wile.e@coyote.com person: id: 1 firstName: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal to: - emailAddress: bobbo@acme.co person: id: 2 firstName: Bobbo lastName: Acme primaryEmailAddress: bobbo@stackshare.io 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: wile.e@coyote.com person: id: 1 firstName: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal - emailAddress: bobbo@acme.co person: id: 2 firstName: Bobbo lastName: Acme primaryEmailAddress: bobbo@stackshare.io 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: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal participants: - id: 1 firstName: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal - id: 2 firstName: Bobbo lastName: Acme primaryEmailAddress: bobbo@stackshare.io 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: wile.e@coyote.com person: id: 1 firstName: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal to: - emailAddress: bobbo@acme.co person: id: 2 firstName: Bobbo lastName: Acme primaryEmailAddress: bobbo@stackshare.io 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: wile.e@coyote.com person: id: 1 firstName: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal to: - emailAddress: bobbo@acme.co person: id: 2 firstName: Bobbo lastName: Acme primaryEmailAddress: bobbo@stackshare.io 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: wile.e@coyote.com person: id: 1 firstName: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal - emailAddress: bobbo@acme.co person: id: 2 firstName: Bobbo lastName: Acme primaryEmailAddress: bobbo@stackshare.io 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: wile.e@coyote.com person: id: 1 firstName: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal - emailAddress: bobbo@acme.co person: id: 2 firstName: Bobbo lastName: Acme primaryEmailAddress: bobbo@stackshare.io type: external - id: source-of-introduction type: relationship-intelligence enrichmentSource: null name: Source of Introduction value: type: person data: id: 3 firstName: Yosemite lastName: Sam primaryEmailAddress: yosemite@sam.com type: internal creatorId: 1 createdAt: '2023-01-01T00:00:00Z' - id: 2 type: company listId: 1 entity: id: 2 name: Umbrella Corporation domain: umbrella.co domains: - umbrella.co 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: Oswell E. lastName: Spencer primaryEmailAddress: oswell.e.spencer@umbrella.co 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: oswell.e.spencer@umbrella.co person: id: 5 firstName: Oswell E. lastName: Spencer primaryEmailAddress: oswell.e.spencer@umbrella.co 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: oswell.e.spencer@umbrella.co person: id: 5 firstName: Oswell E. lastName: Spencer primaryEmailAddress: oswell.e.spencer@umbrella.co 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: Oswell E. lastName: Spencer primaryEmailAddress: oswell.e.spencer@umbrella.co 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: oswell.e.spencer@umbrella.co person: id: 5 firstName: Oswell E. lastName: Spencer primaryEmailAddress: oswell.e.spencer@umbrella.co 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: oswell.e.spencer@umbrella.co person: id: 5 firstName: Oswell E. lastName: Spencer primaryEmailAddress: oswell.e.spencer@umbrella.co 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: oswell.e.spencer@umbrella.co person: id: 5 firstName: Oswell E. lastName: Spencer primaryEmailAddress: oswell.e.spencer@umbrella.co 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: oswell.e.spencer@umbrella.co person: id: 5 firstName: Oswell E. lastName: Spencer primaryEmailAddress: oswell.e.spencer@umbrella.co type: external - id: source-of-introduction type: relationship-intelligence enrichmentSource: null name: Source of Introduction value: type: person data: id: 3 firstName: Albert lastName: Wesker primaryEmailAddress: albert.wesker@umbrella.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: Acme domain: acme.co domains: - acme.co 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: Umbrella Corporation domain: umbrella.co domains: - umbrella.co 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 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: Acme domain: acme.co domains: - acme.co isGlobal: true fields: - id: affinity-data-description name: Description type: enriched enrichmentSource: affinity-data value: type: text data: Acme is a mega-corporation that manufactures everything from anvils to earthquake pills. - id: affinity-data-industry name: Industry type: enriched enrichmentSource: affinity-data value: type: filterable-text-multi data: - Aerospace - Construction - Consumer Goods - 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: - Marvin Acme - Yosemite Sam - 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/acme - 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: Acme domain: acme.co domains: - acme.co 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: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal participants: - id: 1 firstName: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal - id: 2 firstName: Bobbo lastName: Acme primaryEmailAddress: bobbo@stackshare.io 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: wile.e@coyote.com person: id: 1 firstName: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal to: - emailAddress: bobbo@acme.co person: id: 2 firstName: Bobbo lastName: Acme primaryEmailAddress: bobbo@stackshare.io 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: wile.e@coyote.com person: id: 1 firstName: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal - emailAddress: bobbo@acme.co person: id: 2 firstName: Bobbo lastName: Acme primaryEmailAddress: bobbo@stackshare.io 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: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal participants: - id: 1 firstName: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal - id: 2 firstName: Bobbo lastName: Acme primaryEmailAddress: bobbo@stackshare.io 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: wile.e@coyote.com person: id: 1 firstName: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal to: - emailAddress: bobbo@acme.co person: id: 2 firstName: Bobbo lastName: Acme primaryEmailAddress: bobbo@stackshare.io 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: wile.e@coyote.com person: id: 1 firstName: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal to: - emailAddress: bobbo@acme.co person: id: 2 firstName: Bobbo lastName: Acme primaryEmailAddress: bobbo@stackshare.io 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: wile.e@coyote.com person: id: 1 firstName: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal - emailAddress: bobbo@acme.co person: id: 2 firstName: Bobbo lastName: Acme primaryEmailAddress: bobbo@stackshare.io 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: wile.e@coyote.com person: id: 1 firstName: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal - emailAddress: bobbo@acme.co person: id: 2 firstName: Bobbo lastName: Acme primaryEmailAddress: bobbo@stackshare.io type: external - id: source-of-introduction type: relationship-intelligence enrichmentSource: null name: Source of Introduction value: type: person data: id: 3 firstName: Yosemite lastName: Sam primaryEmailAddress: yosemite@sam.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: Acme domain: acme.co domains: - acme.co 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: Acme is a mega-corporation that manufactures everything from anvils to earthquake pills. - id: affinity-data-industry name: Industry type: enriched enrichmentSource: affinity-data value: type: filterable-text-multi data: - Aerospace - Construction - Consumer Goods - 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: - Marvin Acme - Yosemite Sam - 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/acme - 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: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal participants: - id: 1 firstName: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal - id: 2 firstName: Bobbo lastName: Acme primaryEmailAddress: bobbo@stackshare.io 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: wile.e@coyote.com person: id: 1 firstName: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal to: - emailAddress: bobbo@acme.co person: id: 2 firstName: Bobbo lastName: Acme primaryEmailAddress: bobbo@stackshare.io 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: wile.e@coyote.com person: id: 1 firstName: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal - emailAddress: bobbo@acme.co person: id: 2 firstName: Bobbo lastName: Acme primaryEmailAddress: bobbo@stackshare.io 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: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal participants: - id: 1 firstName: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal - id: 2 firstName: Bobbo lastName: Acme primaryEmailAddress: bobbo@stackshare.io 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: wile.e@coyote.com person: id: 1 firstName: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal to: - emailAddress: bobbo@acme.co person: id: 2 firstName: Bobbo lastName: Acme primaryEmailAddress: bobbo@stackshare.io 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: wile.e@coyote.com person: id: 1 firstName: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal to: - emailAddress: bobbo@acme.co person: id: 2 firstName: Bobbo lastName: Acme primaryEmailAddress: bobbo@stackshare.io 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: wile.e@coyote.com person: id: 1 firstName: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal - emailAddress: bobbo@acme.co person: id: 2 firstName: Bobbo lastName: Acme primaryEmailAddress: bobbo@stackshare.io 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: wile.e@coyote.com person: id: 1 firstName: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal - emailAddress: bobbo@acme.co person: id: 2 firstName: Bobbo lastName: Acme primaryEmailAddress: bobbo@stackshare.io type: external - id: source-of-introduction type: relationship-intelligence enrichmentSource: null name: Source of Introduction value: type: person data: id: 3 firstName: Yosemite lastName: Sam primaryEmailAddress: yosemite@sam.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 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: list enrichmentSource: null value: type: company data: id: 1 name: Acme domain: acme.co company-multi: description: Example response on a field with a company-multi value. value: id: field-2 name: Field with company-multi value type: list enrichmentSource: null value: type: company-multi data: - id: 1 name: Acme domain: acme.co - id: 2 name: Umbrella Corporation domain: umbrella.co datetime: 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: 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: 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: Option 1 - dropdownOptionId: 2 text: Option 2 filterable-text: 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: 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: - A text value - Another text value formula-number: 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: 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: wile.e@coyote.com person: id: 1 firstName: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal - emailAddress: bobbo@acme.co person: id: 2 firstName: Bobbo lastName: Acme primaryEmailAddress: bobbo@stackshare.io type: external location: 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 location-multi: description: Example response on a field with a location-multi value. value: id: field-11 name: Field with location-multi value type: list enrichmentSource: null 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: 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: 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: - 100 - 200 - 300 person: 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: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal person-multi: description: Example response on a field with a person-multi value. value: id: field-15 name: Field with person-multi value type: list enrichmentSource: null value: type: person-multi data: - id: 1 firstName: Wile E. lastName: Coyote primaryEmailAddress: wile.e@coyote.com type: internal - id: 2 firstName: Bobbo lastName: Acme primaryEmailAddress: bobbo@stackshare.io 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: list 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: list enrichmentSource: null value: type: text data: Hello company-2: description: Example response on a field with a company value. value: value: type: company data: id: 1 company-multi-2: description: Example response on a field with a company-multi value. value: value: type: company-multi data: - id: 1 - id: 2 datetime-2: description: Example response on a field with a datetime value. value: value: type: datetime data: '2023-01-01T00:00:00Z' dropdown-2: description: Example response on a field with a dropdown value. value: value: type: dropdown data: dropdownOptionId: 1 dropdown-multi-2: description: Example response on a field with a dropdown-multi value. value: value: type: dropdown-multi data: - dropdownOptionId: 1 - dropdownOptionId: 2 filterable-text-2: description: Example response on a field with a filterable-text value. value: value: type: filterable-text data: A text value filterable-text-multi-2: 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-2: 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-2: 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-2: description: Example response on a field with a number value. value: value: type: number data: 100 number-multi-2: description: Example response on a field with a number-multi value. value: value: type: number-multi data: - 100 - 200 - 300 person-2: description: Example response on a field with a person value. value: value: type: person data: id: 1 person-multi-2: description: Example response on a field with a person-multi value. value: value: type: person-multi data: - id: 1 - id: 2 ranked-dropdown-2: description: Example response on a field with a ranked-dropdown value. value: value: type: ranked-dropdown data: dropdownOptionId: 1 text-2: description: Example response on a field with a text value. value: value: type: text data: Some new text 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 - id: affinity-data-industry name: Industry type: enriched valueType: filterable-text-multi enrichmentSource: affinity-data - id: affinity-data-investment-stage name: Investment Stage type: enriched valueType: filterable-text enrichmentSource: affinity-data - id: affinity-data-investors name: Investors type: enriched valueType: filterable-text-multi enrichmentSource: affinity-data - id: affinity-data-last-funding-amount name: Last Funding Amount (USD) type: enriched valueType: number enrichmentSource: affinity-data - id: affinity-data-last-funding-date name: Last Funding Date type: enriched valueType: datetime enrichmentSource: affinity-data - id: affinity-data-linkedin-url name: LinkedIn URL type: enriched valueType: text enrichmentSource: affinity-data - id: affinity-data-location name: Location type: enriched valueType: location enrichmentSource: affinity-data - id: affinity-data-number-of-employees name: Number of Employees type: enriched valueType: number enrichmentSource: affinity-data - id: affinity-data-total-funding-amount name: Total Funding Amount (USD) type: enriched valueType: number enrichmentSource: affinity-data - id: affinity-data-year-founded name: Year Founded type: enriched valueType: number enrichmentSource: affinity-data - id: field-1 name: Custom global field type: global valueType: text enrichmentSource: null - id: field-2 name: Custom list field type: list valueType: text enrichmentSource: null - id: first-chat-message name: First Chat Message type: relationship-intelligence valueType: interaction enrichmentSource: null - id: first-email name: First Email type: relationship-intelligence valueType: interaction enrichmentSource: null - id: first-event name: First Event type: relationship-intelligence valueType: interaction enrichmentSource: null - id: last-chat-message name: Last Chat Message type: relationship-intelligence valueType: interaction enrichmentSource: null - id: last-contact name: Last Contact type: relationship-intelligence valueType: interaction enrichmentSource: null - id: last-email name: Last Email type: relationship-intelligence valueType: interaction enrichmentSource: null - id: last-event name: Last Event type: relationship-intelligence valueType: interaction enrichmentSource: null - id: next-event name: Next Event type: relationship-intelligence valueType: interaction enrichmentSource: null - id: source-of-introduction name: Source of Introduction type: relationship-intelligence valueType: person enrichmentSource: null 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 - id: affinity-data-current-organization name: Current Organization type: enriched valueType: company enrichmentSource: affinity-data - id: affinity-data-industry name: Industry type: enriched valueType: filterable-text-multi enrichmentSource: affinity-data - id: affinity-data-job-titles name: Job Titles type: enriched valueType: filterable-text-multi enrichmentSource: affinity-data - id: affinity-data-location name: Location type: enriched valueType: location enrichmentSource: affinity-data - id: affinity-data-linkedin-url name: LinkedIn URL type: enriched valueType: text enrichmentSource: affinity-data - id: affinity-data-phone-number name: Phone Number type: enriched valueType: filterable-text-multi enrichmentSource: affinity-data - id: companies name: Organizations type: list valueType: company-multi enrichmentSource: null - id: field-1 name: Custom global field type: global valueType: text enrichmentSource: null - id: field-2 name: Custom list field type: list valueType: text enrichmentSource: null - id: first-chat-message name: First Chat Message type: relationship-intelligence valueType: interaction enrichmentSource: null - id: first-email name: First Email type: relationship-intelligence valueType: interaction enrichmentSource: null - id: first-event name: First Event type: relationship-intelligence valueType: interaction enrichmentSource: null - id: last-chat-message name: Last Chat Message type: relationship-intelligence valueType: interaction enrichmentSource: null - id: last-contact name: Last Contact type: relationship-intelligence valueType: interaction enrichmentSource: null - id: last-email name: Last Email type: relationship-intelligence valueType: interaction enrichmentSource: null - id: last-event name: Last Event type: relationship-intelligence valueType: interaction enrichmentSource: null - id: next-event name: Next Event type: relationship-intelligence valueType: interaction enrichmentSource: null - id: source-of-introduction name: Source of Introduction type: relationship-intelligence valueType: person enrichmentSource: null 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 - id: field-2 name: Custom list field type: list valueType: text enrichmentSource: null - id: first-chat-message name: First Chat Message type: relationship-intelligence valueType: interaction enrichmentSource: null - id: first-email name: First Email type: relationship-intelligence valueType: interaction enrichmentSource: null - id: first-event name: First Event type: relationship-intelligence valueType: interaction enrichmentSource: null - id: last-chat-message name: Last Chat Message type: relationship-intelligence valueType: interaction enrichmentSource: null - id: last-contact name: Last Contact type: relationship-intelligence valueType: interaction enrichmentSource: null - id: last-email name: Last Email type: relationship-intelligence valueType: interaction enrichmentSource: null - id: last-event name: Last Event type: relationship-intelligence valueType: interaction enrichmentSource: null - id: next-event name: Next Event type: relationship-intelligence valueType: interaction enrichmentSource: null - id: persons name: People type: list valueType: person-multi enrichmentSource: null pagination: prevUrl: https://api.affinity.co/v2/lists/3/fields?cursor=ICAgICAgYmVmb3JlOjo6Nw nextUrl: https://api.affinity.co/v2/lists/3/fields?cursor=ICAgICAgIGFmdGVyOjo6NA ai-notetaker: x-stability-level: beta description: Example response for AI Notetaker notes. value: data: - id: 1 type: ai-notetaker content: html:

This is an AI Notetaker note!

creator: id: 1 firstName: Jane lastName: Doe primaryEmailAddress: jane.doe@acme.co type: internal mentions: [] createdAt: '2023-01-01T00:00:00Z' updatedAt: '2023-01-21T00:00:00Z' - id: 2 type: ai-notetaker content: html:

This is another AI Notetaker note!

creator: id: 1 firstName: Jane lastName: Doe primaryEmailAddress: jane.doe@acme.co 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 entities: x-stability-level: beta description: Example response for entity notes. value: data: - id: 1 type: entities content: html:

This is a note! John Doe

creator: id: 1 firstName: Jane lastName: Doe primaryEmailAddress: jane.doe@acme.co type: internal mentions: - id: 1 type: person person: id: 2 firstName: John lastName: Doe primaryEmailAddress: john.doe@acme.co type: internal createdAt: '2023-01-01T00:00:00Z' updatedAt: '2023-01-21T00:00:00Z' - id: 2 type: entities content: html:

This is another note!

creator: id: 1 firstName: Jane lastName: Doe primaryEmailAddress: jane.doe@acme.co 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-2: x-stability-level: beta description: Example response for interaction notes. value: data: - id: 1 type: interaction content: html:

This is a call note!

Jane Doe creator: id: 1 firstName: Jane lastName: Doe primaryEmailAddress: jane.doe@acme.co type: internal mentions: - id: 1 type: person person: id: 1 firstName: Jane lastName: Doe primaryEmailAddress: jane.doe@acme.co 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:

This is a meeting note!

creator: id: 1 firstName: Jane lastName: Doe primaryEmailAddress: jane.doe@acme.co type: internal mentions: [] createdAt: '2023-02-01T00:00:00Z' updatedAt: null interaction: id: 1 type: meeting - id: 3 type: interaction content: html:

This is an email note!

creator: id: 1 firstName: Jane lastName: Doe primaryEmailAddress: jane.doe@acme.co type: internal mentions: [] createdAt: '2023-02-01T00:00:00Z' updatedAt: null interaction: id: 1 type: email - id: 4 type: interaction content: html:

This is a chat message note!

creator: id: 1 firstName: Jane lastName: Doe primaryEmailAddress: jane.doe@acme.co 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 ai-notetaker-2: x-stability-level: beta description: Example response for an AI Notetaker note. value: id: 1 type: ai-notetaker content: html:

This is an AI Notetaker note!

creator: id: 1 firstName: Jane lastName: Doe primaryEmailAddress: jane.doe@acme.co type: internal mentions: [] createdAt: '2023-01-01T00:00:00Z' updatedAt: '2023-01-21T00:00:00Z' ai-notetaker-reply: x-stability-level: beta description: Example response for an AI Notetaker note reply. value: id: 2 type: ai-notetaker-reply content: html:

This is an AI Notetaker reply note!

creator: id: 1 firstName: Jane lastName: Doe primaryEmailAddress: jane.doe@acme.co type: internal mentions: [] parent: id: 1 createdAt: '2023-01-01T00:00:00Z' updatedAt: '2023-01-21T00:00:00Z' entities-2: x-stability-level: beta description: Example response for an entities note. value: id: 1 type: entities content: html:

This is a note! John Doe was mentioned.

creator: id: 1 firstName: Jane lastName: Doe primaryEmailAddress: jane.doe@acme.co type: internal mentions: - id: 1 type: person person: id: 2 firstName: John lastName: Doe primaryEmailAddress: john.doe@acme.co type: internal createdAt: '2023-01-01T00:00:00Z' updatedAt: '2023-01-21T00:00:00Z' interaction-3: x-stability-level: beta description: Example response for an interaction note. value: id: 1 type: interaction content: html:

This is a note! John Doe was mentioned.

creator: id: 1 firstName: Jane lastName: Doe primaryEmailAddress: jane.doe@acme.co type: internal mentions: - id: 1 type: person person: id: 2 firstName: John lastName: Doe primaryEmailAddress: john.doe@acme.co type: internal createdAt: '2023-01-01T00:00:00Z' updatedAt: '2023-01-21T00:00:00Z' interaction: id: 2 type: call user-reply: x-stability-level: beta description: Example response for a user reply note. value: id: 2 type: user-reply content: html:

This reply note was added manually by a user. John Doe was mentioned.

creator: id: 1 firstName: Jane lastName: Doe primaryEmailAddress: jane.doe@acme.co type: internal mentions: - id: 1 type: person person: id: 2 firstName: John lastName: Doe primaryEmailAddress: john.doe@acme.co type: internal parent: id: 1 createdAt: '2023-01-01T00:00:00Z' updatedAt: '2023-01-21T00:00:00Z' success-2: x-stability-level: beta description: Example response on fetching opportunities attached to a note. value: data: - id: 1 name: Opp Name listId: 1000 - id: 2 name: Another Opp Name listId: 1001 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-2: x-stability-level: beta value: data: - id: 2 type: user-reply content: html:

This is a user reply note. John Doe was mentioned.

creator: id: 1 firstName: Jane lastName: Doe primaryEmailAddress: jane.doe@acme.co type: internal mentions: - id: 1 type: person person: id: 1 firstName: John lastName: Doe primaryEmailAddress: john.doe@acme.co type: internal parent: id: 1 createdAt: '2023-01-01T00:00:00Z' updatedAt: '2023-02-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: x-stability-level: beta value: data: - id: 2 type: ai-notetaker-reply content: html:

This is an AI Notetaker reply note. John Doe was mentioned.

creator: id: 1 firstName: Jane lastName: Doe primaryEmailAddress: jane.doe@acme.co type: internal mentions: - id: 1 type: person person: id: 1 firstName: John lastName: Doe primaryEmailAddress: john.doe@acme.co type: internal parent: id: 1 createdAt: '2023-01-01T00:00:00Z' updatedAt: '2023-02-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-3: x-stability-level: beta value: data: - id: 1 type: entities content: html:

test

%

creator: id: 1 firstName: Jane lastName: Doe primaryEmailAddress: jane.doe@acme.co type: internal mentions: - id: 1 type: person person: id: 1 firstName: Jane lastName: Doe primaryEmailAddress: jane.doe@acme.co type: internal createdAt: '2023-01-01T00:00:00Z' updatedAt: '2023-01-01T00:00:00Z' permissions: sharingType: private owner: id: 1 firstName: Jane lastName: Doe primaryEmailAddress: jane.doe@acme.co type: internal pagination: prevUrl: https://api.affinity.co/v2/persons/1/notes?cursor=ICAgICAgYmVmb3JlOjo6Nw nextUrl: https://api.affinity.co/v2/persons/1/notes?cursor=ICAgICAgIGFmdGVyOjo6NA interaction-4: x-stability-level: beta value: data: - id: 1 type: interaction content: html:

test

%

creator: id: 1 firstName: Jane lastName: Doe primaryEmailAddress: jane.doe@acme.co type: internal mentions: - id: 1 type: person person: id: 1 firstName: Jane lastName: Doe primaryEmailAddress: jane.doe@acme.co type: internal createdAt: '2023-01-01T00:00:00Z' updatedAt: '2023-01-01T00:00:00Z' permissions: sharingType: private owner: id: 1 firstName: Jane lastName: Doe primaryEmailAddress: jane.doe@acme.co type: internal interaction: id: 2 type: call 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-3: x-stability-level: beta value: data: - id: 1 type: ai-notetaker content: html:

test

%

creator: id: 1 firstName: Jane lastName: Doe primaryEmailAddress: jane.doe@acme.co type: internal mentions: - id: 1 type: person person: id: 1 firstName: Jane lastName: Doe primaryEmailAddress: jane.doe@acme.co type: internal createdAt: '2023-01-01T00:00:00Z' updatedAt: '2023-01-01T00:00:00Z' permissions: sharingType: private owner: id: 1 firstName: Jane lastName: Doe primaryEmailAddress: jane.doe@acme.co type: internal pagination: prevUrl: https://api.affinity.co/v2/persons/1/notes?cursor=ICAgICAgYmVmb3JlOjo6Nw nextUrl: https://api.affinity.co/v2/persons/1/notes?cursor=ICAgICAgIGFmdGVyOjo6NA merges-list-2: x-stability-level: beta 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: x-stability-level: beta 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: x-stability-level: beta 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: x-stability-level: beta 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: x-stability-level: beta 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: x-stability-level: beta 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 tasks-list: x-stability-level: beta 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-in-progress: x-stability-level: beta 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: x-stability-level: beta 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 task-failed: x-stability-level: beta 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: x-stability-level: beta 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-success-2: x-stability-level: beta 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 parameters: notes.includes: x-stability-level: beta 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: x-stability-level: beta 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