Yext Administrative API API

NOTE: You need a sandbox account to test your Administrative API integration. Contact your Account Manager to have one created for you.

Operations 20

GET /accounts/{accountId}/availableservices Available Services: List #
POST /accounts/{accountId}/newlocationaddrequests Add Requests: Create (New Location) #
POST /accounts/{accountId}/existinglocationaddrequests Add Requests: Create (Existing Location) #
POST /accounts/{accountId}/existingsubaccountaddrequests Add Requests: Create (Existing Account) #
POST /accounts/{accountId}/cancelservices Services: Cancel (Location) #
POST /accounts/{accountId}/cancelsubaccountservices Services: Cancel (Account) #
POST /accounts/{accountId}/cancelallsubaccountservices Services: Cancel All (Account) #
POST /accounts/{accountId}/processaddrequest Add Requests: Process (Sandbox API Only) #
GET /accounts/{accountId}/addrequests Add Requests: List (Location) #
GET /accounts/{accountId}/addrequests/{addRequestId} Add Requests: Get (Location) #
GET /accounts/{accountId}/subaccountaddrequests Add Requests: List (Sub-Account) #
GET /accounts/{accountId}/subaccountaddrequests/{addRequestId} Add Requests: Get (Sub-Account) #
GET /accounts/{accountId}/services Services: List (Location) #
GET /accounts/{accountId}/subaccountservices Services: List (Sub-Account) #
POST /accounts/{accountId}/createsubaccount Accounts: Create Sub-Account #
POST /accounts/{accountId}/resourcesapplyrequests Resources Apply Request: Create (Account) #
GET /accounts/{accountId}/resourcesapplyrequests/{requestId} Resources Apply Request Status: Get (Account) #
GET /accounts Accounts: List #
GET /accounts/{accountId} Accounts: Get #
PUT /accounts/{accountId} Accounts: Update #

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/yext-administrative-api-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

yext-administrative-api-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Yext Admin Administrative API
  version: '2.0'
  description: 'NOTE: You need a sandbox account to test your Administrative API integration. Contact your Account Manager to have one created for you.'
servers:
- url: https://api.yextapis.com/v2
security:
- api_key: []
- api-key: []
tags:
- name: Administrative API
  description: 'NOTE: You need a sandbox account to test your Administrative API integration. Contact your Account Manager to have one created for you.'
