Dotdigital Preferences and subscriptions API

The Preferences and subscriptions API from Dotdigital — 13 operation(s) for preferences and subscriptions.

Operations 16

POST /v2/contacts/unsubscribe Unsubscribe contact #
PUT /v2/contacts/suppress-contacts Bulk suppress contacts #
POST /v2/contacts/resubscribe Resubscribe contact #
POST /v2/contacts/resubscribe-with-no-challenge Resubscribe contact with no challenge #
GET /v2/contacts/suppressed-since/{date} Get suppressed contacts since date #
GET /v2/contacts/{email}/subscriptions Get subscriptions for contact #
GET /v2/contacts/unsubscribed-since/{date} Get unsubscribed contacts since date #
POST /v2/preferences Create preference #
GET /v2/preferences Get preferences #
PUT /v2/preferences/{id} Update preference #
DELETE /v2/preferences/{id} Delete preference #
GET /v2/preferences/modified-since/{date} Get modified preferences since date #
PUT /v2/contacts/{contactIdentifier}/preferences Set preferences for contact #
GET /v2/contacts/{contactIdentifier}/preferences Get preferences for contact #
GET /v2/contacts/with-preference/{preferenceId} Get contacts opted into a preference #
GET /v2/contacts/with-preference/{preferenceId}/opt-ins-since/{date} Get contacts with modified preference opt-in since date #

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-preferences-and-subscriptions-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-preferences-and-subscriptions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Preferences and subscriptions API
  version: 2.0.1
  description: 'Manage contact subscriptions, suppressions, and marketing preferences. Use this

    API to unsubscribe or resubscribe contacts (with or without a challenge email),

    bulk-suppress contacts, and query suppressed or unsubscribed contacts since a

    given date. Also provides full CRUD for preference categories and individual

    preferences, and endpoints to get or set the preference opt-in status for a

    specific contact.'
servers:
- url: https://{region}-api.dotdigital.com
  variables:
    region:
      default: r1
      enum:
      - r1
      - r2
      - r3
      description: The Dotdigital region id your account belongs to
