openapi: 3.1.0
info:
  contact:
    name: Sitecore Corporation A/S
  description: >
    Use the Guest REST API to create, retrieve, update, and delete guest data in
    Sitecore CDP.


    This REST API lets you interact with:
       - The guest object. The guest object is the core entity of Sitecore CDP. It stores the personal data of a customer, and all relevant transactional and behavioral data is linked in a guest profile.
       - The guest data extension object. A guest data extension is an object that lets you specify any key-value pairs you want. Guest data extensions are optional and enable your organization to capture more robust information about your guests.

    After capturing guest information, Sitecore CDP users can:
       - View the captured data in the [guest profile](https://doc.sitecore.com/cdp/en/users/sitecore-cdp/view-a-guest-profile-in-sitecore-cdp.html).
       - Use the captured data to [build segments of guests](https://doc.sitecore.com/cdp/en/users/sitecore-cdp/introduction-to-batch-segmentation.html).
       - [Export audience data](https://doc.sitecore.com/cdp/en/users/sitecore-cdp/audience-export.html) to activate audiences outside Sitecore CDP.

    Note the following:
       - To use this REST API, you must [authenticate](https://doc.sitecore.com/cdp/en/developers/api/authentication-and-authorization.html) your API requests.
       - All API requests are made in your production environment.
       - This reference documentation describes Sitecore CDP functionality for data model 2.1.

     For more information, see the [official Sitecore CDP developer documentation](https://doc.sitecore.com/cdp/en/developers/api/index-en.html).
    ## Authentication 

    The Guest REST API uses basic authentication.  

    Basic authentication involves sending a user name and a password with every
    request.  

    To find your user name and password, in Sitecore CDP, on the navigation
    pane, click **Settings** > **API access**:  
     - The user name is the **Client key**.  
    - The password is the **API token**.  

    You must include the user name and password in every request you make. For
    example:  

    ```  

    curl -X GET '{baseURL}/v2/guests' \  

    -u '{YOUR_USERNAME}:{YOUR_PASSWORD}' \  

    -H 'Accept: application/json'  
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  title: Guest API
  version: v2.1
  x-metadata:
    product: CDP
servers:
  - description: Production server AP
    url: https://api-engage-ap.sitecorecloud.io
  - description: Production server EU
    url: https://api-engage-eu.sitecorecloud.io
  - description: Production server JP
    url: https://api-engage-jpe.sitecorecloud.io
  - description: Production server US
    url: https://api-engage-us.sitecorecloud.io
security:
  - BasicAuth: []
tags:
  - description: >-
      The guest object is the core entity of Sitecore CDP. It stores the
      personal data of a customer, and all relevant transactional and behavioral
      data is linked in a guest profile.

       To get started with this API, create a guest then find it in Sitecore CDP.
    name: Guest
  - description: >-
      A guest data extension is an object that lets you specify any key-value
      pairs you want. Guest data extensions are optional and enable your
      organization to capture more robust information about your guests.

       To get started with this API, create a data extension for the guest you previously created, then find the data in Sitecore CDP in the guest profile.
    name: Guest data extension
paths:
  /v2.1/guests:
    post:
      description: >-
        Creates a guest.

        The REST API does not check whether a guest already exists in Sitecore
        CDP when you create a guest. To avoid creating duplicates, first
        retrieve guests by their email address or other identifying information.


        In the response, the `ref` key contains the guest reference.


        ## Find the guest in Sitecore CDP

        You can also use the guest reference to find data about the guest in
        Sitecore CDP. In Sitecore CDP, click **Guests**, and select the **Guest
        type: All** filter. Then, in the search dropdown, select **Guest
        reference** and then enter the guest reference in the search field.
        Then, Sitecore CDP lists the guest profile for the guest.
      operationId: CreateGuest
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GuestCreate'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GuestCreateResponse'
          description: Resource successfully created
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GuestBadRequestResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
          description: Unauthorized request
      summary: Create a guest
      tags:
        - Guest
    get:
      description: >-
        Retrieves guests. We recommend that you retrieve guests by their email
        address or other identifying information using query parameters before
        you create a guest. This lets you check if a certain guest already
        exists in Sitecore CDP. If the guest exists, avoid creating duplicates.
        Instead, update the existing guest.

        ### Query parameters


        You can use the following query parameters to retrieve guests by exact
        match, using some of the following identifying information:

        - `email`

        - `orderReferenceId`

        - `orderRef`

        - `identifiers.provider` plus `identifiers.id`


        Alternatively, you can use the `expand=true` query parameter to retrieve
        guests with all their key-value pairs listed.


        #### Examples

        Here's an example of how to use the `email` query parameter to retrieve
        guests by their email address:


        `{baseURL}/v2.1/guests?email=john.doe@gmail.com"`


        Here's an example of how to use the `identifiers.provider` and the
        `identifiers.id` query parameters to retrieve guests by their
        identifiers:


        `{baseURL}/v2.1/guests?identifiers.provider=ProfileSystem&identifiers.id=B7524AE6-CF1C-440F-B1A2-0C9D42F5CB41"`


        If any of this returns a guest, avoid creating another guest with the
        same identifying information. Instead, update the existing guest.


        ### Guest reference

        In the response, in `items.href`, the guest reference is the string that
        follows the final slash&:


        `\"href\": \"{baseURL}/v2.1/guests/{guestRef}"

        `


        Example guest reference: `f7aabbca-1c1b-4fc2-be72-3e16294a4f03`


        Use the guest reference to interact with the full guest record, for
        example, to retrieve or update it.


        You can also use the guest reference to find data about the guest in
        Sitecore CDP. In Sitecore CDP, click **Guests**. In the **Search**
        field, enter the guest reference, then click the **Guest type: All**
        filter. Then, Sitecore CDP lists the guest profile for the guest.
      operationId: RetrieveGuests
      parameters:
        - in: query
          name: offset
          schema:
            $ref: '#/components/schemas/Offset'
            default: '0'
        - in: query
          name: limit
          schema:
            $ref: '#/components/schemas/Limit'
            default: '10'
        - in: query
          name: expand
          schema:
            $ref: '#/components/schemas/Expand'
            default: 'false'
        - in: query
          name: sort
          schema:
            type: string
            description: >
              You can sort search results by specifying a sort query parameter
              and a corresponding sort value (`ASC` or `DESC` case sensitive) on
              a collection resource URL.


              The example query parameter shows how to return a resource in
              ascending chronological order of when the resource was created and
              descending order of the resource label.
            example: createdAt::ASC|label::DESC'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetrieveGuestsResponse'
          description: Successful operation
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
          description: Unauthorized request
      summary: Retrieve guests
      tags:
        - Guest
  /v2.1/guests/{guestRef}:
    get:
      description: >-
        Retrieves the full guest record of a guest, including any guest data
        extensions.
      operationId: RetrieveGuest
      parameters:
        - in: path
          name: guestRef
          required: true
          schema:
            type: string
            description: >-
              The guest reference. This is a unique identifier of the guest
              record. If you don't know the guest reference, first retrieve
              guests.
            example: f7aabbca-1c1b-4fc2-be72-3e16294a4f03
        - in: query
          name: expand
          schema:
            type: array
            default: ''
            description: >
              You can expand items in a collection by setting `expand=true`.
              This eliminates the need to send multiple follow-up requests (one
              for the collection and another for each of its items). This also
              helps you check if the data you intend to create already exists.
            example: true
            items:
              type: string
              description: >
                You can expand items in a collection by setting `expand=true`.
                This eliminates the need to send multiple follow-up requests
                (one for the collection and another for each of its items). This
                also helps you check if the data you intend to create already
                exists.
              example: 'true'
            properties:
              empty:
                type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GuestCreateResponse'
          description: Successful operation
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
          description: Unauthorized request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GuestNotFoundResponse'
          description: Resource not found
      summary: Retrieve a guest
      tags:
        - Guest
    put:
      description: >-
        Fully updates a guest, replacing the entire resource including all the
        key-value pairs with the data you send in the request.


        To update certain key-value pairs only, use the Partially update a guest
        endpoint instead.
      operationId: PutGuest
      parameters:
        - in: path
          name: guestRef
          required: true
          schema:
            type: string
            description: >-
              The guest reference. This is a unique identifier of the guest
              record. If you don't know the guest reference, first retrieve
              guests.
            example: f7aabbca-1c1b-4fc2-be72-3e16294a4f03
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GuestUpdateRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GuestCreateResponse'
          description: Successful operation
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GuestBadRequestResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
          description: Unauthorized request
      summary: Update a guest
      tags:
        - Guest
    patch:
      description: >-
        Partially updates a guest, replacing only those fields in the resource
        that you provide in the request.

         For example, you can use this request to update the guest's array of phone numbers when they enter a new one.
      operationId: UpdateGuests
      parameters:
        - in: path
          name: guestRef
          required: true
          schema:
            type: string
            description: >-
              The guest reference. This is a unique identifier of the guest
              record. If you don't know the guest reference, first retrieve
              guests.
            example: f7aabbca-1c1b-4fc2-be72-3e16294a4f03
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GuestPartialUpdateRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GuestCreateResponse'
          description: Successful operation
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GuestBadRequestResponse'
          description: Bad request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
          description: Unauthorized request
      summary: Partially update a guest
      tags:
        - Guest
    delete:
      description: |-
        Deletes a guest record and all entities associated with the guest
        including orders, sessions, and events. **This is an irreversible
        operation. After you delete a guest record, you cannot retrieve the
        guest record or any related entities.**
      operationId: DeleteGuest
      parameters:
        - in: path
          name: guestRef
          required: true
          schema:
            type: string
            description: >-
              The guest reference. This is a unique identifier of the guest
              record. If you don't know the guest reference, first retrieve
              guests.
            example: f7aabbca-1c1b-4fc2-be72-3e16294a4f03
      responses:
        '200':
          content:
            application/json: {}
          description: Successful operation
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
          description: Unauthorized request
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GuestNotFoundResponse'
          description: Resource not found
      summary: Delete a guest
      tags:
        - Guest
  /v2.1/guests/{guestRef}/extensions:
    post:
      description: >
        Creates a data extension for a guest. You can create up to six data
        extensions.


        To avoid creating key-value pairs in a data extension that already exist
        within a guest profile, first retrieve a guest's collection of data
        extensions to check that the keys you intend to create are unique.


        ### Creating the request body

        In the request body, you must provide one object. This object represents
        the data extension. Note the following about the object:

        - Can contain primitive values only. You cannot nest objects. If you
        need to group key-value pairs, use prefixes for the key names.

        - Can contain a maximum of 100 key-value pairs.

        - Must contain the `name` key. This is the name of the data extension.
          - If you send extension data from one source, set the value for `name` to `ext`.
          - If you send extension data from multiple sources, you can create up to six data extensions by setting the value for `name` to one of the following: `ext`, `ext1`, `ext2`, `ext3`, `ext4`, `ext5`.
        - The other key-value pairs you include in the object become the
        extension data. For example, if you include `"loyaltyTier": "level2"` in
        the object, **Loyalty Tier** with the value of `level2` becomes
        extension data.

        - Supported data types for the values:
          - string, for example `"level2"`
          - boolean, for example `true`
          - integer, for example `9`
          - floating-point number, for example `99.9`
         #### Naming keys
        The keys you enter in the request body must be:

        - Alphanumeric [A-Z,a-z,0-9] as per the [JSON RFC
        7159](https://www.rfc-editor.org/rfc/rfc7159) specification.
         - In camel case.
        - Unique across all data extensions within a guest profile. For example,
        if `ext` contains the `vipMember` key, you must not use that key in any
        other data extensions for the same guest.


        ### Example request body

        Here's an example request body:


        ```

        {

        "name": "ext",

        "vipMember": true,

        "loyaltyTier": "level2",

        "rewardBalance": 5012.25,

        "loyaltyNumber": 3452

        }

        ```

        This creates four key-value pairs in the `ext` data extension for the
        guest.

        ### Finding the data in Sitecore CDP
          You can find the created data in Sitecore CDP by clicking **Guests** > the guest profile you created the data for > **Properties** > **Additional information**:
         - The `ext` data displays in **Data extension group**.
         - The `ext1` data displays in **Data extension group 1**.
         - The `ext2` data displays in **Data extension group 2**.
         - The `ext3` data displays in **Data extension group 3**.
         - The `ext4` data displays in **Data extension group 4**.
         - The `ext5` data displays in **Data extension group 5**.

         ### Multiple sources
         You can send extension data from multiple sources. For example, your organization might want to send extension data both from a loyalty system to capture loyalty data, and from a Customer Relationship Management (CRM) system to capture email preferences, alternative mailing addresses, and so on.

         To send data from multiple sources, we recommend that you use a different data extension name for each source system. For example, use the `ext` data extension for the loyalty system data, and use the `ext1` data extension for the CRM data.
      operationId: CreateGuestDataExtension
      parameters:
        - in: path
          name: guestRef
          required: true
          schema:
            type: string
            description: >-
              The guest reference. This is a unique identifier of the guest
              record. If you don't know the guest reference, first retrieve
              guests.
            example: f7aabbca-1c1b-4fc2-be72-3e16294a4f03
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GuestDataExtensionCreateRequest'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GuestDataExtensionResponse'
          description: Successful operation
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GuestDataExtensionBadRequestResponse'
          description: Bad request
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GuestDataExtensionConflictResponse'
          description: Conflict request
      summary: Create a data extension
      tags:
        - Guest data extension
    get:
      description: >-
        Retrieves the URLs for each of the guest's data extensions.


        We recommend that you retrieve the URLs using the `expand=true` query
        parameter to check that the keys you intend to create when you Create a
        data extension are unique. This is because keys must be unique across
        all data extensions within a guest profile.


        In the response, each URL in `items.href` corresponds to one data
        extension. Use this URL to interact with the guest's data extension, for
        example, to retrieve or update it.
      operationId: RetrieveGuestDataExtensions
      parameters:
        - in: path
          name: guestRef
          required: true
          schema:
            type: string
            description: >-
              The guest reference. This is a unique identifier of the guest
              record. If you don't know the guest reference, first retrieve
              guests.
            example: f7aabbca-1c1b-4fc2-be72-3e16294a4f03
        - in: query
          name: offset
          schema:
            $ref: '#/components/schemas/Offset'
            default: '0'
        - in: query
          name: limit
          schema:
            $ref: '#/components/schemas/Limit'
            default: '10'
        - in: query
          name: expand
          schema:
            $ref: '#/components/schemas/Expand'
            default: 'false'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RetrieveDataGuestExtensionsResponse'
          description: Successful operation
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GuestDataExtensionNotFoundResponse'
          description: Guest data extension not found.
      summary: Retrieve a guest's collection of data extensions
      tags:
        - Guest data extension
  /v2.1/guests/{guestRef}/extensions/{dataExtensionName}:
    get:
      description: Retrieves a data extension for a guest.
      operationId: retrieveGuestDataExtension
      parameters:
        - in: path
          name: guestRef
          required: true
          schema:
            type: string
            description: >-
              The guest reference. This is a unique identifier of the guest
              record. If you don't know the guest reference, first retrieve
              guests.
            example: f7aabbca-1c1b-4fc2-be72-3e16294a4f03
        - in: path
          name: dataExtensionName
          required: true
          schema:
            type: string
            description: >-
              The name of the data extension. If you don't know this value,
              first retrieve the guest's collection of data extensions.
            enum:
              - ext
              - ext1
              - ext2
              - ext3
              - ext4
              - ext5
            example: ext1
        - in: query
          name: expand
          schema:
            type: array
            default: ''
            description: >
              You can expand items in a collection by setting `expand=true`.
              This eliminates the need to send multiple follow-up requests (one
              for the collection and another for each of its items). This also
              helps you check if the data you intend to create already exists.
            example: true
            items:
              type: string
              description: >
                You can expand items in a collection by setting `expand=true`.
                This eliminates the need to send multiple follow-up requests
                (one for the collection and another for each of its items). This
                also helps you check if the data you intend to create already
                exists.
              example: 'true'
            properties:
              empty:
                type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GuestDataExtensionResponse'
          description: Successful operation
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GuestNotFoundResponse'
          description: Guest data extension not found
      summary: Retrieve a data extension
      tags:
        - Guest data extension
    put:
      description: >-
        Fully updates a data extension for a guest, replacing the entire
        resource including all the key-value pairs with the data you send in the
        request.


        To update certain key-value pairs only, use the Partially update a data
        extension endpoint instead.
      operationId: PutGuestDataExtension
      parameters:
        - in: path
          name: guestRef
          required: true
          schema:
            type: string
            description: >-
              The guest reference. This is a unique identifier of the guest
              record. If you don't know the guest reference, first retrieve
              guests.
            example: f7aabbca-1c1b-4fc2-be72-3e16294a4f03
        - in: path
          name: dataExtensionName
          required: true
          schema:
            type: string
            description: >-
              The name of the data extension. If you don't know this value,
              first retrieve the guest's collection of data extensions.
            enum:
              - ext
              - ext1
              - ext2
              - ext3
              - ext4
              - ext5
            example: ext
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GuestDataExtensionRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GuestDataExtensionResponse'
          description: Successful operation
        '400':
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/GuestDataExtensionUpdateBadRequestResponse
          description: Bad request
      summary: Update a data extension
      tags:
        - Guest data extension
    patch:
      description: >-
        Partially updates a data extension for a guest, replacing only those
        key-value pairs in the resource that you provide in the request.


        If multiple source systems use the same data extension, use this
        endpoint to safely update the key-value pairs from a specific source
        system without accidentally overwriting the key-value pairs from other
        source systems.
      operationId: UpdateGuestDataExtension
      parameters:
        - in: path
          name: guestRef
          required: true
          schema:
            type: string
            description: >-
              The guest reference. This is a unique identifier of the guest
              record. If you don't know the guest reference, first retrieve
              guests.
            example: f7aabbca-1c1b-4fc2-be72-3e16294a4f03
        - in: path
          name: dataExtensionName
          required: true
          schema:
            type: string
            description: >-
              The name of the data extension. If you don't know this value,
              first retrieve the guest's collection of data extensions.
            enum:
              - ext
              - ext1
              - ext2
              - ext3
              - ext4
              - ext5
            example: ext1
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GuestDataExtensionPatchRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GuestDataExtensionResponse'
          description: Successful operation
        '400':
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/GuestDataExtensionUpdateBadRequestResponse
          description: Bad request
      summary: Partially update a data extension
      tags:
        - Guest data extension
    delete:
      description: >-
        Deletes the data extension for a guest, including all the key-value
        pairs in the data extension.


        To delete certain key-value pairs only, use the Delete key-value pairs
        from a data extension endpoint instead.
      operationId: DeleteGuestDataExtension
      parameters:
        - in: path
          name: guestRef
          required: true
          schema:
            type: string
            description: >-
              The guest reference. This is a unique identifier of the guest
              record. If you don't know the guest reference, first retrieve
              guests.
            example: f7aabbca-1c1b-4fc2-be72-3e16294a4f03
        - in: path
          name: dataExtensionName
          required: true
          schema:
            type: string
            description: >-
              The name of the data extension. If you don't know this value,
              first retrieve the guest's collection of data extensions.
            enum:
              - ext
              - ext1
              - ext2
              - ext3
              - ext4
              - ext5
            example: ext1
      responses:
        '200':
          content:
            application/json: {}
          description: Successful operation
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GuestNotFoundResponse'
          description: Guest data extension not found
      summary: Delete a data extension
      tags:
        - Guest data extension
  /v2.1/guests/{guestRef}/extensions/{dataExtensionName}/fields:
    delete:
      description: >-
        Deletes the key-value pairs you provide in the `name` query parameter
        from a data extension for a guest.


        For example, if your data extension contains the `vipMember` and
        `loyaltyMember` keys, you can delete both keys and their values by
        making the following request:




        `{baseURL}/v2.1/guests/{guestRef}/extensions/{dataExtensionName}/fields?name=vipMember|loyaltyMember`


        If you don't provide the query parameter, this operation will empty the
        data extension: the data extension itself will not be deleted, but all
        the key-value pairs in it will.
      operationId: deleteGuestDataExtensionFields
      parameters:
        - in: path
          name: guestRef
          required: true
          schema:
            type: string
            description: >-
              The guest reference. This is a unique identifier of the guest
              record. If you don't know the guest reference, first retrieve
              guests.
            example: f7aabbca-1c1b-4fc2-be72-3e16294a4f03
        - in: path
          name: dataExtensionName
          required: true
          schema:
            type: string
            description: >-
              The name of the data extension. If you don't know this value,
              first retrieve the guest's collection of data extensions.
            enum:
              - ext
              - ext1
              - ext2
              - ext3
              - ext4
              - ext5
            example: ext1
        - in: query
          name: name
          schema:
            type: array
            default: ''
            description: The fields in the data extension object that you want to delete.
            example: vipMember|loyaltyTier
            items:
              type: string
              description: The fields in the data extension object that you want to delete.
              example: vipMember|loyaltyTier
            properties:
              empty:
                type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GuestDataExtensionResponse'
          description: Successful operation
      summary: Delete key-value pairs from a data extension
      tags:
        - Guest data extension
components:
  schemas:
    CollectionResourceGuestDataExtension:
      type: object
      properties:
        first:
          $ref: '#/components/schemas/Link'
        href:
          type: string
        items:
          type: array
          items:
            $ref: '#/components/schemas/GuestDataExtension'
        last:
          $ref: '#/components/schemas/Link'
        limit:
          type: integer
          format: int32
        next:
          $ref: '#/components/schemas/Link'
        nextOffset: {}
        offset: {}
        prev:
          $ref: '#/components/schemas/Link'
    CollectionResourceLink:
      type: object
      properties:
        first:
          $ref: '#/components/schemas/Link'
        href:
          type: string
        items:
          type: array
          items:
            $ref: '#/components/schemas/Link'
        last:
          $ref: '#/components/schemas/Link'
        limit:
          type: integer
          format: int32
        next:
          $ref: '#/components/schemas/Link'
        nextOffset: {}
        offset: {}
        prev:
          $ref: '#/components/schemas/Link'
    Expand:
      type: array
      description: >
        You can expand items in a collection by setting `expand=true`. This
        eliminates the need to send multiple follow-up requests (one for the
        collection and another for each of its items). This also helps you check
        if the data you intend to create already exists.
      example: true
      items:
        type: string
        description: >
          You can expand items in a collection by setting `expand=true`. This
          eliminates the need to send multiple follow-up requests (one for the
          collection and another for each of its items). This also helps you
          check if the data you intend to create already exists.
        example: 'true'
      properties:
        empty:
          type: boolean
    Fields:
      type: array
      description: The fields in the data extension object that you want to delete.
      example: vipMember|loyaltyTier
      items:
        type: string
        description: The fields in the data extension object that you want to delete.
        example: vipMember|loyaltyTier
      properties:
        empty:
          type: boolean
    First:
      type: object
      description: The request's first list of guests URL.
      properties:
        href:
          type: string
          example: https://api-engage-eu.sitecorecloud.io/v2.1/guests?offset=0&limit=10
    Guest:
      type: object
      description: The guest object.
      properties:
        city:
          type: string
          format: title case
          description: |
            The guest's city.

            Example values: "Dublin", "London", "Madrid", "Paris"
          example: Dublin
        country:
          type: string
          format: 2-letter ISO 3166-1 Alpha-2 country code
          description: |-
            The guest's country.

            Example values: "IE", "GB", "ES", "FR"
          example: IE
        createdAt:
          type: string
          format: date-time
          description: |
            The date and time when the resource was created in Sitecore CDP.
          example: '2024-01-01T16:17:16.000Z'
        dataExtensions:
          $ref: '#/components/schemas/CollectionResourceGuestDataExtension'
          description: The Guest's data extensions
        dateOfBirth:
          type: string
          format: date-time
          description: |
            The guest's date of birth. Validation: Date must be in the past.
          example: '1991-01-01T16:17:16.000Z'
        email:
          type: string
          deprecated: true
        emails:
          type: array
          description: |
            All the email addresses of the guest.
          example:
            - john.doe@gmail.com
          items:
            type: string
          maxItems: 1
          minItems: 0
        firstName:
          type: string
          format: title case
          description: The guest's first name.
          example: John
        firstSeen:
          type: string
          format: date-time
          description: |
            The first seen date for the guest.
          example: '2024-01-01T16:17:16.000Z'
        gender:
          type: string
          format: lowercase
          description: |
            The guest's gender.

            Example values: "male", "female", "unknown"
          example: male
        guestType:
          type: string
          format: lowercase
          description: >-
            The level of identity obtained. The `"traveller"` value is only
            applicable to certain industries.
          enum:
            - visitor
            - customer
            - traveller
          example: visitor
        href:
          type: string
        identifiers:
          type: array
          description: |
            A list of identifiers for the guest.
          items:
            $ref: '#/components/schemas/Identifier'
        identityStatus:
          type: string
          deprecated: true
        language:
          type: string
          format: 2-letter ISO 639 language code
          description: |
            The preferred language of the guest.

            Example values: "EN", "FR", "DE"
          example: EN
        lastName:
          type: string
          format: title case recommended
          description: The guest's last name.
          example: Doe
        lastSeen:
          type: string
          format: date-time
          description: >
            The last time the guest interacted with your brand. If the guest is
            currently online and is interacting with your brand, this returns
            the date and timestamp of when the current session started.
          example: '2024-01-01T16:17:16.000Z'
        modifiedAt:
          type: string
          format: date-time
          description: |
            The date and time when the resource was updated in Sitecore CDP.
          example: '2024-01-01T16:17:16.000Z'
        nationality:
          type: string
          format: title case
          description: |
            The guest's nationality.

            Example values: "Irish", "British", "Spanish", "French"
          example: Irish
        passportExpiry:
          type: string
          format: date-time
          description: |
            The expiry date of the guest's passport.
          example: '2025-01-01T00:00:00.000Z'
        passportNumber:
          type: string
          format: uppercase
          description: |
            The passport number of the guest.
          example: PZ4A9565
        phoneNumbers:
          type: array
          description: |
            The phone numbers of the guest.
          example:
            - '+353161123345'
            - '+353161123346'
          items:
            type: string
        postCode:
          type: string
          format: uppercase
          description: |
            The guest's postcode.
          example: D2
        ref:
          type: string
        state:
          type: string
          format: title case
          description: |
            The state (address) of the guest.
          example: Oregon
        street:
          type: array
          format: title case strings
          description: |
            The street address of the guest.
          example:
            - Ashford House
            - Tara Street
            - Dublin 2
          items:
            type: string
        subscriptions:
          type: array
          deprecated: true
          items:
            $ref: '#/components/schemas/GuestSubscription'
          maxItems: 0
          minItems: 0
        title:
          type: string
          format: title case
          description: >
            The title of the guest.


            Example values: "Br", "Brigadier", "Capt", "Colonel", "Dame", "Dr",
            "Elder", "Fr", "General", "Hon", "Judge", "Lord", "Master", "Miss",
            "Mr", "Mrs", "Ms", "Mstr", "Prof", "Rabbi", "Rev", "Shaikha",
            "Sheikh", "Sir", "Sister", "Sr"
          example: Mr
        zipCode:
          type: string
          deprecated: true
      required:
        - guestType
    GuestBadRequestResponse:
      type: object
      properties:
        code:
          type: integer
          format: int32
          description: The HTTP response status code.
          example: 400
        developerMessage:
          type: string
          description: Error description for developers.
          example: Attribute guestType is invalid (not a valid value).
        message:
          type: string
          description: Error description.
          example: 'guestType: not a valid value'
        moreInfoUrl:
          type: string
          description: URL to get more information about the error.
          example: https://support.sitecore.com
        status:
          type: integer
          format: int32
          description: The HTTP request status.
          example: 400
    GuestCreate:
      type: object
      properties:
        city:
          type: string
          format: title case
          description: |
            The guest's city.

            Example values: "Dublin", "London", "Madrid", "Paris"
          example: Dublin
        country:
          type: string
          format: 2-letter ISO 3166-1 Alpha-2 country code
          description: |-
            The guest's country.

            Example values: "IE", "GB", "ES", "FR"
          example: IE
        dateOfBirth:
          type: string
          format: date-time
          description: |
            The guest's date of birth. Validation: Date must be in the past.
          example: '1991-01-01T16:17:16.000Z'
        email:
          type: string
          description: |
            The email address of the guest.
          example: john.doe@gmail.com
        emails:
          type: array
          description: |
            All the email addresses of the guest.
          example:
            - john.doe@gmail.com
          items:
            type: string
        firstName:
          type: string
          format: title case
          description: The guest's first name.
          example: John
        gender:
          type: string
          format: lowercase
          description: |
            The guest's gender.

            Example values: "male", "female", "unknown"
          example: male
        guestType:
          type: string
          format: lowercase
          description: >-
            The level of identity obtained. The `"traveller"` value is only
            applicable to certain industries.
          enum:
            - visitor
            - customer
            - traveller
          example: visitor
        href:
          type: string
          description: |
            The URL of the guest.
          example: >-
            https://api-engage-eu.sitecorecloud.io/v2.1/guests/f7aabbca-1c1b-4fc2-be72-3e16294a4f03
        identifiers:
          type: array
          description: |
            A list of identifiers for the guest.
          items:
            $ref: '#/components/schemas/Identifier'
        lastName:
          type: string
          format: title case recommended
          description: The guest's last name.
          example: Doe
        nationality:
          type: string
          format: title case
          description: |
            The guest's nationality.

            Example values: "Irish", "British", "Spanish", "French"
          example: Irish
        passportExpiry:
          type: string
          format: date-time
          description: |
            The expiry date of the guest's passport.
          example: '2025-01-01T00:00:00.000Z'
        passportNumber:
          type: string
          format: uppercase
          description: |
            The passport number of the guest.
          example: PZ4A9565
        phoneNumbers:
          type: array
          description: |
            The phone numbers of the guest.
          example:
            - '+353161123345'
            - '+353161123346'
          items:
            type: string
        postCode:
          type: string
          format: uppercase
          description: |
            The guest's zipcode.
          example: D2
        ref:
          type: string
          description: |
            The Guest's reference.
          example: f7aabbca-1c1b-4fc2-be72-3e16294a4f03
        state:
          type: string
          format: title case
          description: |
            The state (address) of the guest.
          example: Oregon
        street:
          type: array
          format: title case strings
          description: |
            The street address of the guest.
          example:
            - Ashford House
            - Tara Street
            - Dublin 2
          items:
            type: string
        title:
          type: string
          format: title case
          description: >
            The title of the guest.


            Example values: "Br", "Brigadier", "Capt", "Colonel", "Dame", "Dr",
            "Elder", "Fr", "General", "Hon", "Judge", "Lord", "Master", "Miss",
            "Mr", "Mrs", "Ms", "Mstr", "Prof", "Rabbi", "Rev", "Shaikha",
            "Sheikh", "Sir", "Sister", "Sr"
          example: Mr
      required:
        - guestType
    GuestCreateResponse:
      type: object
      properties:
        city:
          type: string
          format: title case
          description: |
            The guest's city.

            Example values: "Dublin", "London", "Madrid", "Paris"
          example: Dublin
        country:
          type: string
          format: 2-letter ISO 3166-1 Alpha-2 country code
          description: |-
            The guest's country.

            Example values: "IE", "GB", "ES", "FR"
          example: IE
        createdAt:
          type: string
          format: date-time
          description: |
            The date and time when the resource was created in Sitecore CDP.
          example: '2024-01-01T16:17:16.000Z'
        dateOfBirth:
          type: string
          format: date-time
          description: |
            The guest's date of birth. Validation: Date must be in the past.
          example: '1991-01-01T16:17:16.000Z'
        email:
          type: string
          description: |
            The email address of the guest.
          example: john.doe@gmail.com
        emails:
          type: array
          description: |
            All the email addresses of the guest.
          example:
            - john.doe@gmail.com
          items:
            type: string
        firstName:
          type: string
          format: title case
          description: The guest's first name.
          example: John
        firstSeen:
          type: string
          format: date-time
          description: |
            The first seen date for the guest.
          example: '2024-01-01T16:17:16.000Z'
        gender:
          type: string
          format: lowercase
          description: |
            The guest's gender.

            Example values: "male", "female", "unknown"
          example: male
        guestType:
          type: string
          format: lowercase
          description: >-
            The level of identity obtained. The `"traveller"` value is only
            applicable to certain industries.
          enum:
            - visitor
            - customer
            - traveller
          example: visitor
        href:
          type: string
          description: |
            The URL of the guest.
          example: >-
            https://api-engage-eu.sitecorecloud.io/v2.1/guests/f7aabbca-1c1b-4fc2-be72-3e16294a4f03
        identifiers:
          type: array
          description: |
            A list of identifiers for the guest.
          items:
            $ref: '#/components/schemas/Identifier'
        lastName:
          type: string
          format: title case recommended
          description: The guest's last name.
          example: Doe
        lastSeen:
          type: string
          format: date-time
          description: >
            The last time the guest interacted with your brand. If the guest is
            currently online and is interacting with your brand, this returns
            the date and timestamp of when the current session started.
          example: '2024-01-01T16:17:16.000Z'
        modifiedAt:
          type: string
          format: date-time
          description: |
            The date and time when the resource was updated in Sitecore CDP.
          example: '2024-01-01T16:17:16.000Z'
        nationality:
          type: string
          format: title case
          description: |
            The guest's nationality.

            Example values: "Irish", "British", "Spanish", "French"
          example: Irish
        passportExpiry:
          type: string
          format: date-time
          description: |
            The expiry date of the guest's passport.
          example: '2025-01-01T00:00:00.000Z'
        passportNumber:
          type: string
          format: uppercase
          description: |
            The passport number of the guest.
          example: PZ4A9565
        phoneNumbers:
          type: array
          description: |
            The phone numbers of the guest.
          example:
            - '+353161123345'
            - '+353161123346'
          items:
            type: string
        postCode:
          type: string
          format: uppercase
          description: |
            The guest's zipcode.
          example: D2
        ref:
          type: string
          description: |
            The Guest's reference.
          example: f7aabbca-1c1b-4fc2-be72-3e16294a4f03
        state:
          type: string
          format: title case
          description: |
            The state (address) of the guest.
          example: Oregon
        street:
          type: array
          format: title case strings
          description: |
            The street address of the guest.
          example:
            - Ashford House
            - Tara Street
            - Dublin 2
          items:
            type: string
        title:
          type: string
          format: title case
          description: >
            The title of the guest.


            Example values: "Br", "Brigadier", "Capt", "Colonel", "Dame", "Dr",
            "Elder", "Fr", "General", "Hon", "Judge", "Lord", "Master", "Miss",
            "Mr", "Mrs", "Ms", "Mstr", "Prof", "Rabbi", "Rev", "Shaikha",
            "Sheikh", "Sir", "Sister", "Sr"
          example: Mr
      required:
        - guestType
    GuestDataExtension:
      type: object
      description: The data extension object.
      properties:
        createdAt:
          type: string
          format: date-time
          description: The date and time when the resource was created in Sitecore CDP.
          example: '2024-01-01T16:17:16.000Z'
        href:
          type: string
        key:
          type: string
          description: You must set this to `default`.
          example: default
        modifiedAt:
          type: string
          format: date-time
          description: >-
            The date and time when the resource was last updated in Sitecore
            CDP.
          example: '2024-01-01T16:17:16.000Z'
        ref:
          type: string
      required:
        - key
        - name
    GuestDataExtensionBadRequestResponse:
      type: object
      properties:
        code:
          type: integer
          format: int32
          description: The HTTP response status code.
          example: 400
        developerMessage:
          type: string
          description: Error description for developers.
          example: >-
            Attribute name is invalid (value must be one of
            ext,ext1,ext2,ext3,ext4,ext5).
        message:
          type: string
          description: Error description.
          example: 'name: value must be one of ext,ext1,ext2,ext3,ext4,ext5'
        moreInfoUrl:
          type: string
          description: URL to get more information about the error.
          example: https://support.sitecore.com
        status:
          type: integer
          format: int32
          description: The HTTP request status.
          example: 400
    GuestDataExtensionConflictResponse:
      type: object
      properties:
        code:
          type: integer
          format: int32
          description: The HTTP response status code.
          example: 409
        developerMessage:
          type: string
          description: Error description for developers.
          example: 409
        message:
          type: string
          description: Error description.
          example: Data extension ext1 already exists.
        moreInfoUrl:
          type: string
          description: URL to get more information about the error.
          example: https://support.sitecore.com
        status:
          type: integer
          format: int32
          description: The HTTP request status.
          example: 409
    GuestDataExtensionCreateRequest:
      type: object
      properties:
        name:
          type: string
          description: The name of the data extension.
          enum:
            - ext
            - ext1
            - ext2
            - ext3
            - ext4
            - ext5
          example: ext1
        '{exampleKey1}':
          type:
            - string
            - boolean
            - integer
            - number
          description: |-
            A key-value pair of your choice.
             Example: `"vipMember": true`
          example: '{exampleValue1}'
        '{exampleKey2}':
          type:
            - string
            - boolean
            - integer
            - number
          description: |-
            A key-value pair of your choice.
             Example: `"loyaltyTier": "level2"`
          example: '{exampleValue2}'
      required:
        - name
    GuestDataExtensionNotFoundResponse:
      type: object
      properties:
        code:
          type: integer
          format: int32
          description: The HTTP response status code.
          example: 404
        developerMessage:
          type: string
          description: Error description for developers.
          example: >-
            Data extension ext2 for Guest ref
            ea9b4612-3488-47d9-beea-17404876f5d6 and client key {...} was not
            found for v2.1
        message:
          type: string
          description: Error description.
          example: The specified resource does not exist.
        moreInfoUrl:
          type: string
          description: URL to get more information about the error.
          example: https://support.sitecore.com
        status:
          type: integer
          format: int32
          description: The HTTP request status.
          example: 404
    GuestDataExtensionPatchRequest:
      type: object
      properties:
        '{exampleKey1}':
          type:
            - string
            - boolean
            - integer
            - number
          description: |-
            A key-value pair of your choice.
            Example: `"vipMember": true``
          example: '{exampleValue1}'
    GuestDataExtensionRequest:
      type: object
      properties:
        '{exampleKey1}':
          type:
            - string
            - boolean
            - integer
            - number
          description: |-
            A key-value pair of your choice.
             Example: `"vipMember": true`
          example: '{exampleValue1}'
        '{exampleKey2}':
          type:
            - string
            - boolean
            - integer
            - number
          description: |-
            A key-value pair of your choice.
             Example: `"loyaltyTier": "level2"`
          example: '{exampleValue2}'
    GuestDataExtensionResponse:
      type: object
      properties:
        createdAt:
          type: string
          format: date-time
          description: The date and time when the resource was created in Sitecore CDP.
          example: '2024-01-01T16:17:16.000Z'
        guest:
          $ref: '#/components/schemas/GuestHref'
        href:
          type: string
          description: |
            The URL of the guest extension.
          example: >-
            https://api-engage-eu.sitecorecloud.io/v2.1/guests/f7aabbca-1c1b-4fc2-be72-3e16294a4f03/ext1
        key:
          type: string
          description: You must set this to `default`.
          example: default
        modifiedAt:
          type: string
          format: date-time
          description: >-
            The date and time when the resource was last updated in Sitecore
            CDP.
          example: '2024-01-01T16:17:16.000Z'
        name:
          type: string
          description: >-
            The name of the data extension. You can only use a name once in a
            collection.
          example: ext
        ref:
          type: string
          description: |
            Guest extension reference.
          example: 6a5cb3c2-1a4a-56d8-8a01-1ede232b9db2
        '{exampleKey1}':
          type:
            - string
            - boolean
            - integer
            - number
          description: |-
            A key-value pair in the data extension.
             Example: `"vipMember": true`
          example: '{exampleValue1}'
        '{exampleKey2}':
          type:
            - string
            - boolean
            - integer
            - number
          description: |-
            A key-value pair in the data extension.
             Example: `"loyaltyTier": "level2"`
          example: '{exampleValue2}'
    GuestDataExtensionUpdateBadRequestResponse:
      type: object
      properties:
        code:
          type: integer
          format: int32
          description: The HTTP response status code.
          example: 400
        developerMessage:
          type: string
          description: Error description for developers.
          example: 'JSON parse error [line: 7, column: 6].'
        message:
          type: string
          description: Error description.
          example: Unable to parse JSON string
        moreInfoUrl:
          type: string
          description: URL to get more information about the error.
          example: https://support.sitecore.com
        status:
          type: integer
          format: int32
          description: The HTTP request status.
          example: 400
    GuestExtensionLink:
      type: object
      properties:
        href:
          type: string
          example: >-
            https://api-engage-eu.sitecorecloud.io/v2.1/guests/c6cf690f-8384-4734-ab2d-6caa53b6308c/extensions/ext
    GuestHref:
      type: object
      properties:
        href:
          type: string
          description: The URL of the guest.
          example: >-
            https://api-engage-eu.sitecorecloud.io/v2.1/guests/f7aabbca-1c1b-4fc2-be72-3e16294a4f03
    GuestLink:
      type: object
      properties:
        href:
          type: string
          example: >-
            https://api-engage-eu.sitecorecloud.io/v2.1/guests/c6cf690f-8384-4734-ab2d-6caa53b6308c
    GuestNotFoundResponse:
      type: object
      properties:
        code:
          type: integer
          format: int32
          description: The HTTP response status code.
          example: 404
        developerMessage:
          type: string
          description: Error description for developers.
          example: >-
            Guest with ref f7aabbca-1c1b-4fc2-be72-3e16294a4f03a for client key
            {...} was not found
        message:
          type: string
          description: Error description.
          example: The specified resource does not exist.
        moreInfoUrl:
          type: string
          description: URL to get more information about the error.
          example: https://support.sitecore.com
        status:
          type: integer
          format: int32
          description: The HTTP request status.
          example: 404
    GuestPartialUpdateRequest:
      type: object
      properties:
        phoneNumbers:
          type: array
          description: |
            The phone numbers of the guest.
          example:
            - '+353161123345'
            - '+353161123346'
          items:
            type: string
    GuestSubscription:
      type: object
      properties:
        channel:
          type: string
          description: The channel the guest used to subscribe.
          example: WEB
        effectiveDate:
          type: string
          format: date-time
          description: The date the subscription is effective from.
          example: '2024-01-01T16:17:16.000Z'
        name:
          type: string
          description: The subscription name.
          example: newsletter_subscription
        pointOfSale:
          type: string
          description: The point of sale the guest used to subscribe.
          example: myRetailsite/ireland
        status:
          type: string
          description: The subscription status.
          enum:
            - UNKNOWN
            - PENDING
            - SUBSCRIBED
            - UNSUBSCRIBED
          example: SUBSCRIBED
      required:
        - channel
        - name
        - pointOfSale
        - status
    GuestUpdateRequest:
      type: object
      properties:
        city:
          type: string
          format: title case
          description: |
            The guest's city.

            Example values: "Dublin", "London", "Madrid", "Paris"
          example: Dublin
        country:
          type: string
          format: 2-letter ISO 3166-1 Alpha-2 country code
          description: |-
            The guest's country.

            Example values: "IE", "GB", "ES", "FR"
          example: IE
        dateOfBirth:
          type: string
          format: date-time
          description: |
            The guest's date of birth. Validation: Date must be in the past.
          example: '1991-01-01T16:17:16.000Z'
        emails:
          type: array
          description: |
            All the email addresses of the guest.
          example:
            - john.doe@gmail.com
          items:
            type: string
        firstName:
          type: string
          format: title case
          description: The guest's first name.
          example: John
        gender:
          type: string
          format: lowercase
          description: |
            The guest's gender.

            Example values: "male", "female", "unknown"
          example: male
        guestType:
          type: string
          format: lowercase
          description: >-
            The level of identity obtained. The `"traveller"` value is only
            applicable to certain industries.
          enum:
            - visitor
            - customer
            - traveller
          example: visitor
        identifiers:
          type: array
          description: |
            A list of identifiers for the guest.
          items:
            $ref: '#/components/schemas/Identifier'
        lastName:
          type: string
          format: title case recommended
          description: The guest's last name.
          example: Doe
        nationality:
          type: string
          format: title case
          description: |
            The guest's nationality.

            Example values: "Irish", "British", "Spanish", "French"
          example: Irish
        passportExpiry:
          type: string
          format: date-time
          description: |
            The expiry date of the guest's passport.
          example: '2025-01-01T00:00:00.000Z'
        passportNumber:
          type: string
          format: uppercase
          description: |
            The passport number of the guest.
          example: PZ4A9565
        phoneNumbers:
          type: array
          description: |
            The phone numberss of the guest.
          example:
            - '+353161123345'
            - '+353161123346'
          items:
            type: string
            description: |
              The phone numberss of the guest.
            example: '["+353161123345","+353161123346"]'
        postCode:
          type: string
          format: uppercase
          description: |
            The guest's postcode.
          example: D2
        state:
          type: string
          format: title case
          description: |
            The state (address) of the guest.
          example: Oregon
        street:
          type: array
          format: title case strings
          description: |
            The street address of the guest.
          example:
            - Ashford House
            - Tara Street
            - Dublin 2
          items:
            type: string
        title:
          type: string
          format: title case
          description: >
            The title of the guest.


            Example values: "Br", "Brigadier", "Capt", "Colonel", "Dame", "Dr",
            "Elder", "Fr", "General", "Hon", "Judge", "Lord", "Master", "Miss",
            "Mr", "Mrs", "Ms", "Mstr", "Prof", "Rabbi", "Rev", "Shaikha",
            "Sheikh", "Sir", "Sister", "Sr"
          example: Mr
    Identifier:
      type: object
      description: A list of identifiers for the guest.
      properties:
        expiryDate:
          type: string
          format: date-time
          description: The expiry date of the identifier.
          example: '2025-01-01T16:17:16.000Z'
        id:
          type: string
          description: The identifier ID.
          example: B7524AE6-CF1C-440F-B1A2-0C9D42F5CB41
        provider:
          type: string
          description: The identifier provider.
          example: ProfileSystem
      required:
        - id
        - provider
    Limit:
      type: object
      default: 10
      description: >
        Collection responses use offset pagination. This query parameter lets
        you adjust the maximum number of collection items to return for a single
        request.
      example: 40
      maximum: 100
      minimum: 10
    Link:
      type: object
      properties:
        href:
          type: string
    Next:
      type: object
      description: The request's next list of guests URL.
      properties:
        href:
          type: string
          example: https://api-engage-eu.sitecorecloud.io/v2.1/guests?offset=0&limit=10
    Offset:
      type: object
      default: 0
      description: >-
        Collection responses use offset pagination. The offset query parameter
        is used to exclude from a response the first N items of the entire
        resource collection.
      example: 10
    RetrieveDataGuestExtensionsResponse:
      type: object
      properties:
        href:
          type: string
          description: Request's URL.
          example: >-
            https://api-engage-eu.sitecorecloud.io/v2.1/guests/f7aabbca-1c1b-4fc2-be72-3e16294a4f03/extensions?offset=0&limit=10
        items:
          type: array
          items:
            $ref: '#/components/schemas/GuestExtensionLink'
        limit:
          type: integer
          format: int32
          description: Request's limit.
          example: 10
        offset:
          type: integer
          format: int32
          description: Request's offset.
          example: 0
    RetrieveGuestsResponse:
      type: object
      properties:
        First:
          $ref: '#/components/schemas/First'
          description: The request's first list of guests URL.
        Next:
          $ref: '#/components/schemas/Next'
          description: The request's next list of guests URL.
        href:
          type: string
          description: The request's URL.
          example: https://api-engage-eu.sitecorecloud.io/v2.1/guests?offset=0&limit=10
        items:
          type: array
          items:
            $ref: '#/components/schemas/GuestLink'
        limit:
          type: integer
          format: int32
          description: The request's limit.
          example: 10
        offset:
          type: integer
          format: int32
          description: The request's offset.
          example: 0
    UnauthorizedResponse:
      type: object
      properties:
        code:
          type: integer
          format: int32
          description: The HTTP response status code.
          example: 401
        message:
          type: string
          description: Error description.
          example: >-
            Authentication credentials are required to access the resource. All
            requests must be authenticated.
        moreInfoUrl:
          type: string
          description: URL to get more information about the error.
          example: https://support.sitecore.com
        status:
          type: string
          format: uppercase
          description: The HTTP request status.
          example: UNAUTHORIZED
  securitySchemes:
    BasicAuth:
      scheme: basic
      type: http
    BearerToken:
      bearerFormat: JWT
      scheme: bearer
      type: http
x-logo:
  altText: Guest REST API
  url: https://content-search-api-doc.rfksrv.com/logo.png
