Dotdigital API Contact API

The ApiContact API from Dotdigital — 43 operation(s) for apicontact.

Operations 54

GET /v2/contacts/suppressed-since/{date} Gets a list of suppressed contacts after a given date along with the reason for suppression. #
GET /v2/contacts/unsubscribed-since/{date} Gets a list of unsubscribed contacts who unsubscribed after a given date. #
GET /v2/contacts/modified-since/{date} Gets a list of modified contacts after a specified date. #
GET /v2/contacts/created-since/{date} Gets a list of created contacts after a specified date. #
GET /v2/contacts Gets a list of all contacts in the account. #
POST /v2/contacts Creates a contact. #
GET /v2/contacts/{id} Gets a contact by ID. Unsubscribed or suppressed contacts will not be retrieved. #
PUT /v2/contacts/{id} Updates a contact. #
DELETE /v2/contacts/{id} Deletes a contact. #
GET /v2/contacts/{id}/with-consent Gets a contact by ID with consent records. #
PUT /v2/contacts/{id}/with-consent Updates a contact with consent records. #
GET /v2/contacts/{email} Gets a contact by email address. #
GET /v2/contacts/{email}/with-consent Gets a contact by email address with consent records. #
POST /v2/contacts/with-consent Creates a contact with consent records. #
POST /v2/contacts/with-consent-and-preferences Creates a contact with consent and preference records. #
PUT /v2/contacts/{id}/with-consent-and-preferences Updates a contact with consent and preference records. #
DELETE /v2/address-books/{addressBookId}/contacts/{contactId} Deletes a contact from a given list. #
DELETE /v2/address-books/{addressBookId}/contacts Deletes all contacts from a given list. #
GET /v2/address-books/{addressBookId}/contacts Gets a list of contacts in a given list. #
POST /v2/address-books/{addressBookId}/contacts Adds a contact to a given list. #
POST /v2/address-books/{addressBookId}/contacts/delete-all Deletes all contacts from a given list. #
POST /v2/address-books/{addressBookId}/contacts/delete Deletes multiple contacts from a list. This will run in the background, and for larger lists may take some minutes to fully delete. #
GET /v2/contacts/deletion/{deletionRequestId} Gets the status of a previously started request to delete contacts from a list. #
GET /v2/address-books/{addressBookId}/contacts/modified-since/{date} Gets a list of contacts who were modified since a given date, in a given list. #
GET /v2/address-books/{addressBookId}/contacts/unsubscribed-since/{date} Gets a list of contacts who have unsubscribed from a given list. #
POST /v2/contacts/unsubscribe Unsubscribes contact from account. #
PUT /v2/contacts/suppress-contacts Suppresses a batch of contacts from account. #
POST /v2/address-books/{addressBookId}/contacts/unsubscribe Unsubscribes contact from a given list. #
POST /v2/contacts/resubscribe Resubscribes a previously unsubscribed contact. #
POST /v2/contacts/resubscribe-with-no-challenge Resubscribes a previously unsubscribed contact with no challenge. #
POST /v2/address-books/{addressBookId}/contacts/resubscribe Resubscribes a previously unsubscribed contact to a given list. #
POST /v2/address-books/{addressBookId}/contacts/resubscribe-with-no-challenge Resubscribes a previously unsubscribed contact to a given list with no challenge. #
POST /v2/contacts/transactional-data/{collectionName} Adds a single piece of transactional data to a contact. #
GET /v2/contacts/transactional-data/{collectionName} #
POST /v2/contacts/transactional-data/import/{collectionName} Adds multiple pieces of transactional data to contacts asynchronously, returning an identifier that can be used to check for import progress. #
GET /v2/contacts/transactional-data/import/{importId} Gets the import status of a previously started transactional import. #
GET /v2/contacts/transactional-data/import/{importId}/report Gets a report with statistics about what was successfully imported, and what was unable to be imported. #
POST /v2/contacts/transactional-data/{collectionName}/{key} Replaces a piece of transactional data by key (logicall equivalent to a delete and an insert). #
DELETE /v2/contacts/transactional-data/{collectionName}/{key} Deletes a piece of transactional data by key. #
GET /v2/contacts/transactional-data/{collectionName}/{key} Gets a piece of transactional data by key. #
PUT /v2/contacts/transactional-data/{collectionName}/empty Removes all items from a transactional data collection. #
DELETE /v2/contacts/{id}/transactional-data/{collectionName} Deletes all transactional data for a contact. #
GET /v2/contacts/{id}/transactional-data/{collectionName} Gets a list of all transactional data for a contact (100 most recent only). #
DELETE /v2/contacts/{email}/transactional-data/{collectionName} Deletes all transactional data for a contact. #
GET /v2/contacts/{email}/transactional-data/{collectionName} Gets a list of all transactional data for a contact (100 most recent only). #
GET /v2/transactional-data/{collectionName} Gets a list of account scoped transactional data for given collection #
GET /v2/contacts/transactional-data-collections Gets a list of transactional data collections. #
GET /v2/contacts/score Gets a list of contact scoring data. #
GET /v2/address-books/{addressBookId}/contacts/score Gets a list of contact scoring data in specified list. #
GET /v2/contacts/score/modified-since/{date} Gets a list of contact scoring data ordered by modified date. #
GET /v2/contacts/{email}/score Gets particular contact scoring data. #
GET /v2/contacts/{id}/score Gets particular contact scoring data. #
GET /v2/contacts/count Gets the total number of contacts in an account. #
GET /v2/contacts/retrieve-collection Gets a batch of contacts by ID or email address. #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/dotdigital-apicontact-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

