Reputation Locations API

Manage business locations

OpenAPI Specification

reputation-locations-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Reputation Asset Library Locations API
  description: REST API for aggregating customer feedback, managing reviews and listings, running surveys, and accessing reputation metrics and insights across locations.
  version: v3
  contact:
    name: Reputation Support
    url: https://support.reputation.com/
servers:
- url: https://api.reputation.com
  description: US Production
- url: https://api-eu.reputation.com
  description: EU Production
security:
- ApiKeyAuth: []
tags:
- name: Locations
  description: Manage business locations
paths:
  /v3/locations:
    get:
      summary: Get Locations
      operationId: get_locations
      tags:
      - Locations
      security:
      - ApiKeyAuth: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad request - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized - invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden - insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too many requests - rate limit exceeded
        '500':
          description: Internal server error
      description: 'Retrieves detailed location profiles, providing comprehensive data that extends beyond just basic location attributes within the Business Listing Solution. You can use this endpoint to access an array of information about specific profiles.

        Note: The Get Locations and Get Location endpoints are designed to retrieve only cleansed profiles. If you attempt to fetch an unmanaged profile using either endpoint, the response will result in a null value.

        Sample

        JavaScript XHR Request

        var xhr = new XMLHt'
      parameters:
      - name: offset
        in: query
        description: Offset for pagination
        schema:
          type: integer
          default: 0
      - name: limit
        in: query
        description: Maximum number of objects to return
        schema:
          type: integer
          default: 20
          maximum: 2000
    post:
      summary: Save Location
      operationId: post_locations
      tags:
      - Locations
      security:
      - ApiKeyAuth: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad request - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized - invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden - insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too many requests - rate limit exceeded
        '500':
          description: Internal server error
      description: 'Let''s you submit a detailed location profile, providing comprehensive data that extends beyond just basic location attributes within the Business Listing Solution. You can also use this endpoint to add our update information about specific profile.

        Please note: Incremental changes are not supported. All profile data must be included in each request to prevent existing data from being overwritten or removed.

        Sample

        JavaScript XHR Request

        var xhr = new XMLHttpRequest();

        xhr.open(''POST'', ''https://a'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              example:
                location:
                  optedOut: boolean
                  internalName: string
                  industryID: string
                  externalName: string
                  places:
                  - officeName: string
                    address:
                      streetAddress1: string
                      locality: string
                      region: string
                      postalCode: string
                      country: string
                    phones:
                    - number: string
                      primary: boolean
                      country: string
                      phoneType: string
                    primary: boolean
                  description: string
                  categories:
                  - category:
                      label: string
                    primary: boolean
                  utm: boolean
                  attributes:
                  - attributeId: string
                    boolValue: boolean
                  - attributeId: string
                    values:
                    - boolValue: boolean
                    - boolValue: boolean
                  type: string
                  createdDate: string
                  updatedDate: string
  /v3/locations-search:
    get:
      summary: Search Locations
      operationId: get_locations_search
      tags:
      - Locations
      security:
      - ApiKeyAuth: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad request - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized - invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden - insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too many requests - rate limit exceeded
        '500':
          description: Internal server error
      description: 'Facilitates the searching of profiles based on various parameters like name, location, type, and more. It''s designed to offer a comprehensive search capability for you to filter and retrieve specific profiles from the vast Business Listing Solution database.

        Sample

        JavaScript XHR Request

        var xhr = new XMLHttpRequest();

        xhr.open(''GET'', ''https://api.reputation.com/v3/locations-search?type=Person&primaryProfile=true&sort=ASC&offset=0&limit=20'', true);

        xhr.setRequestHeader(''x-api-key'
      parameters:
      - name: offset
        in: query
        description: Offset for pagination
        schema:
          type: integer
          default: 0
      - name: limit
        in: query
        description: Maximum number of objects to return
        schema:
          type: integer
          default: 20
          maximum: 2000
    post:
      summary: Search Locations
      operationId: post_locations_search
      tags:
      - Locations
      security:
      - ApiKeyAuth: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad request - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized - invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden - insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too many requests - rate limit exceeded
        '500':
          description: Internal server error
      description: 'Facilitates detailed searches for location profiles based on a range of specific parameters provided in the request body. It serves as an alternative to the GET version of the endpoint, providing a means to submit search parameters in the body of the request.

        Sample

        JavaScript XHR Request

        var xhr = new XMLHttpRequest();

        var url = "https://api.reputation.com/v3/locations-search";

        xhr.open("POST", url, true);

        xhr.setRequestHeader("Content-Type", "application/json");

        xhr.setRequestHeader("x-api-key'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              example:
                firstName: string
                lastName: string
                placeID: string
                parentID: string
                linkedProfileID: string
                officeName: string
                locality: string
                region: string
                postalCode: string
                gender: string
                phoneType: string
                websiteType: string
                type: string
                profileDefinition: string
                categoryID:
                - string
                categoryName:
                - string
                tag:
                - string
                utm: boolean
                insuranceID:
                - string
                insuranceName:
                - string
                language:
                - string
                acceptingNewPatients: string
                specialtyID:
                - string
                primaryProfile: string
                lat: 0
                lng: 0
                radius: 0
                sorts:
                - fieldName: string
                  sortOrder: string
                offset: integer
                limit: integer
                query: string
                updatedSince: string
  /v3/locations-faceted-search:
    get:
      summary: Search Faceted Locations
      operationId: get_locations_faceted_search
      tags:
      - Locations
      security:
      - ApiKeyAuth: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad request - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized - invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden - insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too many requests - rate limit exceeded
        '500':
          description: Internal server error
      description: This endpoint facilitates a faceted profile search of the platform, providing aggregated counts of profiles based on specified criteria. Rather than returning individual profile data, this endpoint groups profiles based on a selected attribute (such as phoneType, gender, etc.) and returns a count of profiles for each distinct value within that attribute. It's an efficient way to understand the distribution of profiles based on varying characteristics without retrieving the details of each profil
      parameters:
      - name: offset
        in: query
        description: Offset for pagination
        schema:
          type: integer
          default: 0
      - name: limit
        in: query
        description: Maximum number of objects to return
        schema:
          type: integer
          default: 20
          maximum: 2000
  /v3/locations/{locationID}:
    get:
      summary: Get Location
      operationId: get_locations_locationID
      tags:
      - Locations
      security:
      - ApiKeyAuth: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad request - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized - invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden - insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too many requests - rate limit exceeded
        '500':
          description: Internal server error
      description: 'This endpoint retrieves detailed information about a specific location profile on the platform based on the provided locationID.

        The response returns detailed attributes of the location profile, including its internal and external names, industry type, state, associated places like office addresses, contact information, and more.

        Note: The Get Locations and Get Location endpoints are designed to retrieve only cleansed profiles. If you attempt to fetch an unmanaged profile using either endpoint, '
      parameters:
      - name: locationID
        in: path
        required: true
        schema:
          type: string
        description: The locationID identifier
    delete:
      summary: Delete Location
      operationId: delete_locations_locationID
      tags:
      - Locations
      security:
      - ApiKeyAuth: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad request - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized - invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden - insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too many requests - rate limit exceeded
        '500':
          description: Internal server error
      description: "This endpoint lets you delete a specific location profile from the system, identified by its locationID. If you wish to only mark the location as inactive rather than fully deleting it, you can utilize the optional preserveLocation query parameter.\nSample\nJavaScript XHR Request\nvar xhr = new XMLHttpRequest();\nxhr.open('DELETE', 'https://api.reputation.com/v3/locations/BP?preserveLocation=true', true);\nxhr.setRequestHeader('x-api-key', 'Your API key');\nxhr.onreadystatechange = function() {\n    if"
      parameters:
      - name: locationID
        in: path
        required: true
        schema:
          type: string
        description: The locationID identifier
  /v3/locations/{locationID}/opt-out:
    put:
      summary: Opt Out Of Audit
      operationId: put_locations_locationID_opt_out
      tags:
      - Locations
      security:
      - ApiKeyAuth: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad request - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized - invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden - insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too many requests - rate limit exceeded
        '500':
          description: Internal server error
      description: "Opt-out specific sources from location profiles. If no specific sourceIDs are provided, the profile will be opted out from all eligible sources.\nSample\nJavaScript XHR Request\nvar xhr = new XMLHttpRequest();\nxhr.open(\"PUT\", \"https://api.reputation.com/v3/locations/SA/opt-out?sourceIDs=FACEBOOK\", true);\nxhr.setRequestHeader(\"x-api-key\", \"Your API key\");\nxhr.onreadystatechange = function() {\n  if (xhr.readyState == 4 && xhr.status == 200) {\n    var response = JSON.parse(xhr.responseText);\n "
      parameters:
      - name: locationID
        in: path
        required: true
        schema:
          type: string
        description: The locationID identifier
  /v3/locations/{locationID}/opt-in:
    put:
      summary: Opt In To Audit
      operationId: put_locations_locationID_opt_in
      tags:
      - Locations
      security:
      - ApiKeyAuth: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad request - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized - invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden - insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too many requests - rate limit exceeded
        '500':
          description: Internal server error
      description: "Opt-in specific sources from location profiles. If no specific sourceIDs are provided, the profile will be opted in to all eligible sources.\nSample\nJavaScript XHR Request\nvar xhr = new XMLHttpRequest();\nxhr.open(\"PUT\", \"https://api.reputation.com/v3/locations/SA/opt-in?sourceIDs=FACEBOOK\", true);\nxhr.setRequestHeader(\"x-api-key\", \"Your API key\");\nxhr.onreadystatechange = function() {\n  if (xhr.readyState == 4 && xhr.status == 200) {\n    var response = JSON.parse(xhr.responseText);\n    co"
      parameters:
      - name: locationID
        in: path
        required: true
        schema:
          type: string
        description: The locationID identifier
  /v3/locations/{locationID}/addPage:
    post:
      summary: Add Page
      operationId: post_locations_locationID_addPage
      tags:
      - Locations
      security:
      - ApiKeyAuth: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad request - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized - invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden - insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too many requests - rate limit exceeded
        '500':
          description: Internal server error
      description: 'Use this endpoint to associate a new external page (such as a social media profile or a source page) with a specific location profile in the Reputation platform. It''s important to ensure that the provided URL and page ID are unclaimed.

        For assistance in determining available source URLs, you can utilize the Autofind Results feature in the platform to identify potential matches for your location.

        Sample

        JavaScript XHR Request

        var xhr = new XMLHttpRequest();

        xhr.open("POST", "https://api.reputatio'
      parameters:
      - name: locationID
        in: path
        required: true
        schema:
          type: string
        description: The locationID identifier
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              example:
                source: string
                url: string
                pageID: string
  /v3/location-attribute-definitions:
    get:
      summary: Get Attribute Definitions
      operationId: get_location_attribute_definitions
      tags:
      - Locations
      security:
      - ApiKeyAuth: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad request - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized - invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden - insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too many requests - rate limit exceeded
        '500':
          description: Internal server error
      description: "An array of category IDs for which the attribute definitions are fetched. The provided IDs help in narrowing down the list of attribute definitions specific to the given profile categories.\nSample\nJavaScript XHR Request\nvar xhr = new XMLHttpRequest();\nxhr.open('GET', 'https://api.reputation.com/v3/location-attribute-definitions?categoryIds=RESTAURANTS_,ARTS_&_ENTERTAINMENT_ARTIST', true);\nxhr.setRequestHeader('x-api-key', 'Your API Key');\nxhr.onreadystatechange = function() {\n    if (xhr.rea"
  /v3/locations-duplicate:
    get:
      summary: Get Duplicate Locations
      operationId: get_locations_duplicate
      tags:
      - Locations
      security:
      - ApiKeyAuth: []
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad request - invalid or missing parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized - invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden - insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too many requests - rate limit exceeded
        '500':
          description: Internal server error
      description: 'Retrieves location profiles from the Reputation platform that are identified as potential duplicates based on specific criteria. By using this endpoint, you can identify and manage locations that may have been inadvertently entered multiple times or those that appear similar across different sources.

        Sample

        JavaScript XHR Request

        var xhr = new XMLHttpRequest();

        xhr.open("GET", "https://api.reputation.com/v3/locations-duplicate", true);

        xhr.setRequestHeader("x-api-key", "Your API key");

        xhr.onrea'
      parameters:
      - name: offset
        in: query
        description: Offset for pagination
        schema:
          type: integer
          default: 0
      - name: limit
        in: query
        description: Maximum number of objects to return
        schema:
          type: integer
          default: 20
          maximum: 2000
components:
  schemas:
    Error:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              field:
                type: string
              code:
                type: string
              message:
                type: string
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-KEY
      description: API key for authentication. For agency accounts, also include X-TENANT-ID header.