Listrak Contact API

The Contact API from Listrak — 8 operation(s) for contact.

Operations 10

GET /v1/List/{listId}/Contact Get all Contacts #
POST /v1/List/{listId}/Contact Create or update a Contact #
GET /v1/List/{listId}/Contact/{contactIdentifier} Get a Contact #
GET /v1/ShortCode/{senderCodeId}/PhoneList/{phoneListId}/Contact Get Contact Collection #
POST /v1/ShortCode/{senderCodeId}/PhoneList/{phoneListId}/Contact Create Contact #
GET /v1/ShortCode/{senderCodeId}/Contact/{phoneNumber} Get Contact #
PUT /v1/ShortCode/{senderCodeId}/Contact Update Contact #
GET /v1/ShortCode/{senderCodeId}/OptOut Get Sender Code Opt-Outs #
POST /v1/ShortCode/{senderCodeId}/ContactImport Start a Contact Update Import #
GET /v1/ShortCode/{senderCodeId}/ContactImport/{importFileId} Get a Contact Import #

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/listrak-contact-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

listrak-contact-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Listrak Contact API
  version: v1
  x-refined-note:
  - x-logo differs across the merged source definitions and was not carried
  description: 'Operations tagged Contact across 4 of this provider''s published API definitions: listrak-email-openapi.json, listrak-email-openapi.yml, listrak-sms-openapi.json, listrak-sms-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.listrak.com/email
- url: https://api.listrak.com/sms
tags:
- name: Contact
  description: The Contact resource is used to add, update and remove new contacts to a List. This resource also exposes the ability to set a contact's profile fields and subscription state.
