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.