security:
- basicAuth: []
tags:
- name: Preferences and subscriptions
paths:
  /v2/contacts/unsubscribe:
    parameters:
    - in: header
      name: x-ddg-integration-token
      required: false
      description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
      schema:
        type: string
        pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
        example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
    post:
      summary: Unsubscribe contact
      deprecated: false
      description: Unsubscribes contact from account
      operationId: unsubscribe-contact
      tags:
      - Preferences and subscriptions
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - email
              properties:
                email:
                  type: string
                  description: The email address of the contact to unsubscribe
            examples:
              Request Example:
                value:
                  email: john.smith@emailsim.io
                summary: Request Example
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: object
                properties:
                  suppressedContact:
                    type: object
                    properties:
                      id:
                        type: integer
                        default: 0
                        examples:
                        - 1
                      email:
                        type: string
                        examples:
                        - john.smith@emailsim.io
                      optInType:
                        type: string
                        examples:
                        - Unknown
                      emailType:
                        type: string
                        examples:
                        - PlainText
                      dataFields: {}
                      status:
                        type: string
                        examples:
                        - Unsubscribed
                  dateRemoved:
                    type: string
                    examples:
                    - '2020-01-01 09:40:18.527000+00:00'
                  reason:
                    type: string
                    examples:
                    - Unsubscribed
              examples:
                Result:
                  summary: Result
                  value:
                    suppressedContact:
                      id: 1
                      email: john.smith@emailsim.io
                      optInType: Unknown
                      emailType: PlainText
                      dataFields: null
                      status: Unsubscribed
                    dateRemoved: '2020-01-01 09:40:18.527000+00:00'
                    reason: Unsubscribed
  /v2/contacts/suppress-contacts:
    parameters:
    - in: header
      name: x-ddg-integration-token
      required: false
      description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
      schema:
        type: string
        pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
        example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
    put:
      summary: Bulk suppress contacts
      deprecated: false
      description: Suppresses a batch of contacts from an account
      operationId: bulk-suppress-contacts
      tags:
      - Preferences and subscriptions
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                RAW_BODY:
                  type: array
                  description: The contacts to be unsubscribed, identify them with either id or email address
                  items:
                    properties:
                      id:
                        type: integer
                        description: The unique id of the contact
                        format: int32
                      email:
                        type: string
                        description: The email address of the contact
                    type: object
            examples:
              Request Example:
                value:
                - id: 123
                - email: bob.smith@emailsim.co
                - email: unknown@emailsim.co
                summary: Request Example
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: object
                properties:
                  suppressed:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          default: 0
                          examples:
                          - 123
                        email: {}
                  notFound:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          default: 0
                          examples:
                          - 0
                        email:
                          type: string
                          examples:
                          - unknown@emailsim.co
              examples:
                Result:
                  summary: Result
                  value:
                    suppressed:
                    - id: 123
                      email: null
                    - id: 0
                      email: bob.smith@emailsim.co
                    notFound:
                    - id: 0
                      email: unknown@emailsim.co
  /v2/contacts/resubscribe:
    parameters:
    - in: header
      name: x-ddg-integration-token
      required: false
      description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
      schema:
        type: string
        pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
        example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
    post:
      summary: Resubscribe contact
      deprecated: false
      description: Resubscribes a previously unsubscribed contact
      operationId: resubscribe-contact
      tags:
      - Preferences and subscriptions
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - unsubscribedContact
              properties:
                unsubscribedContact:
                  type: object
                  description: Details of the contact to be resubscribed
                  required:
                  - email
                  properties:
                    email:
                      type: string
                      description: The email address of the contact
                    dataFields:
                      type: array
                      description: The data fields for the contact
                      items:
                        properties:
                          key:
                            type: string
                            description: The key name
                          value:
                            type: string
                            description: The value associated with the key
                        required:
                        - key
                        - value
                        type: object
                preferredLocale:
                  type: string
                  description: The language code for the language you would like the resubscribe request email to be sent to the contact in
                  enum:
                  - cs-CS
                  - da-DA
                  - de-DE
                  - el-EL
                  - en-EN
                  - es-ES
                  - es
                  - fi-FI
                  - fr-FR
                  - hu-HU
                  - it-IT
                  - nl-NL
                  - nb-NO
                  - pl-PL
                  - pt-PT
                  - ru-RU
                  - se-SE
                  - sk-SK
                  - tr-TR
                  - zh-CN
                returnUrlToUseIfChallenged:
                  type: string
                  description: The URL you would like to redirect challenged contacts to after they have completed their resubscription
            examples:
              Request Example:
                value:
                  unsubscribedContact:
                    email: john.smith@emailsim.io
                    dataFields:
                    - key: FIRSTNAME
                      value: Nelson
                    - key: LASTNAME
                      value: Redeker
                  preferredLocale: de-DE
                  returnUrlToUseIfChallenged: https://www.mywebsite.com/news
                summary: Request Example
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: object
                properties:
                  contact:
                    type: object
                    properties:
                      id:
                        type: integer
                        default: 0
                        examples:
                        - 23
                      email:
                        type: string
                        examples:
                        - john.smith@emailsim.io
                      optInType:
                        type: string
                        examples:
                        - Unknown
                      emailType:
                        type: string
                        examples:
                        - PlainText
                      dataFields: {}
                      status:
                        type: string
                        examples:
                        - Unsubscribed
                  status:
                    type: string
                    examples:
                    - ContactChallenged
              examples:
                Result:
                  summary: Result
                  value:
                    contact:
                      id: 23
                      email: john.smith@emailsim.io
                      optInType: Unknown
                      emailType: PlainText
                      dataFields: null
                      status: Unsubscribed
                    status: ContactChallenged
  /v2/contacts/resubscribe-with-no-challenge:
    parameters:
    - in: header
      name: x-ddg-integration-token
      required: false
      description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
      schema:
        type: string
        pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
        example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
    post:
      summary: Resubscribe contact with no challenge
      deprecated: false
      description: Resubscribes a previously unsubscribed contact without sending a challenge email
      operationId: resubscribe-contact-with-no-challenge
      tags:
      - Preferences and subscriptions
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - unsubscribedContact
              properties:
                unsubscribedContact:
                  type: object
                  description: Details of the contact to be resubscribed
                  required:
                  - email
                  properties:
                    email:
                      type: string
                      description: The email address of the contact
                    dataFields:
                      type: array
                      description: The data fields for the contact
                      items:
                        properties:
                          key:
                            type: string
                            description: The key name
                          value:
                            type: string
                            description: The value associated with the key
                        required:
                        - key
                        - value
                        type: object
            examples:
              Request Example:
                value:
                  unsubscribedContact:
                    email: john.smith@emailsim.io
                    dataFields:
                    - key: FIRSTNAME
                      value: Nelson
                    - key: LASTNAME
                      value: Redeker
                summary: Request Example
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: object
                properties:
                  contact:
                    type: object
                    properties:
                      id:
                        type: integer
                        default: 0
                        examples:
                        - 23
                      email:
                        type: string
                        examples:
                        - john.smith@emailsim.io
                      optInType:
                        type: string
                        examples:
                        - Unknown
                      emailType:
                        type: string
                        examples:
                        - PlainText
                      dataFields: {}
                      status:
                        type: string
                        examples:
                        - Unsubscribed
                  status:
                    type: string
                    examples:
                    - ContactAdded
              examples:
                Result:
                  summary: Result
                  value:
                    contact:
                      id: 23
                      email: john.smith@emailsim.io
                      optInType: Unknown
                      emailType: PlainText
                      dataFields: null
                      status: Unsubscribed
                    status: ContactAdded
  /v2/contacts/suppressed-since/{date}:
    parameters:
    - in: header
      name: x-ddg-integration-token
      required: false
      description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
      schema:
        type: string
        pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
        example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
    get:
      summary: Get suppressed contacts since date
      deprecated: false
      description: Gets a list of suppressed contacts after a given date along with the reason for suppression
      operationId: get-suppressed-contacts-since-date
      tags:
      - Preferences and subscriptions
      parameters:
      - name: date
        in: path
        description: The date from which any suppressed contacts are returned in [ISO 8601 format](https://www.w3.org/TR/xmlschema-2/#dateTime)
        required: true
        example: ''
        schema:
          type: string
          format: date
      - name: select
        in: query
        description: The number of records to select between 1 and 1000
        required: false
        schema:
          type: integer
          format: int32
      - name: skip
        in: query
        description: The numbers of records to skip in the result set
        required: false
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    suppressedContact:
                      type: object
                      properties:
                        id:
                          type: integer
                          default: 0
                          examples:
                          - 25
                        email:
                          type: string
                          examples:
                          - terry.mccarthy@example.com
                        optInType:
                          type: string
                          examples:
                          - VerifiedDouble
                        emailType:
                          type: string
                          examples:
                          - Html
                        dataFields: {}
                        status:
                          type: string
                          examples:
                          - Unsubscribed
                    dateRemoved:
                      type: string
                      examples:
                      - '2020-01-01 09:40:18.527000+00:00'
                    reason:
                      type: string
                      examples:
                      - Unsubscribed
              examples:
                Result:
                  summary: Result
                  value:
                  - suppressedContact:
                      id: 25
                      email: terry.mccarthy@example.com
                      optInType: VerifiedDouble
                      emailType: Html
                      dataFields: null
                      status: Unsubscribed
                    dateRemoved: '2020-01-01 09:40:18.527000+00:00'
                    reason: Unsubscribed
                  - suppressedContact:
                      id: 38
                      email: eleanor.halloran@example.com
                      optInType: Unknown
                      emailType: PlainText
                      dataFields: null
                      status: HardBounced
                    dateRemoved: '2020-01-01 09:40:18.527000+00:00'
                    reason: HardBounced
  /v2/contacts/{email}/subscriptions:
    parameters:
    - in: header
      name: x-ddg-integration-token
      required: false
      description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
      schema:
        type: string
        pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
        example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
    get:
      summary: Get subscriptions for contact
      deprecated: false
      description: Gets all subscriptions for a contact
      operationId: get-subscriptions-for-contact
      tags:
      - Preferences and subscriptions
      parameters:
      - name: email
        in: path
        description: The email address of the contact
        required: true
        example: ''
        schema:
          type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: object
                properties:
                  contact:
                    type: object
                    properties:
                      id:
                        type: integer
                        default: 0
                        examples:
                        - 1
                      email:
                        type: string
                        examples:
                        - john.doe@example.com
                      optInType:
                        type: string
                        examples:
                        - Unknown
                      emailType:
                        type: string
                        examples:
                        - Html
                      dataFields: {}
                      status:
                        type: string
                        examples:
                        - Subscribed
                  marketingPreferenceOptIns:
                    type: array
                    items:
                      type: object
                      properties:
                        marketingPreferenceId:
                          type: integer
                          default: 0
                          examples:
                          - 5
                        addressBookId:
                          type: integer
                          default: 0
                          examples:
                          - 1
                        isOptedIn:
                          type: boolean
                          default: true
                          examples:
                          - false
                        dateModifed:
                          type: string
                          examples:
                          - '2020-01-01 09:40:18.527000+00:00'
              examples:
                Result:
                  summary: Result
                  value:
                    contact:
                      id: 1
                      email: john.doe@example.com
                      optInType: Unknown
                      emailType: Html
                      dataFields: null
                      status: Subscribed
                    marketingPreferenceOptIns:
                    - marketingPreferenceId: 5
                      addressBookId: 1
                      isOptedIn: false
                      dateModifed: '2020-01-01 09:40:18.527000+00:00'
                    - marketingPreferenceId: 1002
                      addressBookId: 3
                      isOptedIn: false
                      dateModifed: '2020-01-01 09:40:18.527000+00:00'
                    - marketingPreferenceId: 1003
                      addressBookId: 2
                      isOptedIn: true
                      dateModifed: '2020-01-01 09:40:18.527000+00:00'
                    - marketingPreferenceId: 1004
                      addressBookId: 3
                      isOptedIn: false
                      dateModifed: '2020-01-01 09:40:18.527000+00:00'
  /v2/contacts/unsubscribed-since/{date}:
    parameters:
    - in: header
      name: x-ddg-integration-token
      required: false
      description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
      schema:
        type: string
        pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
        example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
    get:
      summary: Get unsubscribed contacts since date
      deprecated: false
      description: Gets a list of unsubscribed contacts who unsubscribed after a given date
      operationId: get-unsubscribed-contacts-since-date
      tags:
      - Preferences and subscriptions
      parameters:
      - name: date
        in: path
        description: The date from which any suppressed contacts are returned in [ISO 8601 format](https://www.w3.org/TR/xmlschema-2/#dateTime)
        required: true
        example: ''
        schema:
          type: string
          format: date
      - name: select
        in: query
        description: The number of records to select between 1 and 1000
        required: false
        schema:
          type: integer
          format: int32
      - name: skip
        in: query
        description: The numbers of records to skip in the result set
        required: false
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    suppressedContact:
                      type: object
                      properties:
                        id:
                          type: integer
                          default: 0
                          examples:
                          - 23
                        email:
                          type: string
                          examples:
                          - nelson.redeker@example.com
                        optInType:
                          type: string
                          examples:
                          - Unknown
                        emailType:
                          type: string
                          examples:
                          - PlainText
                        dataFields: {}
                        status:
                          type: string
                          examples:
                          - Unsubscribed
                    dateRemoved:
                      type: string
                      examples:
                      - '2020-01-01 09:40:18.527000+00:00'
                    reason:
                      type: string
                      examples:
                      - Unsubscribed
              examples:
                Result:
                  summary: Result
                  value:
                  - suppressedContact:
                      id: 23
                      email: nelson.redeker@example.com
                      optInType: Unknown
                      emailType: PlainText
                      dataFields: null
                      status: Unsubscribed
                    dateRemoved: '2020-01-01 09:40:18.527000+00:00'
                    reason: Unsubscribed
                  - suppressedContact:
                      id: 25
                      email: terry.mccarthy@example.com
                      optInType: VerifiedDouble
                      emailType: Html
                      dataFields: null
                      status: Unsubscribed
                    dateRemoved: '2020-01-01 09:40:18.527000+00:00'
                    reason: Unsubscribed
  /v2/preferences:
    parameters:
    - in: header
      name: x-ddg-integration-token
      required: false
      description: If you are a partner of Dotdigital and have a [verified integration](https://developer.dotdigital.com/docs/partner-integration-verification) then include your [integration tracking token](https://developer.dotdigital.co/docs/verified-integration-tracking) here.
      schema:
        type: string
        pattern: /^(?:\{{0,1}(?:[0-9a-fA-F]){8}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){4}-(?:[0-9a-fA-F]){12}\}{0,1})$/
        example: 5a96bc79-19a7-4544-973b-e2da0c9136f9
    post:
      summary: Create preference
      deprecated: false
      description: Creates a new preference or a new preference category
      operationId: create-preference
      tags:
      - Preferences and subscriptions
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - publicName
              - privateName
              properties:
                publicName:
                  type: string
                  description: The public name of the preference or the preference category. Contacts can see the public names of preferences in preference centres and signup forms.
                privateName:
                  type: string
                  description: The private name of the preference or the preference category. Contacts can't see private names in the preference centre or in signup forms.
                isPreference:
                  type: boolean
                  description: If this value is true, a new preference is created. If this value is false, a new preference category is created.
                  default: false
                order:
                  type: string
                  description: The position that you want the preference or the preference category to appear on the 'Contact preferences' page, starting from 0. Specify either an integer for absolute position, alternatively use "top" or "bottom"
                isPublic:
                  type: boolean
                  description: For preferences, if this value is true, the preference is visible in signup forms and preference centres.
                  default: true
                categoryID:
                  type: integer
                  description: 'For preferences, the unique ID of the preference category that you want to add the preference to. Default for preferences: 0. Default for preference categories: null'
                  format: int32
            examples:
              Request Example:
                value:
                  publicName: Preferred contact method
                  privateName: Preferred contact method
                  isPreference: true
                  isPublic: true
                  order: 0
                  categoryId: null
                summary: Request Example
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: object
                properties: {}
              examples:
                Result:
                  summary: Result
                  value: '{ id: 23,

                    publicName: ''Preferred contact method'',

                    privateName: ''Preferred contact method'',

                    isPreference: false,

                    order: 0,

                    isPublic: true,

                    categoryId: 0,

                    preferenceCount: 0,

                    created: ''2020-01-01T09:40:18.527Z'',

                    lastModified: ''2020-01-01T09:40:18.527Z''

                    }'
    get:
      summary: Get preferences
      deprecated: false
      description: Gets all preferences and preference categories
      operationId: get-preferences
      tags:
      - Preferences and subscriptions
      parameters: []
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: array
                items:
             

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