January 30th, 2026
- The following endpoints are no longer in BETA:
| Method | URL | Summary |
|---|---|---|
| GET | /v2/notes | Get all Notes |
| GET | /v2/notes/{noteId} | Get a Note with a given id |
| GET | /v2/notes/{noteId}/attached-companies | Get directly attached companies for a Note |
| GET | /v2/notes/{noteId}/attached-opportunities | Get directly attached opportunities for a Note |
| GET | /v2/notes/{noteId}/attached-persons | Get directly attached persons for a Note |
| GET | /v2/notes/{noteId}/replies | Get reply notes for a given Note |
January 26th, 2026
- Added the following endpoints in BETA:
| Method | URL | Summary |
|---|---|---|
| GET | /v2/transcripts | Get All Transcripts |
| GET | /v2/transcripts/{transcriptId} | Get Transcript |
| GET | /v2/transcripts/{transcriptId}/fragments | Get Fragments on a single Transcript |
January 14th, 2026
- Rate limit response headers have been updated to use lowercase formatting. This change affects all API endpoints. The new lowercase headers are:
| Header | Description |
|---|---|
| x-ratelimit-limit-user | Number of requests allowed per minute for the user |
| x-ratelimit-limit-user-remaining | Number of requests remaining for the user |
| x-ratelimit-limit-user-reset | Time in seconds before the limit resets for the user |
| x-ratelimit-limit-org | Number of requests allowed per month for the account |
| x-ratelimit-limit-org-remaining | Number of requests remaining for the account |
| x-ratelimit-limit-org-reset | Time in seconds before the limit resets for the account |
January 1st, 2026
- Handling timestamps for date fields. Affinity is standardizing how dates are represented across the platform to ensure consistency between the application and the API. Starting January 1st, 2026, the API will change how it handles timestamps for date fields. Today, timestamps sent to date fields over the API are not visible to users in any CRM interface. After this change, the API will ignore any time information included in requests, storing and returning values at midnight Pacific Time (PT) on the submitted date.
- API request includes:
2024-04-01T15:30:00Z - Affinity will store and return:
2024-04-01T07:00:00.000Z(equivalent to midnight PT)
September 25th, 2025
- Added the following endpoints in BETA:
| Method | URL | Summary |
|---|---|---|
| GET | /v2/company-merges | Get All Company Merge status |
| POST | /v2/company-merges | Initiate Company Merge |
| GET | /v2/company-merges/{mergeId} | Get Company Merge status |
| GET | /v2/tasks/company-merges | Get All Company Merge Tasks |
| GET | /v2/tasks/company-merges/{taskId} | Get Company Merge Task |
July 30th, 2025
- Added the following endpoints in BETA:
| Method | URL | Summary |
|---|---|---|
| GET | /v2/person-merges | Get All Person Merge status |
| POST | /v2/person-merges | Initiate Person Merge |
| GET | /v2/person-merges/{mergeId} | Get Person Merge status |
| GET | /v2/tasks/person-merges | Get All Person Merge Tasks |
| GET | /v2/tasks/person-merges/{taskId} | Get Person Merge Task |
| GET | /v2/notes | Get all Notes |
| GET | /v2/notes/{noteId} | Get a Note with a given id |
| GET | /v2/notes/{noteId}/attached-companies | Get directly attached companies for a Note |
| GET | /v2/notes/{noteId}/attached-opportunities | Get directly attached opportunities for a Note |
| GET | /v2/notes/{noteId}/attached-persons | Get directly attached persons for a Note |
| GET | /v2/notes/{noteId}/replies | Get reply notes for a given Note |
May 14th, 2025
- Renamed all path parameters named simply “id” to a more descriptive name (eg. “personId”). This will not have any effect on the API at runtime, but may impact code relying on the OpenAPI spec doing type generation.
April 9th, 2025
- The following endpoints are no longer in BETA:
| Method | URL | Summary |
|---|---|---|
| GET | /v2/lists/{listId}/list-entries/{listEntryId} | Get a single List Entry on a List |
| GET | /v2/lists/{listId}/list-entries/{listEntryId}/fields | Get field values on a single List Entry |
| PATCH | /v2/lists/{listId}/list-entries/{listEntryId}/fields | Perform batch operations on a list entry’s fields |
| GET | /v2/lists/{listId}/list-entries/{listEntryId}/fields/{fieldId} | Get a single field value |
| POST | /v2/lists/{listId}/list-entries/{listEntryId}/fields/{fieldId} | Update a single field value on a List Entry |
March 31st, 2025
- The following beta endpoints now support updating association fields.
| Method | URL | Summary |
|---|---|---|
| PATCH | /v2/lists/{listId}/list-entries/{listEntryId}/fields | Perform batch operations on a list entry’s fields |
| POST | /v2/lists/{listId}/list-entries/{listEntryId}/fields/{fieldId} | Update a single field value on a List Entry |
February 28th, 2025
- Added the following endpoints in BETA:
| Method | URL | Summary |
|---|---|---|
| GET | /v2/lists/{listId}/list-entries/{listEntryId} | Get a single List Entry on a List |
| GET | /v2/lists/{listId}/list-entries/{listEntryId}/fields | Get field values on a single List Entry |
| PATCH | /v2/lists/{listId}/list-entries/{listEntryId}/fields | Perform batch operations on a list entry’s fields |
| GET | /v2/lists/{listId}/list-entries/{listEntryId}/fields/{fieldId} | Get a single field value |
| POST | /v2/lists/{listId}/list-entries/{listEntryId}/fields/{fieldId} | Update a single field value on a List Entry |
January 17th, 2025
- Document
X-Ratelimitheaders in the schema for all endpoints.
January 15th, 2025
- Add default responses to all endpoints to document all possible error codes that can be returned by the API.
- Updated 400 error responses to correctly include the
bad-requesterror code as a possible error.
December 3rd, 2024
- Properly document
listIdproperty onCompanyListEntry,PersonListEntry, andOpportunityListEntryschemas.
September 25th, 2024
- Upgrade schema to OpenAPI 3.1
August 5, 2024
- Correct
opptoopportunityto match documentation for theListtypeproperty.
July 24, 2024
- More accurate documentation for response properties that are enums — Enums with
nullas a possible value will have it listed as one.
March 25, 2024
- Added the ability to retrieve the date and other details of your firm’s “First Email”, “Last Email”, “First Event”, “Last Event”, “Next Event”, “First Chat Message”, “Last Chat Message”, and “Last Contact” with a given entity. Use these timestamps to add relationship context to your applications, and to identify founders and companies that need investors’ attention.
- Endpoints that previously required a
fieldIdsparameter to return field data, now accept eitherfieldIdsorfieldTypes, and will return field data accordingly. See the Specifying Desired Fields (Field Selection) section of these docs for more information. The newfieldTypesparameter should make field data retrieval easier for users looking to pull data from many similar Fields at a time.
January 4, 2023
- Most endpoints that return field data now require the user to use the
fieldIdsparameter to specify which Fields they want data for. WithoutfieldIdsspecified, these endpoints will return basic entity data but not field data.
December 12, 2023
- Added the ability to retrieve metadata (e.g. ID, name, type, enrichment source, and data type) on Fields. See the Retrieving Field Metadata section of these docs for more information.