GoSpotCheck Places API
The Places API from GoSpotCheck — 2 operation(s) for places.
The Places API from GoSpotCheck — 2 operation(s) for places.
openapi: 3.0.3
info:
title: GoSpotCheck External AsyncJobs Places API
version: '1.0'
x-generated: '2026-07-19'
x-method: searched
x-source: https://gsc.docs.apiary.io/
description: The GoSpotCheck (by FORM) External API lets developers build custom applications and integrations against a GoSpotCheck company account. It supports ongoing creates/updates to people, places, place groups, teams, catalogs and items, and pulling MissionResponse / TaskResponse data out of GoSpotCheck to build custom reports. All requests are RESTful over HTTPS, authenticated with an OAuth2 bearer token in the Authorization header. Responses use a standard envelope with `request`, `paging`, `data`, and `errors` hashes. Faithfully transcribed from the provider's published Apiary API Blueprint; not every field-level schema is modeled.
contact:
name: GoSpotCheck Support
email: support@gospotcheck.com
url: https://support.gospotcheck.com
servers:
- url: https://api.gospotcheck.com
description: Production
security:
- oauth2Bearer: []
tags:
- name: Places
paths:
/external/v1/places:
get:
operationId: listPlaces
summary: List all places for the company
tags:
- Places
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/perPage'
- $ref: '#/components/parameters/sortBy'
- $ref: '#/components/parameters/sortDirection'
- $ref: '#/components/parameters/include'
- $ref: '#/components/parameters/async'
responses:
'200':
$ref: '#/components/responses/Success'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
post:
operationId: createPlaces
summary: Create one place or multiple places
tags:
- Places
requestBody:
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/Place'
- type: array
items:
$ref: '#/components/schemas/Place'
responses:
'200':
$ref: '#/components/responses/Success'
'422':
$ref: '#/components/responses/Unprocessable'
/external/v1/places/{id}:
parameters:
- name: id
in: path
required: true
schema:
type: integer
get:
operationId: getPlace
summary: Get a single place
tags:
- Places
responses:
'200':
$ref: '#/components/responses/Success'
'404':
$ref: '#/components/responses/NotFound'
put:
operationId: updatePlace
summary: Update an existing place
tags:
- Places
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Place'
responses:
'200':
$ref: '#/components/responses/Success'
'422':
$ref: '#/components/responses/Unprocessable'
delete:
operationId: disablePlace
summary: Disable an existing place
tags:
- Places
responses:
'200':
$ref: '#/components/responses/Success'
'404':
$ref: '#/components/responses/NotFound'
components:
responses:
Unprocessable:
description: Unprocessable entity (model validation failed).
content:
application/json:
schema:
$ref: '#/components/schemas/Envelope'
Success:
description: Standard success envelope.
content:
application/json:
schema:
$ref: '#/components/schemas/Envelope'
Unauthorized:
description: Missing or invalid OAuth2 bearer token.
content:
application/json:
schema:
$ref: '#/components/schemas/Envelope'
NotFound:
description: Resource not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Envelope'
Forbidden:
description: Forbidden. Also returned as `403 Forbidden (Rate Limit Exceeded)` when the 10 req/s or 100,000 req/day limit is exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/Envelope'
parameters:
sortDirection:
name: sort_direction
in: query
schema:
type: string
enum:
- asc
- desc
perPage:
name: per_page
in: query
description: Records per page (defaults to 25, max 200).
schema:
type: integer
default: 25
maximum: 200
page:
name: page
in: query
description: Page number of results (defaults to 1).
schema:
type: integer
default: 1
sortBy:
name: sort_by
in: query
description: Field to sort the index by.
schema:
type: string
include:
name: include
in: query
description: Comma-separated related resources to embed (e.g. teams,place_groups).
schema:
type: string
async:
name: _async
in: query
description: When true, run the index as an asynchronous CSV export job.
schema:
type: boolean
default: false
schemas:
Envelope:
type: object
properties:
request:
$ref: '#/components/schemas/RequestHash'
paging:
$ref: '#/components/schemas/PagingHash'
data: {}
errors:
$ref: '#/components/schemas/ErrorsHash'
PagingHash:
type: object
properties:
current_page:
type: integer
previous_page:
type: integer
nullable: true
next_page:
type: integer
nullable: true
per_page:
type: integer
total_records:
type: integer
first_timestamp:
type: string
last_timestamp:
type: string
ErrorsHash:
type: object
description: Present only when status_code is in the 400 or 500 range.
Place:
type: object
properties:
id:
type: integer
description: Unique GSC id
name:
type: string
address:
type: string
city:
type: string
state:
type: string
postal_code:
type: string
country:
type: string
description: ISO3166-1 alpha-2
custom_place_id:
type: string
nullable: true
status:
type: string
nullable: true
description: null when enabled; 'disabled' when disabled
disabled_at:
type: string
nullable: true
geocoding_disabled:
type: boolean
created_at:
type: string
updated_at:
type: string
RequestHash:
type: object
properties:
status_code:
type: integer
status_message:
type: string
path:
type: string
method:
type: string
params:
type: object
securitySchemes:
oauth2Bearer:
type: http
scheme: bearer
description: 'OAuth2 access token supplied as `Authorization: Bearer <token>`. Tokens are issued by GoSpotCheck; contact your Customer Success Manager or support@gospotcheck.com to obtain one.'