> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zeotap.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Search user profiles

> Searches for user profiles matching the given identifiers.
Requires either an API key or an Okta JWT bearer token.




## OpenAPI

````yaml /profileapi.yaml post /cdp/v1/users/_search
openapi: 3.0.3
info:
  title: Zeotap Profile API
  description: |
    Zeotap CDP Profile API.

    The api supports two authentication mechanisms (API Key and Okta JWT)
    and exposes profile write, search, and delete operations.
  version: 1.0.0
servers:
  - url: https://api.zeotap.com
security: []
tags:
  - name: Profile
    description: CDP User Profile operations
paths:
  /cdp/v1/users/_search:
    post:
      tags:
        - Profile
      summary: Search user profiles
      description: |
        Searches for user profiles matching the given identifiers.
        Requires either an API key or an Okta JWT bearer token.
      operationId: searchProfiles
      parameters:
        - $ref: '#/components/parameters/Scopes'
        - $ref: '#/components/parameters/OrgId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProfileRequest'
            example:
              orgId: 1577
              regions:
                - UK
              search:
                icoms_account_uid:
                  - amit_170921
      responses:
        '200':
          description: Matching profiles returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProfileResponseArray'
              example:
                - updated_ts: 1662374042063
                  created_ts: 1637240279015
                  profile:
                    Audience:
                      CONTROL_FLAG: 0
                      AUDIENCE_RUN_DATE: '1660780800000000'
                      AUDIENCE_SLOT_3: CA0045_D001
                      AUDIENCE_SLOT_4: NO AUDIENCE
                      _ts: '1660832360482'
                  ids:
                    icoms_account_uid:
                      - icoms_account_uid: '41063074106'
                        _ts: '1639918545133'
                    linkedUcid:
                      - a1a62720-8788-8788-8788-fb81f77515b1
                  mkt_preferences: {}
                  consent: {}
                  region: UK
                  ucid: 00000000-9295-9295-9295-8db6a1c8e06a
        '400':
          description: Bad request
        '401':
          description: Unauthorized – invalid or missing credentials
        '403':
          description: Forbidden – insufficient scopes
      security:
        - ApiKeyAuth: []
        - OktaJwt: []
components:
  parameters:
    Scopes:
      name: scopes
      in: header
      required: true
      description: |
        Comma-separated list of granted scopes.
        Allowed values: `profile.read`, `profile.write`, `profile.delete`
      schema:
        type: string
        example: profile.read,profile.write,profile.delete
    OrgId:
      name: orgId
      in: header
      required: false
      description: |
        Zeotap organisation ID. Required when using Okta JWT authentication.
      schema:
        type: integer
        example: 1577
  schemas:
    ProfileRequest:
      type: object
      required:
        - orgId
        - regions
        - search
      properties:
        orgId:
          type: integer
          description: Organisation identifier
          example: 1577
        regions:
          type: array
          items:
            type: string
          description: Region codes to scope the query
          example:
            - UK
        search:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: |
            Key-value pairs where the key is an identifier type
            (e.g. `icoms_account_uid`, `email`, `cellphone`) and the
            value is an array of identifier values to match.
          example:
            icoms_account_uid:
              - amit_170921
    ProfileResponseArray:
      type: array
      items:
        $ref: '#/components/schemas/ProfileRecord'
    ProfileRecord:
      type: object
      properties:
        updated_ts:
          type: integer
          format: int64
          description: Last-updated epoch timestamp (ms)
        created_ts:
          type: integer
          format: int64
          description: Created epoch timestamp (ms)
        profile:
          type: object
          additionalProperties: true
          description: |
            Nested profile attributes organised by category
            (e.g. Audience, demographics). Structure varies by org config.
        ids:
          $ref: '#/components/schemas/IdentityMap'
        mkt_preferences:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/MarketingPreference'
          description: Marketing opt-in / opt-out preferences
        consent:
          type: object
          additionalProperties: true
          description: Consent records
        region:
          type: string
          description: Region the profile belongs to
          example: UK
        ucid:
          type: string
          format: uuid
          description: Unified Customer ID
          example: 00000000-9295-9295-9295-8db6a1c8e06a
    IdentityMap:
      type: object
      description: |
        Map of identity namespaces to arrays of identity records.
        Each namespace (e.g. `email`, `cellphone`, `ga_clientid`)
        contains an array of identity objects with a timestamp.
      additionalProperties:
        type: array
        items:
          type: object
          additionalProperties: true
          properties:
            _ts:
              type: string
              description: Epoch timestamp (ms) of identity record
      example:
        email:
          - email_sha256_lowercase: af2bdbe...
            _ts: '1639918545133'
        icoms_account_uid:
          - icoms_account_uid: '41063074106'
            _ts: '1639918545133'
        linkedUcid:
          - a1a62720-8788-8788-8788-fb81f77515b1
    MarketingPreference:
      type: object
      properties:
        datasourceId:
          type: string
        datasetId:
          type: string
        type:
          type: string
          description: Preference type identifier
        value:
          type: string
          description: Preference value (e.g. "yes", "no")
        _ts:
          type: string
          description: Epoch timestamp (ms) of last update
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: apikey
      description: Long-lasting client key
    OktaJwt:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Okta-issued JWT passed in the Authorization header

````