# generated: '2026-08-13' # method: generated # source: https://reputationmanager.io/api/assets/apidocs/api_data.json openapi: 3.1.0 info: title: LocalClarity API version: 0.0.0 summary: Programmatic access to LocalClarity profiles, organizations, locations, reviews and performance insights. description: 'OpenAPI transcription of the API documentation LocalClarity publishes at https://reputationmanager.io/api/assets/apidocs/index.html and links from its own knowledge base at https://www.localclarity.com/knowledge-base/generating-an-api-key-to-access-data-directly . LocalClarity does not publish an OpenAPI document. This file was produced by API Evangelist by mechanically transcribing the provider''s apiDoc `api_data.json` / `api_project.json` (apidoc 0.17.6, generated 2018-08-09). Every path, method, parameter, header and example here is copied from those documents; nothing was invented. Request-body media type is an API Evangelist modelling choice because apiDoc does not record an encoding -- see each requestBody description. API keys are self-service since the Data Studio release: Reporting -> Data Studio -> API tab -> Generate New Key (admin permission required). Keys are shown once, revocation is immediate and irreversible, and request audit logs are retained for 12 months.' contact: name: LocalClarity Support email: support@localclarity.com url: https://www.localclarity.com/contact termsOfService: https://www.localclarity.com/terms/terms-of-service x-transcription-source: - https://reputationmanager.io/api/assets/apidocs/api_data.json - https://reputationmanager.io/api/assets/apidocs/api_project.json servers: - url: https://localclarity.cloud.tyk.io description: 'Base URL declared by LocalClarity''s own apiDoc project metadata (api_project.json, url field). NOTE: this Tyk Cloud hostname returned NXDOMAIN on 2026-08-13 -- the published document is dated 2018 and the declared host no longer resolves.' - url: https://dev.localclarity.com description: Live LocalClarity host. On 2026-08-13 every path under /api/ returned an application/json 401 from the API gateway, so an API is served here; LocalClarity does not publish this as the documented base URL. security: - AuthorizationToken: [] tags: - name: Endpoints description: LocalClarity data endpoints. paths: /api/sendReply: post: operationId: sendReply summary: Send Reply description: Transcribed verbatim from LocalClarity's published apiDoc entry `Endpoints/Send_Reply` (https://reputationmanager.io/api/assets/apidocs/index.html). tags: - Endpoints security: - AuthorizationToken: [] requestBody: required: true description: apiDoc documents these as request parameters without naming an encoding; modelled here as a JSON body. content: application/json: schema: type: object properties: profileId: type: string description: id of profile. locationId: type: string description: id of google location (For source Google). pageId: type: string description: id of facebook page (For source Google). reviewId: type: string description: id of the review. reply: type: string description: reply text. source: type: string description: source of review (eg:google or facebook). required: - profileId - locationId - pageId - reviewId - reply - source responses: '200': description: Successful response. content: application/json: example: '{"reply":"string","userId":"string","reviewId":"string","profileId":"string","accountId":"string","date":"string","reviewDocId":"string","time":"2014-03-19 16:28:29string","replyId":"string","googleUpdated":"boolean","postTime":"string","source":"string","replyStatus":"string"}' '401': description: Missing, invalid or revoked API key. Observed live on 2026-08-13 at https://dev.localclarity.com/api/ ; LocalClarity's key-management documentation states revoked keys fail in-flight requests with 401. content: application/json: schema: $ref: '#/components/schemas/UnauthorizedError' example: message: 'Unauthorized : Provided access token is either null or empty or does not have permissions to access this resource.null' '403': description: Quota exceeded. content: application/json: schema: $ref: '#/components/schemas/QuotaError' example: error: Quota exceeded /api/getInsights: post: operationId: getInsights summary: Get Insights description: Transcribed verbatim from LocalClarity's published apiDoc entry `Endpoints/getInsights` (https://reputationmanager.io/api/assets/apidocs/index.html). tags: - Endpoints security: - AuthorizationToken: [] requestBody: required: true description: apiDoc documents these as request parameters without naming an encoding; modelled here as a JSON body. content: application/json: schema: type: object properties: profileId: type: string description: id of profile. locationId: type: string description: id of location(Optional). required: - profileId responses: '200': description: Successful response. content: application/json: example: '[{"date":"string","locationName":"string","address":{"country":"string","postalCode":"string","locality":"string","addressLines":["string"],"administrativeArea":"string"},"count":"number","timeZone":"string","metric":"String","locationId":"string","profileId":"string"}]' '401': description: Missing, invalid or revoked API key. Observed live on 2026-08-13 at https://dev.localclarity.com/api/ ; LocalClarity's key-management documentation states revoked keys fail in-flight requests with 401. content: application/json: schema: $ref: '#/components/schemas/UnauthorizedError' example: message: 'Unauthorized : Provided access token is either null or empty or does not have permissions to access this resource.null' '403': description: Quota exceeded. content: application/json: schema: $ref: '#/components/schemas/QuotaError' example: error: Quota exceeded /api/getLocations: post: operationId: getLocations summary: Get Locations description: Transcribed verbatim from LocalClarity's published apiDoc entry `Endpoints/getLocations` (https://reputationmanager.io/api/assets/apidocs/index.html). tags: - Endpoints security: - AuthorizationToken: [] requestBody: required: true description: apiDoc documents these as request parameters without naming an encoding; modelled here as a JSON body. content: application/json: schema: type: object properties: profileId: type: string description: id of the profile. accountId: type: string description: id of the account(Optional). required: - profileId responses: '200': description: Successful response. content: application/json: schema: type: array items: type: object properties: name: type: string description: 'Google identifier for this location in the form: accounts/{account_id}/locations/{location_id} . In the context of matches, this field will not be populated.' languageCode: type: string description: The language of the location. Set during creation and not updateable. storeCode: type: string description: External identifier for this location, which must be unique inside a given account. This is a means of associating the location with your own records. locationName: type: string description: Location name should reflect your business's real-world name, as used consistently on your storefront, website, and stationery, and as known to customers. Any additional information, when relevant, can be included in other fields of the resource (for example, Address, Categories). Don't add unnecessary information to your name (for example, prefer "Google" over "Google Inc. - Mountain View Corporate Headquarters"). Don't include marketing taglines, store codes, special characters, hours or closed/open status, phone numbers, website URLs, service/product information, location/address or directions, or containment information (for example, "Chase ATM in Duane Reade"). primaryPhone: type: string description: A phone number that connects to your individual business location as directly as possible. Use a local phone number instead of a central, call center helpline number whenever possible. additionalPhones: type: string description: Up to two phone numbers (mobile or landline, no fax) at which your business can be called, in addition to your primary phone number. address: type: object description: A precise, accurate address to describe your business location. PO boxes or mailboxes located at remote locations are not acceptable. At this time, you can specify a maximum of five addressLines values in the address. primaryCategory: type: object description: Category that best describes the core business this location engages in. additionalCategories: type: object description: Additional categories to describe your business. Categories help your customers find accurate, specific results for services they're interested in. To keep your business information accurate and live, make sure that you use as few categories as possible to describe your overall core business. Choose categories that are as specific as possible, but representative of your main business. websiteUrl: type: string description: A URL for this business. If possible, use a URL that represents this individual business location instead of a generic website/URL that represents all locations, or the brand. regularHours: type: object description: Operating hours for the business. specialHours: type: object description: Special hours for the business. This typically includes holiday hours, and other times outside of regular operating hours. These override regular business hours. serviceArea: type: object description: Service area businesses provide their service at the customer's location. If this business is a service area business, this field describes the area(s) serviced by the business. locationKey: type: object description: A collection of keys that link this business to other Google properties, such as a Google+ page and Google Maps Places. labels: type: string description: A collection of free-form strings to allow you to tag your business. These labels are NOT user facing; only you can see them. Limited to 255 characters (per label). adWordsLocationExtensions: type: object description: Additional information that is surfaced in AdWords. latlng: type: object description: User-provided latitude and longitude. When creating a location, this field is ignored if the provided address geocodes successfully. This field is only returned on get requests if the user-provided latlng value was accepted during create, or the latlng value was updated through the Google My Business website. This field cannot be updated. openInfo: type: object description: A flag that indicates whether the location is currently open for business. locationState: type: object description: Output only. A set of booleans that reflects the state of a location. attributes: type: object description: Attributes for this location. metadata: type: object description: Output Only. Additional non-user-editable information. priceLists: type: object description: Price list information for this location. profile: type: object description: Describes your business in your own voice and shares with users the unique story of your business and offerings. example: '[{"name":"string","languageCode":"string","storeCode":"string","locationName":"string","primaryPhone":"string","additionalPhones":["string"],"address":{"revision":"number","regionCode":"string","languageCode":"string","postalCode":"string","sortingCode":"string","administrativeArea":"string","locality":"string","sublocality":"string","addressLines":["string"],"recipients":["string"],"organization":"string"},"primaryCategory":{"displayName":"string","categoryId":"string"},"additionalCategories":[{"displayName":"string","categoryId":"string"}],"websiteUrl":"string","regularHours":{"periods":[{"openDay":"string","openTime":"string","closeDay":"string","closeTime":"string"}]},"specialHours":{"specialHourPeriods":[{"startDate":{"day":"string","month":"string","year":"string"},"openTime":"string","endDate":{"day":"string","month":"string","year":"string"},"closeTime":"string","isClosed":"boolean"}]},"serviceArea":{"businessType":"string","radius":{"latlng":{"latitude":"number","longitude":"number"},"radiusKm":"number"},"places":{"placeInfos":[{"name":"string","placeId":"string"}]}},"locationKey":{"plusPageId":"string","placeId":"string","explicitNoPlaceId":"boolean","requestId":"string"},"labels":["string"],"adWordsLocationExtensions":{"adPhone":"string"},"latlng":{"latitude":"number","longitude":"number"},"openInfo":{"status":"string","canReopen":"boolean","openingDate":{"day":"string","month":"string","year":"string"}},"locationState":{"isGoogleUpdated":"boolean","isDuplicate":"boolean","isSuspended":"boolean","canUpdate":"boolean","canDelete":"boolean","isVerified":"boolean","needsReverification":"boolean","isPendingReview":"boolean","isDisabled":"boolean","isPublished":"boolean","isDisconnected":"boolean","isLocalPostApiDisabled":"boolean","hasPendingVerification":"boolean"},"attributes":[{"attributeId":"string","valueType":"string","values":["value"],"repeatedEnumValue":{"setValues":["string"],"unsetValues":["string"]},"urlValues":[{"url":"string"}]}],"metadata":{"duplicate":{"locationName":"string","placeId":"string","access":"string"},"mapsUrl":"string","newReviewUrl":"string"},"priceLists":[{"priceListId":"string","labels":[{"displayName":"string","description":"string","languageCode":"string"}],"sourceUrl":"string","sections":[{"sectionId":"string","labels":[{"displayName":"string","description":"string","languageCode":"string"}],"items":[{"itemId":"string","labels":[{"displayName":"string","description":"string","languageCode":"string"}],"price":{"currencyCode":"string","units":"string","nanos":"number"}}]}]}],"profile":{"description":"string"}}]' '401': description: Missing, invalid or revoked API key. Observed live on 2026-08-13 at https://dev.localclarity.com/api/ ; LocalClarity's key-management documentation states revoked keys fail in-flight requests with 401. content: application/json: schema: $ref: '#/components/schemas/UnauthorizedError' example: message: 'Unauthorized : Provided access token is either null or empty or does not have permissions to access this resource.null' '403': description: Quota exceeded. content: application/json: schema: $ref: '#/components/schemas/QuotaError' example: error: Quota exceeded /api/getOrganizations: post: operationId: getOrganizations summary: Get Organizations description: Transcribed verbatim from LocalClarity's published apiDoc entry `Endpoints/getOrganizations` (https://reputationmanager.io/api/assets/apidocs/index.html). tags: - Endpoints security: - AuthorizationToken: [] requestBody: required: true description: apiDoc documents these as request parameters without naming an encoding; modelled here as a JSON body. content: application/json: schema: type: object properties: profileId: type: string description: id of the profile. required: - profileId responses: '200': description: Successful response. content: application/json: schema: type: array items: type: object properties: accountId: type: string description: Id of account in the profile accountName: type: string description: Name of the account userId: type: string description: Email id of the user example: '[{"accountId":"string","accountName":"string","userId":"string"}]' '401': description: Missing, invalid or revoked API key. Observed live on 2026-08-13 at https://dev.localclarity.com/api/ ; LocalClarity's key-management documentation states revoked keys fail in-flight requests with 401. content: application/json: schema: $ref: '#/components/schemas/UnauthorizedError' example: message: 'Unauthorized : Provided access token is either null or empty or does not have permissions to access this resource.null' '403': description: Quota exceeded. content: application/json: schema: $ref: '#/components/schemas/QuotaError' example: error: Quota exceeded /api/getProfiles: get: operationId: getProfiles summary: Get Profiles description: Transcribed verbatim from LocalClarity's published apiDoc entry `Endpoints/getProfiles` (https://reputationmanager.io/api/assets/apidocs/index.html). tags: - Endpoints security: - AuthorizationToken: [] responses: '200': description: Successful response. content: application/json: schema: type: array items: type: object properties: role: type: string description: User role in the profile profileName: type: string description: Name of the profile userId: type: string description: Email id of the user profileId: type: string description: Id of the profile.(Mandatory for other requests) example: '[{"role":"string","profileName":"string","userId":"string","profielId":"string"}]' '401': description: Missing, invalid or revoked API key. Observed live on 2026-08-13 at https://dev.localclarity.com/api/ ; LocalClarity's key-management documentation states revoked keys fail in-flight requests with 401. content: application/json: schema: $ref: '#/components/schemas/UnauthorizedError' example: message: 'Unauthorized : Provided access token is either null or empty or does not have permissions to access this resource.null' '403': description: Quota exceeded. content: application/json: schema: $ref: '#/components/schemas/QuotaError' example: error: Quota exceeded /api/getReviews: post: operationId: getReviews summary: Get Reviews description: Transcribed verbatim from LocalClarity's published apiDoc entry `Endpoints/getReviews` (https://reputationmanager.io/api/assets/apidocs/index.html). tags: - Endpoints security: - AuthorizationToken: [] requestBody: required: true description: apiDoc documents these as request parameters without naming an encoding; modelled here as a JSON body. content: application/json: schema: type: object properties: profileId: type: string description: id. locationId: type: string description: id of location (Optional). required: - profileId responses: '200': description: Successful response. content: application/json: example: "[{\"name\":\"string\",\n \"reviewId\":\"string\",\n \"reviewer\"\ :{\"displayName\":\"string\",\"isAnonymous\":\"boolean\"},\n \"starRating\":\"\ number\",\n \"comment\":\"string\",\n \"createTime\":\"string\",\n \ \ \"updateTime\":\"string\",\n \"reviewReply\":{\"comment\":\"string\",\"\ updateTime\":\"string\"}}]" '401': description: Missing, invalid or revoked API key. Observed live on 2026-08-13 at https://dev.localclarity.com/api/ ; LocalClarity's key-management documentation states revoked keys fail in-flight requests with 401. content: application/json: schema: $ref: '#/components/schemas/UnauthorizedError' example: message: 'Unauthorized : Provided access token is either null or empty or does not have permissions to access this resource.null' '403': description: Quota exceeded. content: application/json: schema: $ref: '#/components/schemas/QuotaError' example: error: Quota exceeded components: securitySchemes: AuthorizationToken: type: apiKey in: header name: Authorization description: Token provided by LocalClarity (apiDoc header field `Authorization`). Generated by an administrator in Reporting -> Data Studio -> API. schemas: UnauthorizedError: type: object properties: message: type: string QuotaError: type: object properties: error: type: string