openapi: 3.0.3 info: title: GoSpotCheck External AsyncJobs Missions 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: Missions paths: /external/v1/missions: get: operationId: listMissions summary: List missions and mission info tags: - Missions parameters: - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/perPage' - $ref: '#/components/parameters/include' responses: '200': $ref: '#/components/responses/Success' post: operationId: createMission summary: Create a mission tags: - Missions requestBody: content: application/json: schema: $ref: '#/components/schemas/Mission' responses: '200': $ref: '#/components/responses/Success' '422': $ref: '#/components/responses/Unprocessable' /external/v1/missions/{id}: parameters: - name: id in: path required: true schema: type: integer get: operationId: getMission summary: Get a single mission tags: - Missions responses: '200': $ref: '#/components/responses/Success' '404': $ref: '#/components/responses/NotFound' put: operationId: updateMission summary: Update an existing mission tags: - Missions responses: '200': $ref: '#/components/responses/Success' '422': $ref: '#/components/responses/Unprocessable' 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' NotFound: description: Resource not found. content: application/json: schema: $ref: '#/components/schemas/Envelope' parameters: 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 include: name: include in: query description: Comma-separated related resources to embed (e.g. teams,place_groups). schema: type: string 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. Mission: type: object properties: id: type: integer name: type: string instructions: type: string maximum_responses_per_user: type: integer nullable: true maximum_responses_per_location: type: integer nullable: true state: type: string description: draft | published | stopped | completed | archived | versioned enable_user_assigned_places: type: boolean version_identifier: type: integer version_number: type: integer started_at: type: string nullable: true stopped_at: type: string nullable: true completed_at: type: string nullable: true archived_at: type: string nullable: true created_by_id: type: integer updated_by_id: type: integer 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 `. Tokens are issued by GoSpotCheck; contact your Customer Success Manager or support@gospotcheck.com to obtain one.'