dotdigital-apicontact-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: apiconnector.com API Contact API
  version: v2
servers:
- url: https://r1-api.dotdigital.com
tags:
- name: ApiContact
paths:
  /v2/contacts/suppressed-since/{date}:
    get:
      tags:
      - ApiContact
      summary: Gets a list of suppressed contacts after a given date along with the reason for suppression.
      operationId: ApiContact_GetSuppressedContacts
      parameters:
      - name: date
        in: path
        required: true
        schema:
          type: string
          format: date-time
        x-position: 1
      - name: select
        in: query
        schema:
          type: integer
          format: int32
          default: 1000
        x-position: 2
      - name: skip
        in: query
        schema:
          type: integer
          format: int32
          default: 0
        x-position: 3
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiContactSuppression'
  /v2/contacts/unsubscribed-since/{date}:
    get:
      tags:
      - ApiContact
      summary: Gets a list of unsubscribed contacts who unsubscribed after a given date.
      operationId: ApiContact_GetUnsubscribedContacts
      parameters:
      - name: date
        in: path
        required: true
        schema:
          type: string
          format: date-time
        x-position: 1
      - name: select
        in: query
        schema:
          type: integer
          format: int32
          default: 1000
        x-position: 2
      - name: skip
        in: query
        schema:
          type: integer
          format: int32
          default: 0
        x-position: 3
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiContactSuppression'
  /v2/contacts/modified-since/{date}:
    get:
      tags:
      - ApiContact
      summary: Gets a list of modified contacts after a specified date.
      operationId: ApiContact_GetModifiedContacts
      parameters:
      - name: date
        in: path
        required: true
        schema:
          type: string
          format: date-time
        x-position: 1
      - name: withFullData
        in: query
        schema:
          type: boolean
          default: false
        x-position: 2
      - name: select
        in: query
        schema:
          type: integer
          format: int32
          default: 2000
        x-position: 3
      - name: skip
        in: query
        schema:
          type: integer
          format: int32
          default: 0
        x-position: 4
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiContact'
  /v2/contacts/created-since/{date}:
    get:
      tags:
      - ApiContact
      summary: Gets a list of created contacts after a specified date.
      operationId: ApiContact_GetNewContacts
      parameters:
      - name: date
        in: path
        required: true
        schema:
          type: string
          format: date-time
        x-position: 1
      - name: withFullData
        in: query
        schema:
          type: boolean
          default: false
        x-position: 2
      - name: select
        in: query
        schema:
          type: integer
          format: int32
          default: 1000
        x-position: 3
      - name: skip
        in: query
        schema:
          type: integer
          format: int32
          default: 0
        x-position: 4
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiContact'
  /v2/contacts:
    get:
      tags:
      - ApiContact
      summary: Gets a list of all contacts in the account.
      operationId: ApiContact_GetContacts
      parameters:
      - name: withFullData
        in: query
        schema:
          type: boolean
          default: false
        x-position: 1
      - name: select
        in: query
        schema:
          type: integer
          format: int32
          default: 1000
        x-position: 2
      - name: skip
        in: query
        schema:
          type: integer
          format: int32
          default: 0
        x-position: 3
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiContact'
    post:
      tags:
      - ApiContact
      summary: Creates a contact.
      operationId: ApiContact_CreateContact
      requestBody:
        x-name: apiContact
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiContact'
        required: true
        x-position: 1
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiContact'
  /v2/contacts/{id}:
    get:
      tags:
      - ApiContact
      summary: Gets a contact by ID. Unsubscribed or suppressed contacts will not be retrieved.
      operationId: ApiContact_GetContactById
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int32
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiContact'
    put:
      tags:
      - ApiContact
      summary: Updates a contact.
      operationId: ApiContact_UpdateContact
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int32
        x-position: 1
      requestBody:
        x-name: apiContact
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiContact'
        required: true
        x-position: 2
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiContact'
    delete:
      tags:
      - ApiContact
      summary: Deletes a contact.
      operationId: ApiContact_DeleteContact
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int32
        x-position: 1
      responses:
        '204':
          description: ''
  /v2/contacts/{id}/with-consent:
    get:
      tags:
      - ApiContact
      summary: Gets a contact by ID with consent records.
      operationId: ApiContact_GetContactByIdWithConsent
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int32
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiContactWithConsent'
    put:
      tags:
      - ApiContact
      summary: Updates a contact with consent records.
      operationId: ApiContact_UpdateContact2
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int32
        x-position: 1
      requestBody:
        x-name: apiContactWithConsent
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiContactWithConsent'
        required: true
        x-position: 2
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiContactWithConsent'
  /v2/contacts/{email}:
    get:
      tags:
      - ApiContact
      summary: Gets a contact by email address.
      operationId: ApiContact_GetContactByEmail
      parameters:
      - name: email
        in: path
        required: true
        schema:
          type: string
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiContact'
  /v2/contacts/{email}/with-consent:
    get:
      tags:
      - ApiContact
      summary: Gets a contact by email address with consent records.
      operationId: ApiContact_GetContactByEmailWithConsent
      parameters:
      - name: email
        in: path
        required: true
        schema:
          type: string
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiContactWithConsent'
  /v2/contacts/with-consent:
    post:
      tags:
      - ApiContact
      summary: Creates a contact with consent records.
      operationId: ApiContact_CreateContactWithConsent
      requestBody:
        x-name: apiContactWithConsent
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiContactWithConsent'
        required: true
        x-position: 1
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiContactWithConsent'
  /v2/contacts/with-consent-and-preferences:
    post:
      tags:
      - ApiContact
      summary: Creates a contact with consent and preference records.
      operationId: ApiContact_CreateContactWithConsentAndPreferences
      requestBody:
        x-name: apiContactWithConsentAndPreferences
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiContactWithConsentAndPreferences'
        required: true
        x-position: 1
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiContactWithConsentAndPreferences'
  /v2/contacts/{id}/with-consent-and-preferences:
    put:
      tags:
      - ApiContact
      summary: Updates a contact with consent and preference records.
      operationId: ApiContact_UpdateContact3
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int32
        x-position: 1
      requestBody:
        x-name: apiContactWithConsentAndPreferences
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiContactWithConsentAndPreferences'
        required: true
        x-position: 2
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiContactWithConsentAndPreferences'
  /v2/address-books/{addressBookId}/contacts/{contactId}:
    delete:
      tags:
      - ApiContact
      summary: Deletes a contact from a given list.
      operationId: ApiContact_DeleteContactFromAddressBook
      parameters:
      - name: addressBookId
        in: path
        required: true
        schema:
          type: integer
          format: int32
        x-position: 1
      - name: contactId
        in: path
        required: true
        schema:
          type: integer
          format: int32
        x-position: 2
      responses:
        '204':
          description: ''
  /v2/address-books/{addressBookId}/contacts:
    delete:
      tags:
      - ApiContact
      summary: Deletes all contacts from a given list.
      operationId: ApiContact_DeleteAllContactsFromAddressBookWithoutProgress
      parameters:
      - name: addressBookId
        in: path
        required: true
        schema:
          type: integer
          format: int32
        x-position: 1
      responses:
        '204':
          description: ''
    get:
      tags:
      - ApiContact
      summary: Gets a list of contacts in a given list.
      operationId: ApiContact_GetContactsInAddressBook
      parameters:
      - name: addressBookId
        in: path
        required: true
        schema:
          type: integer
          format: int32
        x-position: 1
      - name: withFullData
        in: query
        schema:
          type: boolean
          default: false
        x-position: 2
      - name: select
        in: query
        schema:
          type: integer
          format: int32
          default: 1000
        x-position: 3
      - name: skip
        in: query
        schema:
          type: integer
          format: int32
          default: 0
        x-position: 4
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiContact'
    post:
      tags:
      - ApiContact
      summary: Adds a contact to a given list.
      operationId: ApiContact_AddContactToAddressBook
      parameters:
      - name: addressBookId
        in: path
        required: true
        schema:
          type: integer
          format: int32
        x-position: 1
      requestBody:
        x-name: apiContact
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiContact'
        required: true
        x-position: 2
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiContact'
  /v2/address-books/{addressBookId}/contacts/delete-all:
    post:
      tags:
      - ApiContact
      summary: Deletes all contacts from a given list.
      operationId: ApiContact_DeleteAllContactsFromAddressBook
      parameters:
      - name: addressBookId
        in: path
        required: true
        schema:
          type: integer
          format: int32
        x-position: 1
      responses:
        '202':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiBulkContactDeletion'
  /v2/address-books/{addressBookId}/contacts/delete:
    post:
      tags:
      - ApiContact
      summary: Deletes multiple contacts from a list. This will run in the background, and for larger lists may take some minutes to fully delete.
      operationId: ApiContact_DeleteContactsFromAddressBook
      parameters:
      - name: addressBookId
        in: path
        required: true
        schema:
          type: integer
          format: int32
        x-position: 1
      requestBody:
        x-name: contactIds
        content:
          application/json:
            schema:
              type: array
              items:
                type: integer
                format: int32
        required: true
        x-position: 2
      responses:
        '202':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiBulkContactDeletion'
  /v2/contacts/deletion/{deletionRequestId}:
    get:
      tags:
      - ApiContact
      summary: Gets the status of a previously started request to delete contacts from a list.
      operationId: ApiContact_GetBulkContactDeletionProgress
      parameters:
      - name: deletionRequestId
        in: path
        required: true
        schema:
          type: string
          format: guid
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiBulkContactDeletion'
  /v2/address-books/{addressBookId}/contacts/modified-since/{date}:
    get:
      tags:
      - ApiContact
      summary: Gets a list of contacts who were modified since a given date, in a given list.
      operationId: ApiContact_GetModifiedContactsInAddressBook
      parameters:
      - name: addressBookId
        in: path
        required: true
        schema:
          type: integer
          format: int32
        x-position: 1
      - name: date
        in: path
        required: true
        schema:
          type: string
          format: date-time
        x-position: 2
      - name: withFullData
        in: query
        schema:
          type: boolean
          default: false
        x-position: 3
      - name: select
        in: query
        schema:
          type: integer
          format: int32
          default: 2000
        x-position: 4
      - name: skip
        in: query
        schema:
          type: integer
          format: int32
          default: 0
        x-position: 5
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiContact'
  /v2/address-books/{addressBookId}/contacts/unsubscribed-since/{date}:
    get:
      tags:
      - ApiContact
      summary: Gets a list of contacts who have unsubscribed from a given list.
      operationId: ApiContact_GetUnsubscribedContactsInAddressBook
      parameters:
      - name: addressBookId
        in: path
        required: true
        schema:
          type: integer
          format: int32
        x-position: 1
      - name: date
        in: path
        required: true
        schema:
          type: string
          format: date-time
        x-position: 2
      - name: select
        in: query
        schema:
          type: integer
          format: int32
          default: 1000
        x-position: 3
      - name: skip
        in: query
        schema:
          type: integer
          format: int32
          default: 0
        x-position: 4
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiContactSuppression'
  /v2/contacts/unsubscribe:
    post:
      tags:
      - ApiContact
      summary: Unsubscribes contact from account.
      operationId: ApiContact_UnsubscribeContact
      requestBody:
        x-name: apiContact
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiContact'
        required: true
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiContactSuppression'
  /v2/contacts/suppress-contacts:
    put:
      tags:
      - ApiContact
      summary: Suppresses a batch of contacts from account.
      operationId: ApiContact_SuppressContacts
      requestBody:
        x-name: apiContacts
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/ApiContactIdAndEmail'
        required: true
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiBulkSuppressResponse'
  /v2/address-books/{addressBookId}/contacts/unsubscribe:
    post:
      tags:
      - ApiContact
      summary: Unsubscribes contact from a given list.
      operationId: ApiContact_UnsubscribeContactFromAddressBook
      parameters:
      - name: addressBookId
        in: path
        required: true
        schema:
          type: integer
          format: int32
        x-position: 1
      requestBody:
        x-name: apiContact
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiContact'
        required: true
        x-position: 2
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiContactSuppression'
  /v2/contacts/resubscribe:
    post:
      tags:
      - ApiContact
      summary: Resubscribes a previously unsubscribed contact.
      operationId: ApiContact_ResubscribeContact
      requestBody:
        x-name: apiContactResubscription
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiContactResubscription'
        required: true
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResubscribeResult'
  /v2/contacts/resubscribe-with-no-challenge:
    post:
      tags:
      - ApiContact
      summary: Resubscribes a previously unsubscribed contact with no challenge.
      operationId: ApiContact_ResubscribeContactWithNoChallenge
      requestBody:
        x-name: apiContactResubscription
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiContactResubscription'
        required: true
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResubscribeResult'
  /v2/address-books/{addressBookId}/contacts/resubscribe:
    post:
      tags:
      - ApiContact
      summary: Resubscribes a previously unsubscribed contact to a given list.
      operationId: ApiContact_ResubscribeContactToAddressBook
      parameters:
      - name: addressBookId
        in: path
        required: true
        schema:
          type: integer
          format: int32
        x-position: 1
      requestBody:
        x-name: apiContactResubscription
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiContactResubscription'
        required: true
        x-position: 2
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResubscribeResult'
  /v2/address-books/{addressBookId}/contacts/resubscribe-with-no-challenge:
    post:
      tags:
      - ApiContact
      summary: Resubscribes a previously unsubscribed contact to a given list with no challenge.
      operationId: ApiContact_ResubscribeContactToAddressBookWithNoChallenge
      parameters:
      - name: addressBookId
        in: path
        required: true
        schema:
          type: integer
          format: int32
        x-position: 1
      requestBody:
        x-name: apiContactResubscription
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiContactResubscription'
        required: true
        x-position: 2
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiResubscribeResult'
  /v2/contacts/transactional-data/{collectionName}:
    post:
      tags:
      - ApiContact
      summary: Adds a single piece of transactional data to a contact.
      operationId: ApiContact_AddTransactionalData
      parameters:
      - name: collectionName
        in: path
        required: true
        schema:
          type: string
        x-position: 1
      requestBody:
        x-name: apiTransactionalData
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiTransactionalData'
        required: true
        x-position: 2
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiTransactionalData'
    get:
      tags:
      - ApiContact
      operationId: ApiContact_GetTransactionalDataByCollectionFromId
      parameters:
      - name: collectionName
        in: path
        required: true
        schema:
          type: string
        x-position: 1
      - name: fromId
        in: query
        schema:
          type: string
        x-position: 2
      - name: take
        in: query
        schema:
          type: integer
          format: int32
        x-position: 3
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiTransactionalData'
  /v2/contacts/transactional-data/import/{collectionName}:
    post:
      tags:
      - ApiContact
      summary: Adds multiple pieces of transactional data to contacts asynchronously, returning an identifier that can be used to check for import progress.
      operationId: ApiContact_ImportTransactionalData
      parameters:
      - name: collectionName
        in: path
        required: true
        schema:
          type: string
        x-position: 1
      requestBody:
        x-name: apiTransactionalData
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/ApiTransactionalData'
        required: true
        x-position: 2
      responses:
        '202':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiTransactionalDataImport'
  /v2/contacts/transactional-data/import/{importId}:
    get:
      tags:
      - ApiContact
      summary: Gets the import status of a previously started transactional import.
      operationId: ApiContact_GetTransactionalDataImportProgress
      parameters:
      - name: importId
        in: path
        required: true
        schema:
          type: string
          format: guid
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiTransactionalDataImport'
  /v2/contacts/transactional-data/import/{importId}/report:
    get:
      tags:
      - ApiContact
      summary: Gets a report with statistics about what was successfully imported, and what was unable to be imported.
      operationId: ApiContact_GetTransactionalDataImportReport
      parameters:
      - name: importId
        in: path
        required: true
        schema:
          type: string
          format: guid
        x-position: 1
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiTransactionalDataImportReport'
  /v2/contacts/transactional-data/{collectionName}/{key}:
    post:
      tags:
      - ApiContact
      summary: Replaces a piece of transactional data by key (logicall equivalent to a delete and an insert).
      operationId: ApiContact_ReplaceTransactionalDataByKey
      parameters:
      - name: collectionName
        in: path
        required: true
        schema:
          type: string
        x-position: 1
      - name: key
        in: path
        required: true
        schema:
          type: string
        x-position: 2
      requestBody:
        x-name: apiJsonData
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiJsonData'
        required: true
        x-position: 3
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiTransactionalData'
    delete:
      tags:
      - ApiContact
      summary: Deletes a piece of transactional data by key.
      operationId: ApiContact_DeleteTransactionalDataByKey
      parameters:
      - name: collectionName
        in: path
        required: true
        schema:
          type: string
        x-position: 1
      - name: key
        in: path
        required: true
        schema:
          type: string
        x-position: 2
      responses:
        '204':
          description: ''
    get:
      tags:
      - ApiContact
      summary: Gets a piece of transactional data by key.
      operationId: ApiContact_GetTransactionalDataByKey
      parameters:
      - name: collectionName
        in: path
        required: true
        schema:
          type: string
        x-position: 1
      - name: key
        in: path
        required: true
        schema:
          type: string
        x-position: 2
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiTransactionalData'
  /v2/contacts/transactional-data/{collectionName}/empty:
    put:
      tags:
      - ApiContact
      summary: Removes all items from a transactional data collection.
      operationId: ApiContact_EmptyTransactionalDataCollection
      parameters:
      - name: collectionName
        in: path
        required: true
        schema:
          type: string
        x-position: 1
      responses:
        '204':
          description: ''
  /v2/contacts/{id}/transactional-data/{collectionName}:
    delete:
      tags:
      - ApiContact
      summary: Deletes all transactional data for a contact.
      operationId: ApiContact_DeleteTransactionalDataByContactId
      parameters:
      - name: collectionName
        in: path
        required: true
        schema:
          type: string
        x-position: 1
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int32
        x-position: 2
      responses:
        '204':
          description: ''
    get:
      tags:
      - ApiContact
      summary: Gets a list of all transactional data for a contact (100 most recent only).
      operationId: ApiContact_GetTransactionalDataByContactId
      parameters:
      - name: collectionName
        in: path
        required: true
        schema:
          type: string
        x-position: 1
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int32
        x-position: 2
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiTransactionalData'
  /v2/contacts/{email}/transactional-data/{collectionName}:
    delete:
      tags:
      - ApiContact
      summary: Deletes all transactional data for a contact.
      operationId: ApiContact_DeleteTransactionalDataByContactEmail
      parameters:
      - name: collectionName
        in: path
        required: true
        schema:
          type: string
        x-position: 1
      - name: email
        in: path
        required: true
        schema:
          type: string
        x-position: 2
      responses:
        '204':
          description: ''
    get:
      tags:
      - ApiContact
      summary: Gets a list of all transactional data for a contact (100 most recent only).
      operationId: ApiContact_GetTransactionalDataByContactEmail
      parameters:
      - name: collectionName
        in: path
        required: true
        schema:
          type: string
        x-position: 1
      - name: email
        in: path
        required: true
        schema:
          type: string
        x-position: 2
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApiTransactionalData'
  /v2/transactional-data/{collectionName}:
    get:
      tags:
      - ApiContact
      summary: Gets a list of account scoped transactional data for given collection
      operationId: ApiContact_GetAccountScopedTransactionalData
      parameters:
      - name: collecti

# --- truncated at 32 KB (49 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/dotdigital/refs/heads/main/openapi/dotdigital-apicontact-api-openapi.yml