paths:
  /v1/List/{listId}/Contact:
    get:
      tags:
      - Contact
      summary: Get all Contacts
      description: Returns the collection of contacts associated with the specified list.
      operationId: Contact_GetContactCollection
      parameters:
      - name: listId
        in: path
        description: Identifier used to locate the list.
        required: true
        schema:
          type: integer
          format: int32
      - name: subscriptionState
        in: query
        description: Identifier used to specify subscription state of the contacts to retrieve. Allowed values are `Subscribed` and `Unsubscribed`. The default value is `Subscribed`.
        required: false
        schema:
          type: string
      - name: externalContactId
        in: query
        description: External contact ID provided by the client. If provided, only returns contacts with a matching external contact ID.
        required: false
        schema:
          type: string
      - name: segmentationFieldIds
        in: query
        description: Comma-separated list of profile field IDs to retrieve. Up to 30 fields may be included.
        required: false
        schema:
          type: string
      - name: cursor
        in: query
        description: Value indicating the page of data that's being retrieved. The default value is `Start`.
        required: false
        schema:
          type: string
      - name: count
        in: query
        description: Number of data members to be displayed per page. The default value is `1000` and the maximum value is `5000`.
        required: false
        schema:
          type: string
      - name: startDate
        in: query
        description: Inclusive start date that's being used to filter the data members. This applies to subscribe date when retrieving subscribed contacts. Applies to unsubscribe date when retrieving unsubscribed contacts.
        required: false
        schema:
          type: string
      - name: endDate
        in: query
        description: Inclusive (exclusive when `useOriginalSubscribeDate` is `false`) end date that's being used to filter the data members. This applies to subscribe date when retrieving subscribed contacts. Applies to unsubscribe date when retrieving unsubscribed contacts.
        required: false
        schema:
          type: string
      - name: useOriginalSubscribeDate
        in: query
        description: Whether the `startDate` and `endDate` use the contact's original subscribe date or the contact's most recent subscribe date. Only applies when `subscriptionState` is `Subscribed`. The default value is `true`.
        required: false
        schema:
          type: boolean
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollectionPaged_Contact'
              example:
                status: 200
                nextPageCursor: null
                data:
                - emailAddress: null
                  emailKey: null
                  universalEmailKey: null
                  subscriptionState: null
                  subscribeDate: null
                  resubscribeDate: null
                  subscribeMethod: null
                  unsubscribeDate: null
                  unsubscribeMethod: null
                  externalContactID: null
                  segmentationFieldValues: null
        '400':
          description: BadRequest
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: 400
                error: ERROR_INVALID_PARAMETER
                message: An invalid value was supplied for {Parameter}.
        '404':
          description: NotFound
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: 404
                error: ERROR_UNABLE_TO_LOCATE_RESOURCE
                message: Unable to locate a resource associated with the listId supplied.
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: 401
                error: ERROR_UNAUTHORIZED
                message: Authorization was denied for this request.
      security:
      - OAuth 2: []
      x-code-samples:
      - lang: C#
        source: 'var client = new HttpClient();


          client.BaseAddress = new Uri("https://api.listrak.com/email/");

          client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);


          var response = await client.GetAsync("v1/List/{listId}/Contact");

          '
      - lang: PHP
        source: "$client = new \\GuzzleHttp\\Client([\n\t'base_uri' => 'https://api.listrak.com/email/'\n]);\n\n$res = $client->request('GET', 'v1/List/{listId}/Contact',  [\n\t'headers' => ['Authorization' => 'Bearer ' . $accessToken]\n]);\n"
    post:
      tags:
      - Contact
      summary: Create or update a Contact
      description: Creates or updates a contact on the specified list.
      operationId: Contact_PostContactResource
      parameters:
      - name: listId
        in: path
        description: Identifier used to locate the list.
        required: true
        schema:
          type: integer
          format: int32
      - name: eventIds
        in: query
        description: Comma-separated list of event identifiers that should be raised after the contact is created or updated.
        required: false
        schema:
          type: string
      - name: overrideUnsubscribe
        in: query
        description: Whether a contact in an unsubscribed state should be forced to a subscribed state. The default value is `false`.
        required: false
        schema:
          type: boolean
      - name: subscribedByContact
        in: query
        description: Whether the subscribe was initiated by the contact. The default value is `false`.
        required: false
        schema:
          type: boolean
      - name: sendDoubleOptIn
        in: query
        description: Whether a double opt-in email should be sent if a new contact is being created. The default value is `false`.
        required: false
        schema:
          type: boolean
      - name: updateType
        in: query
        description: If updating an existing contact, the type of update that will be performed on any submitted profile fields. Allowed values are `Update`, `Append`, and `Overwrite`. The default value is `Update`.
        required: false
        schema:
          type: string
      - name: newEmailAddress
        in: query
        description: If updating an existing contact, the contact's email address will be changed to this value. Provide the original email address in the `emailAddress` body field to select the existing contact.
        required: false
        schema:
          type: string
      responses:
        '400':
          description: BadRequest
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: 400
                error: ERROR_INVALID_PARAMETER
                message: An invalid value was supplied for {Parameter}.
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceCreated'
              example:
                status: 201
                resourceId: '{ResourceId}'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: 401
                error: ERROR_UNAUTHORIZED
                message: Authorization was denied for this request.
        '404':
          description: NotFound
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: 404
                error: ERROR_UNABLE_TO_LOCATE_RESOURCE
                message: Unable to locate a resource associated with the listId supplied.
      security:
      - OAuth 2: []
      x-code-samples:
      - lang: C#
        source: "var client = new HttpClient();\n\nclient.BaseAddress = new Uri(\"https://api.listrak.com/email/\");\nclient.DefaultRequestHeaders.Add(\"Authorization\", \"Bearer \" + token);\n\nvar response = await client.PostAsJsonAsync(\"v1/List/{listId}/Contact?eventIds={eventIds}&overrideUnsubscribe={overrideUnsubscribe}&subscribedByContact={subscribedByContact}&sendDoubleOptIn={sendDoubleOptIn}&updateType={updateType}&newEmailAddress={newEmailAddress}\", new\n{\n   EmailAddress = null,\n   SubscriptionState = null,\n   ExternalContactID = null,\n   SegmentationFieldValues = null\n});\n"
      - lang: PHP
        source: "$client = new \\GuzzleHttp\\Client([\n\t'base_uri' => 'https://api.listrak.com/email/'\n]);\n\n$res = $client->request('POST', 'v1/List/{listId}/Contact',  [\n\t'headers' => ['Authorization' => 'Bearer ' . $accessToken],\n\t'json' => $jsonBody\n]);\n"
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Contact'
        description: Representation of the contact to create or update.
        required: true
    servers:
    - url: https://api.listrak.com/email
  /v1/List/{listId}/Contact/{contactIdentifier}:
    get:
      tags:
      - Contact
      summary: Get a Contact
      description: Returns a contact by email address or by Listrak email key.
      operationId: Contact_GetContactResourceByIdentifier
      parameters:
      - name: listId
        in: path
        description: Identifier used to locate the list.
        required: true
        schema:
          type: integer
          format: int32
      - name: contactIdentifier
        in: path
        description: Identifier used to locate the contact. You may specify either an email address or a Listrak email key.
        required: true
        schema:
          type: string
      - name: segmentationFieldIds
        in: query
        description: Comma-separated list of profile field IDs to retrieve. Up to 30 fields may be included.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_Contact'
              example:
                status: 200
                data:
                  emailAddress: null
                  emailKey: null
                  universalEmailKey: null
                  subscriptionState: null
                  subscribeDate: null
                  resubscribeDate: null
                  subscribeMethod: null
                  unsubscribeDate: null
                  unsubscribeMethod: null
                  externalContactID: null
                  segmentationFieldValues: null
        '400':
          description: BadRequest
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: 400
                error: ERROR_INVALID_PARAMETER
                message: An invalid value was supplied for {Parameter}.
        '404':
          description: NotFound
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: 404
                error: ERROR_UNABLE_TO_LOCATE_RESOURCE
                message: Unable to locate a resource associated with the listId and contactIdentifier supplied.
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: 401
                error: ERROR_UNAUTHORIZED
                message: Authorization was denied for this request.
      security:
      - OAuth 2: []
      x-code-samples:
      - lang: C#
        source: 'var client = new HttpClient();


          client.BaseAddress = new Uri("https://api.listrak.com/email/");

          client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);


          var response = await client.GetAsync("v1/List/{listId}/Contact/{contactIdentifier}");

          '
      - lang: PHP
        source: "$client = new \\GuzzleHttp\\Client([\n\t'base_uri' => 'https://api.listrak.com/email/'\n]);\n\n$res = $client->request('GET', 'v1/List/{listId}/Contact/{contactIdentifier}',  [\n\t'headers' => ['Authorization' => 'Bearer ' . $accessToken]\n]);\n"
    servers:
    - url: https://api.listrak.com/email
  /v1/ShortCode/{senderCodeId}/PhoneList/{phoneListId}/Contact:
    get:
      tags:
      - Contact
      summary: Get Contact Collection
      description: Returns all contacts that exist on a specific SMS list by optout status.
      operationId: Contact_GetContactCollection
      parameters:
      - name: senderCodeId
        in: path
        description: Identifier used to specify the Sender Code.
        required: true
        schema:
          type: integer
          format: int32
      - name: phoneListId
        in: path
        description: Identifier used to locate the SMS List.
        required: true
        schema:
          type: integer
          format: int32
      - name: optedOut
        in: query
        description: Determines the status of contacts on the resulting data. The default value is `false`.
        required: false
        schema:
          type: boolean
      - name: cursor
        in: query
        description: Value indicating the page of data that's being retrieved. The default value is `Start`.
        required: false
        schema:
          type: string
      - name: count
        in: query
        description: Number of data members to be displayed per page. The default value is `1000` and the maximum value is `5000`.
        required: false
        schema:
          type: string
      - name: startSubscribeDate
        in: query
        description: Start date that's being used to filter the data members. This applies to subscribe date.
        required: false
        schema:
          type: string
      - name: endSubscribeDate
        in: query
        description: End date that's being used to filter the data members. This applies to subscribe date.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollectionPaged_SMSContact'
              example:
                status: 200
                nextPageCursor: null
                data:
                - phoneNumber: null
                  emailAddress: null
                  firstName: null
                  lastName: null
                  birthday: null
                  postalCode: null
                  optedOut: false
                  segmentationFieldValues: null
        '400':
          description: BadRequest
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: 400
                error: ERROR_INVALID_PARAMETER
                message: An invalid value was supplied for {Parameter}.
        '404':
          description: NotFound
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: 404
                error: ERROR_UNABLE_TO_LOCATE_RESOURCE
                message: Unable to locate a resource associated with the senderCodeId and phoneListId supplied.
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: 401
                error: ERROR_UNAUTHORIZED
                message: Authorization was denied for this request.
      security:
      - OAuth 2: []
      x-code-samples:
      - lang: C#
        source: 'var client = new HttpClient();


          client.BaseAddress = new Uri("/");

          client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);


          var response = await client.GetAsync("v1/ShortCode/{senderCodeId}/PhoneList/{phoneListId}/Contact");

          '
      - lang: PHP
        source: "$client = new \\GuzzleHttp\\Client([\n\t'base_uri' => '/'\n]);\n\n$res = $client->request('GET', 'v1/ShortCode/{senderCodeId}/PhoneList/{phoneListId}/Contact',  [\n\t'headers' => ['Authorization' => 'Bearer ' . $accessToken]\n]);\n"
    post:
      tags:
      - Contact
      summary: Create Contact
      description: 'Creates and subscribes a new contact for a phone number if the contact does not already exist on the sender code.

        This call will create a record of the contact as well as subscribe the contact to the list that was passed in the route.

        Changes to segmentation fields apply to the contact across all sender codes.'
      operationId: Contact_PostContactListResource
      parameters:
      - name: senderCodeId
        in: path
        description: Identifier used to specify the Sender Code.
        required: true
        schema:
          type: integer
          format: int32
      - name: phoneListId
        in: path
        description: Identifier for the SMS List that the contact will be created on.
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '400':
          description: BadRequest
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: 400
                error: ERROR_INVALID_PARAMETER
                message: An invalid value was supplied for {Parameter}.
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceCreated'
              example:
                status: 201
                resourceId: '{ResourceId}'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: 401
                error: ERROR_UNAUTHORIZED
                message: Authorization was denied for this request.
        '404':
          description: NotFound
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: 404
                error: ERROR_UNABLE_TO_LOCATE_RESOURCE
                message: Unable to locate a resource associated with the senderCodeId and phoneListId supplied.
      security:
      - OAuth 2: []
      x-code-samples:
      - lang: C#
        source: "var client = new HttpClient();\n\nclient.BaseAddress = new Uri(\"/\");\nclient.DefaultRequestHeaders.Add(\"Authorization\", \"Bearer \" + token);\n\nvar response = await client.PostAsJsonAsync(\"v1/ShortCode/{senderCodeId}/PhoneList/{phoneListId}/Contact\", new\n{\n   PhoneNumber = null,\n   EmailAddress = null,\n   FirstName = null,\n   LastName = null,\n   Birthday = null,\n   PostalCode = null,\n   OptedOut = false,\n   SegmentationFieldValues = null\n});\n"
      - lang: PHP
        source: "$client = new \\GuzzleHttp\\Client([\n\t'base_uri' => '/'\n]);\n\n$res = $client->request('POST', 'v1/ShortCode/{senderCodeId}/PhoneList/{phoneListId}/Contact',  [\n\t'headers' => ['Authorization' => 'Bearer ' . $accessToken],\n\t'json' => $jsonBody\n]);\n"
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SMSContact'
        description: Contact object containing information for creation.
        required: true
    servers:
    - url: https://api.listrak.com/sms
  /v1/ShortCode/{senderCodeId}/Contact/{phoneNumber}:
    get:
      tags:
      - Contact
      summary: Get Contact
      description: Returns a contact for a phone number. The response does not include a list id. This call will only return the system and custom profile fields for a contact along with the opted out status.
      operationId: Contact_GetContactResource
      parameters:
      - name: senderCodeId
        in: path
        description: Identifier used to specify the Sender Code.
        required: true
        schema:
          type: integer
          format: int32
      - name: phoneNumber
        in: path
        description: Phone number for contact.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Resource_SMSContactSubscriptionDetails'
              example:
                status: 200
                data:
                  subscribeDate: null
                  unsubscribeDate: null
                  phoneNumber: null
                  emailAddress: null
                  firstName: null
                  lastName: null
                  birthday: null
                  postalCode: null
                  optedOut: false
                  segmentationFieldValues: null
        '400':
          description: BadRequest
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: 400
                error: ERROR_INVALID_PARAMETER
                message: An invalid value was supplied for {Parameter}.
        '404':
          description: NotFound
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: 404
                error: ERROR_UNABLE_TO_LOCATE_RESOURCE
                message: Unable to locate a resource associated with the senderCodeId and phoneNumber supplied.
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: 401
                error: ERROR_UNAUTHORIZED
                message: Authorization was denied for this request.
      security:
      - OAuth 2: []
      x-code-samples:
      - lang: C#
        source: 'var client = new HttpClient();


          client.BaseAddress = new Uri("/");

          client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);


          var response = await client.GetAsync("v1/ShortCode/{senderCodeId}/Contact/{phoneNumber}");

          '
      - lang: PHP
        source: "$client = new \\GuzzleHttp\\Client([\n\t'base_uri' => '/'\n]);\n\n$res = $client->request('GET', 'v1/ShortCode/{senderCodeId}/Contact/{phoneNumber}',  [\n\t'headers' => ['Authorization' => 'Bearer ' . $accessToken]\n]);\n"
    servers:
    - url: https://api.listrak.com/sms
  /v1/ShortCode/{senderCodeId}/Contact:
    put:
      tags:
      - Contact
      summary: Update Contact
      description: "Updates a contact's information for a phone number. \nThis call will update the system fields, custom profile fields, and the opt-out status of a contact.\nIt is only possible to opt out a contact using this call; not opting them in to the sender code. \nIf a contact is opted out, it is still possible to update the contacts system and custom profile fields.\nChanges to segmentation fields apply to the contact across all sender codes."
      operationId: Contact_PutContactResource
      parameters:
      - name: senderCodeId
        in: path
        description: Identifier used to specify the Sender Code.
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceUpdated'
              example:
                status: 200
                resourceId: '{ResourceId}'
        '400':
          description: BadRequest
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: 400
                error: ERROR_INVALID_PARAMETER
                message: An invalid value was supplied for {Parameter}.
        '404':
          description: NotFound
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: 404
                error: ERROR_UNABLE_TO_LOCATE_RESOURCE
                message: Unable to locate a resource associated with the senderCodeId supplied.
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: 401
                error: ERROR_UNAUTHORIZED
                message: Authorization was denied for this request.
      security:
      - OAuth 2: []
      x-code-samples:
      - lang: C#
        source: "var client = new HttpClient();\n\nclient.BaseAddress = new Uri(\"/\");\nclient.DefaultRequestHeaders.Add(\"Authorization\", \"Bearer \" + token);\n\nvar response = await client.PutAsJsonAsync(\"v1/ShortCode/{senderCodeId}/Contact\", new\n{\n   PhoneNumber = null,\n   EmailAddress = null,\n   FirstName = null,\n   LastName = null,\n   Birthday = null,\n   PostalCode = null,\n   OptedOut = false,\n   SegmentationFieldValues = null\n});\n"
      - lang: PHP
        source: "$client = new \\GuzzleHttp\\Client([\n\t'base_uri' => '/'\n]);\n\n$res = $client->request('PUT', 'v1/ShortCode/{senderCodeId}/Contact',  [\n\t'headers' => ['Authorization' => 'Bearer ' . $accessToken],\n\t'json' => $jsonBody\n]);\n"
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SMSContact'
        description: Contact object containing information for update.
        required: true
    servers:
    - url: https://api.listrak.com/sms
  /v1/ShortCode/{senderCodeId}/OptOut:
    get:
      tags:
      - Contact
      summary: Get Sender Code Opt-Outs
      description: Returns all contacts that have been opted-out for a specific SMS Sender Code
      operationId: Contact_GetOptOuts
      parameters:
      - name: senderCodeId
        in: path
        description: Identifier used to specify the Sender Code.
        required: true
        schema:
          type: integer
          format: int32
      - name: cursor
        in: query
        description: Value indicating the page of data that's being retrieved. The default value is `Start`.
        required: false
        schema:
          type: string
      - name: count
        in: query
        description: Number of data members to be displayed per page. The default value is `1000` and the maximum value is `5000`.
        required: false
        schema:
          type: string
      - name: startDate
        in: query
        description: Start date that's being used to filter the data members. This applies to opt-out date.
        required: false
        schema:
          type: string
      - name: endDate
        in: query
        description: End date that's being used to filter the data members. This applies to opt-out date.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Collection_OptOutContact'
              example:
                status: 200
                data:
                - phoneNumber: null
                  optOutDate: '0001-01-01T00:00:00'
                  optOutReason: 0
        '400':
          description: BadRequest
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: 400
                error: ERROR_INVALID_PARAMETER
                message: An invalid value was supplied for {Parameter}.
        '404':
          description: NotFound
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: 404
                error: ERROR_UNABLE_TO_LOCATE_RESOURCE
                message: Unable to locate a resource associated with the senderCodeId supplied.
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: 401
                error: ERROR_UNAUTHORIZED
                message: Authorization was denied for this request.
      security:
      - OAuth 2: []
      x-code-samples:
      - lang: C#
        source: 'var client = new HttpClient();


          client.BaseAddress = new Uri("/");

          client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);


          var response = await client.GetAsync("v1/ShortCode/{senderCodeId}/OptOut");

          '
      - lang: PHP
        source: "$client = new \\GuzzleHttp\\Client([\n\t'base_uri' => '/'\n]);\n\n$res = $client->request('GET', 'v1/ShortCode/{senderCodeId}/OptOut',  [\n\t'headers' => ['Authorization' => 'Bearer ' . $accessToken]\n]);\n"
    servers:
    - url: https://api.listrak.com/sms
  /v1/ShortCode/{senderCodeId}/ContactImport:
    post:
      tags:
      - Contact
      summary: Start a Contact Update Import
      description: Creates and starts a new update import for the specified sender code. HTTP request body lengths of up to 250 MB are permitted. Because the `fileStream` field must be encoded in Base64, and because the remainder of the JSON payload is counted against the 250 MB limit, the effective maximum import file size is approximately 185 MB (195,000,000 bytes); therefore, only attempt to import files up to 185 MB (195,000,000 bytes) in size.
      operationId: Contact_PostImportFileResource
      parameters:
      - name: senderCodeId
        in: path
        description: Identifier used to locate the sender code.
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '400':
          description: BadRequest
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                status: 400
                error: ERROR_INVALID_PARAMETER
                message: An invalid value was supplied for {Parameter}.
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceCreated'
              example:
                status: 201
                resourceId: '{ResourceId}'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              e

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