paths:
  /accounts/{accountId}/availableservices:
    parameters:
    - $ref: '#/components/parameters/accountId'
    - $ref: '#/components/parameters/v'
    get:
      operationId: listAvailableServices
      tags:
      - Administrative API
      summary: 'Available Services: List'
      description: Return list of services available to you under your agreements
      responses:
        '200':
          $ref: '#/components/responses/AvailableServicesResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/newlocationaddrequests:
    parameters:
    - $ref: '#/components/parameters/accountId'
    - $ref: '#/components/parameters/v'
    post:
      operationId: createNewLocationAddRequest
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewLocationAddRequest'
      tags:
      - Administrative API
      summary: 'Add Requests: Create (New Location)'
      description: 'Request that a new location be added and services added to it. The location is created only if the "status" field returned is "COMPLETE". In most cases, the "status" returned in the Add Request: Create response will be "SUBMITTED". For a list and explanation of each possible "status", please see the [**Add Requests: Get (Location)**](#operation/getAddRequest) section.


        To receive real-time updates on the status of your Add Request, we recommend that you configure the [**Add Request Update: Webhook**](../webhooks/index.html#operation/addRequestWebhook) in the Developer Console (see the [**Configure Webhooks**](http://developer.yext.com/docs/guides/configure-webhooks/) guide for more information). Alternatively, use the [**Add Requests: Get (Location)**](#operation/getAddRequest) call to determine the current Add Request "status".

        '
      responses:
        '200':
          $ref: '#/components/responses/NewLocationAddRequestsResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/existinglocationaddrequests:
    parameters:
    - $ref: '#/components/parameters/accountId'
    - $ref: '#/components/parameters/v'
    post:
      operationId: createExistingLocationAddRequest
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExistingLocationAddRequest'
      tags:
      - Administrative API
      summary: 'Add Requests: Create (Existing Location)'
      description: Request that one or more available services be added to an existing location.
      responses:
        '200':
          $ref: '#/components/responses/ExistingLocationAddRequestsResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/existingsubaccountaddrequests:
    parameters:
    - $ref: '#/components/parameters/accountId'
    - $ref: '#/components/parameters/v'
    post:
      operationId: createExistingSubAccountAddRequest
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExistingSubAccountAddRequest'
      tags:
      - Administrative API
      summary: 'Add Requests: Create (Existing Account)'
      description: Request that one or more available services be added (or increased in quantity) to an existing account.
      responses:
        '200':
          $ref: '#/components/responses/ExistingSubAccountAddRequestsResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/cancelservices:
    parameters:
    - name: accountId
      in: path
      required: true
      schema:
        type: string
      description: 'The ID of the account.


        **NOTE:** If you would like to cancel location services under a sub-account, enter the ID of the *main account* rather than the sub-account.

        '
    - $ref: '#/components/parameters/v'
    post:
      operationId: cancelServices
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CancelServicesRequest'
      tags:
      - Administrative API
      summary: 'Services: Cancel (Location)'
      description: 'Cancel one or more active services provisioned on the location.


        **NOTE:** If you have added location services under a sub-account, use this endpoint on your *main account* to cancel them.

        '
      responses:
        '200':
          $ref: '#/components/responses/CancelServicesResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/cancelsubaccountservices:
    parameters:
    - name: accountId
      in: path
      required: true
      schema:
        type: string
      description: 'The ID of the account.


        **NOTE:** Enter the ID of the *main account* rather than the sub-account to cancel services provisioned on the sub-account.

        '
    - $ref: '#/components/parameters/v'
    post:
      operationId: cancelSubAccountServices
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CancelSubAccountServicesRequest'
      tags:
      - Administrative API
      summary: 'Services: Cancel (Account)'
      description: 'Cancel (or decrease the quantity of) one or more active services provisioned on the account.


        **NOTE:** If you have added services to a sub-account, use this endpoint on your *main account* to cancel them.

        '
      responses:
        '200':
          $ref: '#/components/responses/CancelSubAccountServicesResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/cancelallsubaccountservices:
    parameters:
    - name: accountId
      in: path
      required: true
      schema:
        type: string
      description: 'The ID of the account.


        **NOTE:** Enter the ID of the *main account* rather than the sub-account to cancel all of the services provisioned on the sub-account.

        '
    - $ref: '#/components/parameters/v'
    post:
      operationId: cancelAllSubAccountServices
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CancelAllSubAccountServicesRequest'
      tags:
      - Administrative API
      summary: 'Services: Cancel All (Account)'
      description: 'Cancel all active services (all quantities) provisioned on the account.


        **NOTE:** If you have added services to a sub-account, use this endpoint on your *main account* to cancel all of them.

        '
      responses:
        '200':
          $ref: '#/components/responses/CancelAllSubAccountServicesResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/processaddrequest:
    parameters:
    - $ref: '#/components/parameters/accountId'
    - $ref: '#/components/parameters/v'
    post:
      operationId: createProcessReviewAddRequest
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProcessReviewAddRequest'
      tags:
      - Administrative API
      summary: 'Add Requests: Process (Sandbox API Only)'
      description: Request that an add request in REVIEW be processed to COMPLETE, CANCELED, or FAILED. Only applicable for location add requests.
      responses:
        '200':
          $ref: '#/components/responses/EmptyResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/addrequests:
    parameters:
    - $ref: '#/components/parameters/accountId'
    - $ref: '#/components/parameters/v'
    get:
      operationId: listAddRequests
      parameters:
      - name: status
        in: query
        schema:
          type: string
          enum:
          - SUBMITTED
          - PROCESSING
          - COMPLETE
          - CANCELED
          - REVIEW
          - FAILED
        description: Filters the list to add requests in a specific status.
      - name: submittedAfter
        in: query
        schema:
          type: string
          format: date
        description: (`YYYY-MM-DDThh:mm:ss` format)
      - name: submittedBefore
        in: query
        schema:
          type: string
          format: date
        description: (`YYYY-MM-DDThh:mm:ss` format)
      - name: updatedAfter
        in: query
        schema:
          type: string
          format: date
        description: (`YYYY-MM-DDThh:mm:ss` format)
      - name: updatedBefore
        in: query
        schema:
          type: string
          format: date
        description: (`YYYY-MM-DDThh:mm:ss` format)
      - name: sku
        in: query
        schema:
          type: string
      - name: agreementId
        in: query
        schema:
          type: integer
      - name: locationId
        in: query
        schema:
          type: string
      - name: limit
        in: query
        schema:
          type: integer
          maximum: 1000
          default: 100
      - $ref: '#/components/parameters/offset'
      tags:
      - Administrative API
      summary: 'Add Requests: List (Location)'
      description: "Get all of the add requests in the account that were created for locations. The response includes both New Location Add Requests and Existing Location Add Requests.\n\nPossible `status` values for each add request:\n  * SUBMITTED - The request has been submitted for processing. Updated status should be available soon, usually within seconds.\n  * PROCESSING - The request is currently being processed. Updated status should be available soon, usually within seconds.\n  * COMPLETE - The request was successfully processed and service was added. You can verify this by retrieving services for the location.\n  * CANCELED - The request was purposefully canceled by Yext and was not processed. Details are available in the *results* field.\n  * REVIEW - The request is being reviewed by Yext, most likely because this location may be a duplicate of another location already\n    receiving this service through Yext. Once the review is complete, *status* will be updated to either CANCELED or COMPLETE.\n  * FAILED - Processing the request failed due to a technical issue. Details may be available in the *statusDetail* field. No changes were made to your account, so you can\n    try the request again.\n"
      responses:
        '200':
          $ref: '#/components/responses/AddRequestsResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/addrequests/{addRequestId}:
    parameters:
    - $ref: '#/components/parameters/accountId'
    - name: addRequestId
      in: path
      schema:
        type: integer
      description: 'addRequestId returned from a previous call to **Add Requests: Create (New Location)**, **Add Requests: Create (Existing Location)**, or retrieved from **Add Requests: List (Location)**

        '
      required: true
    - $ref: '#/components/parameters/v'
    get:
      operationId: getAddRequest
      tags:
      - Administrative API
      summary: 'Add Requests: Get (Location)'
      description: "Get status information about an add request that was previously created for a location.\n\nPossible statuses:\n  * SUBMITTED - The request has been submitted for processing. Updated status should be available soon, usually within seconds.\n  * PROCESSING - The request is currently being processed. Updated status should be available soon, usually within seconds.\n  * COMPLETE - The request was successfully processed and service was added. You can verify this by retrieving services for the location.\n  * CANCELED - The request was purposefully canceled by Yext and was not processed. Details are available in the *results* field.\n  * REVIEW - The request is being reviewed by Yext, most likely because this location may be a duplicate of another location already\n    receiving this service through Yext. Once the review is complete, *status* will be updated to either CANCELED or COMPLETE.\n  * FAILED - Processing the request failed due to a technical issue. Details may be available in the *statusDetail* field. No changes were made to your account, so you can\n    try the request again.\n"
      responses:
        '200':
          $ref: '#/components/responses/AddRequestResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/subaccountaddrequests:
    parameters:
    - $ref: '#/components/parameters/accountId'
    - $ref: '#/components/parameters/v'
    get:
      operationId: listSubAccountAddRequests
      parameters:
      - name: status
        in: query
        schema:
          type: string
          enum:
          - SUBMITTED
          - PROCESSING
          - COMPLETE
          - CANCELED
          - FAILED
        description: Filters the list to add requests in a specific status.
      - name: submittedAfter
        in: query
        schema:
          type: string
          format: date
        description: (`YYYY-MM-DDThh:mm:ss` format)
      - name: submittedBefore
        in: query
        schema:
          type: string
          format: date
        description: (`YYYY-MM-DDThh:mm:ss` format)
      - name: updatedAfter
        in: query
        schema:
          type: string
          format: date
        description: (`YYYY-MM-DDThh:mm:ss` format)
      - name: updatedBefore
        in: query
        schema:
          type: string
          format: date
        description: (`YYYY-MM-DDThh:mm:ss` format)
      - name: sku
        in: query
        schema:
          type: string
      - name: agreementId
        in: query
        schema:
          type: integer
      - name: subAccountId
        in: query
        schema:
          type: string
      - name: limit
        in: query
        schema:
          type: integer
          maximum: 1000
          default: 100
      - $ref: '#/components/parameters/offset'
      tags:
      - Administrative API
      summary: 'Add Requests: List (Sub-Account)'
      description: "Get all of the add requests in the account that were created for sub-accounts.\n\nPossible `status` values for each add request:\n  * SUBMITTED - The request has been submitted for processing. Updated status should be available soon, usually within seconds.\n  * PROCESSING - The request is currently being processed. Updated status should be available soon, usually within seconds.\n  * COMPLETE - The request was successfully processed and service was added. You can verify this by retrieving services for the sub-account.\n  * CANCELED - The request was purposefully canceled by Yext and was not processed. Details are available in the *results* field.\n  * FAILED - Processing the request failed due to a technical issue. Details may be available in the *statusDetail* field. No changes were made to your account, so you can\n    try the request again.\n"
      responses:
        '200':
          $ref: '#/components/responses/SubAccountAddRequestsResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/subaccountaddrequests/{addRequestId}:
    parameters:
    - $ref: '#/components/parameters/accountId'
    - name: addRequestId
      in: path
      schema:
        type: integer
      description: 'addRequestId returned from a previous call to **Add Requests: Create (Existing Account)** or retrieved from **Add Requests: List (Sub-Account)**

        '
      required: true
    - $ref: '#/components/parameters/v'
    get:
      operationId: getSubAccountAddRequest
      tags:
      - Administrative API
      summary: 'Add Requests: Get (Sub-Account)'
      description: "Get status information about an add request that was previously created for a sub-account.\n\nPossible statuses:\n  * SUBMITTED - The request has been submitted for processing. Updated status should be available soon, usually within seconds.\n  * PROCESSING - The request is currently being processed. Updated status should be available soon, usually within seconds.\n  * COMPLETE - The request was successfully processed and service was added. You can verify this by retrieving services for the sub-account.\n  * CANCELED - The request was purposefully canceled by Yext and was not processed. Details are available in the *results* field.\n  * FAILED - Processing the request failed due to a technical issue. Details may be available in the *statusDetail* field. No changes were made to your account, so you can\n    try the request again.\n"
      responses:
        '200':
          $ref: '#/components/responses/SubAccountAddRequestResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/services:
    parameters:
    - name: accountId
      in: path
      required: true
      schema:
        type: string
      description: 'The ID of the account.


        **NOTE:** To retrieve information about services provisioned on a location under a sub-account, enter the ID of the *main account* rather than the sub-account.

        '
    - $ref: '#/components/parameters/v'
    get:
      operationId: listServices
      tags:
      - Administrative API
      summary: 'Services: List (Location)'
      description: 'Retrieve a list of all services provisioned on a location.


        **NOTE:** If you have added location services under sub-accounts, they will be returned from this endpoint on your *main account*.

        '
      parameters:
      - name: sku
        in: query
        schema:
          type: string
      - name: locationId
        in: query
        schema:
          type: string
      - name: locationAccountId
        in: query
        schema:
          type: string
        description: '*(Portal Mode only)* Filters on the account that the location receiving service is in.

          '
      - name: status
        in: query
        schema:
          type: string
          enum:
          - ACTIVE
          - STOPPED
          - ALL
        description: Status of the service. By default, returns only Active services, not All services.
      - name: agreementId
        in: query
        schema:
          type: integer
      - name: limit
        in: query
        schema:
          type: integer
          maximum: 1000
          default: 100
      - $ref: '#/components/parameters/offset'
      responses:
        '200':
          $ref: '#/components/responses/ServicesResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/subaccountservices:
    parameters:
    - name: accountId
      in: path
      required: true
      schema:
        type: string
      description: 'The ID of the account.


        **NOTE:** To retrieve information about services provisioned on a sub-account, enter the ID of the *main account* rather than the sub-account.

        '
    - $ref: '#/components/parameters/v'
    get:
      operationId: listSubAccountServices
      tags:
      - Administrative API
      summary: 'Services: List (Sub-Account)'
      description: 'Retrieve a list of all services provisioned on a sub-account.


        **NOTE:** If you have added services to sub-accounts, they will be returned from this endpoint on your *main account*.

        '
      parameters:
      - name: sku
        in: query
        schema:
          type: string
      - name: subAccountId
        in: query
        schema:
          type: string
      - name: status
        in: query
        schema:
          type: string
          enum:
          - ACTIVE
          - STOPPED
          - ALL
        description: Status of the service. By default, returns only Active services, not All services.
      - name: agreementId
        in: query
        schema:
          type: integer
      - name: limit
        in: query
        schema:
          type: integer
          maximum: 1000
          default: 100
      - $ref: '#/components/parameters/offset'
      responses:
        '200':
          $ref: '#/components/responses/SubAccountServicesResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/createsubaccount:
    parameters:
    - $ref: '#/components/parameters/accountId'
    - $ref: '#/components/parameters/v'
    post:
      operationId: createSubAccount
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSubAccountRequest'
      tags:
      - Administrative API
      summary: 'Accounts: Create Sub-Account'
      description: Request to create a new empty sub-account under this account.
      responses:
        '200':
          $ref: '#/components/responses/CreateSubAccountResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/resourcesapplyrequests:
    parameters:
    - $ref: '#/components/parameters/accountId'
    - $ref: '#/components/parameters/v'
    post:
      operationId: resourcesApplyRequest
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourcesApplyRequest'
      tags:
      - Administrative API
      summary: 'Resources Apply Request: Create (Account)'
      description: 'Create a request to asynchronously apply resources using the URL of a GitHub repository.

        '
      responses:
        '200':
          $ref: '#/components/responses/ResourcesApplyRequestResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/resourcesapplyrequests/{requestId}:
    parameters:
    - name: requestId
      in: path
      schema:
        type: integer
      description: 'requestId returned from a previous call to **Resources Apply Requests: Create (Account)**

        '
      required: true
    - $ref: '#/components/parameters/accountId'
    - $ref: '#/components/parameters/v'
    get:
      operationId: getResourcesApplyRequestStatus
      tags:
      - Administrative API
      summary: 'Resources Apply Request Status: Get (Account)'
      description: 'Make a request to get the status of the Resources Apply Request.

        '
      responses:
        '200':
          $ref: '#/components/responses/ResourcesApplyRequestResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts:
    parameters:
    - $ref: '#/components/parameters/v'
    get:
      operationId: listAccounts
      parameters:
      - name: name
        in: query
        schema:
          type: string
        description: Returns only accounts whose name contains the provided string
      - name: limit
        in: query
        schema:
          type: integer
          maximum: 1000
          default: 100
      - $ref: '#/components/parameters/offset'
      tags:
      - Administrative API
      summary: 'Accounts: List'
      description: List all accounts that you have access to. Unless you are in Partner Portal mode, this will only be your own account.
      responses:
        '200':
          $ref: '#/components/responses/AccountsResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}:
    parameters:
    - $ref: '#/components/parameters/accountId'
    - $ref: '#/components/parameters/v'
    get:
      operationId: getAccount
      tags:
      - Administrative API
      summary: 'Accounts: Get'
      description: Get details for an account
      responses:
        '200':
          $ref: '#/components/responses/AccountResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
    put:
      operationId: updateAccount
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAccount'
      tags:
      - Administrative API
      summary: 'Accounts: Update'
      description: Update an account's name or ID
      responses:
        '200':
          $ref: '#/components/responses/IdResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
components:
  schemas:
    SubAccountService:
      type: object
      properties:
        id:
          type: integer
          example: 69072
          description: Yext ID for the service.
        subAccountId:
          type: string
          example: B093879
          description: The sub-account receiving service.
        agreementId:
          type: integer
          description: The ID of your agreement with Yext under which this service is being delivered. This is important to you only in advanced scenarios where you have set up multiple active agreements with Yext.
        sku:
          type: string
          example: SKU-00000195
        serviceDescription:
          type: string
          example: Answers Experience
        serviceQuantity:
          type: integer
          example: 2
          description: The quantity of the SKU that the service currently has.
        started:
          type: string
          format: date
          description: The date that this service started.
        stopped:
          type: string
          format: date
          description: Optional. The date that this service stopped.
        stopOnDate:
          type: string
          format: date
          description: Optional. Future date on which the service should be stopped if it's still active when that date arrives.
        status:
          type: string
          enum:
          - ACTIVE
          - STOPPED
    Service:
      type: object
      properties:
        id:
          type: integer
          example: 34983
          description: Yext ID for the service.
        locationId:
          type: string
          example: L439843
          description: The location receiving service.
        locationAccountId:
          type: string
          example: C34833
          description: '*(Partner Portal mode only)* The account that the location receiving service is in.

            '
        agreementId:
          type: integer
          description: The ID of your agreement with Yext under which this service is being delivered. This is important to you only in advanced scenarios where you have set up multiple active agreements with Yext.
        sku:
          type: string
          example: SKU-00048343
        serviceDescription:
          type: string
          example: Partner Location Cloud (Starter)
        started:
          type: string
          format: date
          description: The date that this service started.
        stopped:
          type: string
          format: date
          description: Optional. The date that this service stopped.
        stopOnDate:
          type: string
          format: date
          description: Optional. Future date on which the service should be stopped if it's still active when that date arrives.
        status:
          type: string
          enum:
          - ACTIVE
          - STOPPED
    NewLocationAddRequest:
      type: object
      discriminator:
        propertyName: newEntityType
        mapping:
          atm: '#/components/schemas/NewLocationAddRequestATM'
          healthcareFacility: '#/components/schemas/NewLocationAddRequestHealthcareFacility'
          healthcareProfessional: '#/components/schemas/NewLocationAddRequestHealthcareProfessional'
          hotel: '#/components/schemas/NewLocationAddRequestHotel'
          location: '#/components/schemas/NewLocationAddRequestLocation'
          restaurant: '#/components/schemas/NewLocationAddRequestRestaurant'
      required:
      - newLocationId
      - newLocationData
      - newEntityData
      - skus
      properties:
        newLocationId:
          maxLength: 128
          type: string
          description: Your ID for the location to be added.
        newLocationAccountId:
          maxLength: 50
          type: string
          example: CST-43843
          description: '*(Partner Portal mode)* Supply your ID for the account that the new location should be created in. If this account is your main account or an existing sub-account, the location will be placed there. Otherwise, a new account will be created.

            '
        newLocationAccountName:
          maxLength: 256
          type: string
          example: Bill's Auto Shop
          description: '*(Partner Portal mode)* If a new account is created, this field''s value will set the account''s name. If a new account is created, and a value for this field is not provided, the new account''s name will default to the location''s name.

            '
        newAccountParentAccountId:
          maxLength: 50
          type: string
          example: PAR-001
          description: '*(Partner Portal mode, advanced use only)* If you have a multi-layer account structure and want the new account created for this request to be under one of your sub-accounts, rather than directly under your main account, specify that sub-account''s ID in this field.

            '
        newLocationData:
          description: 'If you set `newLocationId`, you must specify either `newLocationData` or `newEntityData`.


            This field allows you to set the profile data for a location, using our legacy format.

            Profile content is specified in the same format as when creating a location with the Locations: Create endpoint.


            If the Add Request is processed successfully, this data will be used to create a new location in your account.

            '
          allOf:
          - $ref: '#/components/schemas/Location'
        newEntityType:
          description: 'If you set `newEntityData`, this field specifies the type of entity to be created.

            '
          enum:
          - atm
          - healthcareFacility
          - healthcareProfessional
          - hotel
          - location
          - restaurant
          type: string
          default: location
        newEntityData:
          description: 'If you set `newLocationId`, you must specify either `newLocationData` or `newEntityData`.


            This field allows you to set the profile data for an entity.

            Profile content is specified in the same format as when creating an entity with the Entities: Create endpoint.

            You can only create entities of a type specified by `newEntityType`.


            If the Add Request is processed successfully, this data will be used to create a new entity in your account.


            **The dropdown will specify the profile content for `newEntityData`. Specify the entity type with `newEntityType` described above.**

            '
        skus:
          type: array
          description: 'List of SKUs that you would like to sign the location up for, from among those listed in the **Available Services: List** response with Location recipientType.

            '
          items:
            type: string
          example:
          - SKU-00000167
          - SKU-00000168
        agreementId:
          type: integer
          example: 1588
          description: '*(Advanced field)* The Agreement ID of the agreement that services will be added under. This value is set automatically by Yext when you create the Add request. (You can specify it yourself, but should not do so unless you have intentionally set up multiple active agreements with Yext, since it could cause your integration to break when you renew or upgrade your agreement.)

            '
        forceReview:
          type: boolean
          example: false
          description: '*(Sandbox API only)* Forces this Add request into the `REVIEW` status if it otherwise would have completed successfully.

            '
    Entity:
      additionalProperties: false
      type: object
      properties:
        meta:
          additionalProperties: false
          type: object
          properties:
       

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