GBG

GBG Sandbox API

The Sandbox API from GBG — 2 operation(s) for sandbox.

Operations 5

POST /sandbox/journeys/{journeyId}/scenarios Create a sandbox scenario on a journey #
GET /sandbox/journeys/{journeyId}/scenarios List a journey's sandbox scenarios #
GET /sandbox/journeys/{journeyId}/scenarios/{name} Read a sandbox scenario #
PUT /sandbox/journeys/{journeyId}/scenarios/{name} Replace a sandbox scenario #
DELETE /sandbox/journeys/{journeyId}/scenarios/{name} Delete a sandbox scenario #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/gbg:gbg-sandbox-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

gbg-sandbox-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Gbg Sandbox API
  version: 2.0.0
  license:
    name: MIT
  description: 'Operations tagged Sandbox across 2 of this provider''s published API definitions: gbg-go-v2-openapi.json, gbg-go-v2-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://eu.platform.go.gbgplc.com/v2/captain/
- url: https://us.platform.go.gbgplc.com/v2/captain/
- url: https://au.platform.go.gbgplc.com/v2/captain/
- url: https://api.auth.gbgplc.com/as/token.oauth2
security: []
tags:
- name: Sandbox
paths:
  /sandbox/journeys/{journeyId}/scenarios:
    post:
      tags:
      - Sandbox
      summary: Create a sandbox scenario on a journey
      description: Creates an org-tier sandbox scenario belonging to the journey in the path. Returns 409 if the name is taken on that journey (the same name may exist on other journeys). The scenario is resolvable at journey-start, for runs of that journey only, via the x-gbg-scenario header. Org is taken from the token.
      security:
      - CustomerAccess: []
      parameters:
      - schema:
          type: string
          pattern: ^[a-zA-Z0-9_-]{1,128}$
          example: onboarding-journey
          description: Id of the journey the scenario belongs to. Scenarios are listed, read and resolved per journey.
        required: true
        description: Id of the journey the scenario belongs to. Scenarios are listed, read and resolved per journey.
        name: journeyId
        in: path
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSandboxScenarioRequest'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxScenarioWritten'
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Scenario already exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Sandbox scenario management unavailable — either not enabled on this deployment, or a transient storage failure. Retryable; see the Retry-After header on storage failures.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      operationId: postSandboxJourneysByJourneyIdScenarios
      x-operation-id-source: derived
    get:
      tags:
      - Sandbox
      summary: List a journey's sandbox scenarios
      description: Lists the org's sandbox scenarios belonging to the journey in the path — never another journey's. Pass includePlatform=true to also return read-only GBG-provided platform scenarios (available on every journey); an org scenario shadows a platform scenario of the same name.
      security:
      - CustomerAccess: []
      parameters:
      - schema:
          type: string
          pattern: ^[a-zA-Z0-9_-]{1,128}$
          example: onboarding-journey
          description: Id of the journey the scenario belongs to. Scenarios are listed, read and resolved per journey.
        required: true
        description: Id of the journey the scenario belongs to. Scenarios are listed, read and resolved per journey.
        name: journeyId
        in: path
      - schema:
          type: string
          enum:
          - 'true'
          - 'false'
          description: Include read-only platform-tier scenarios in the listing. Defaults to false.
        required: false
        description: Include read-only platform-tier scenarios in the listing. Defaults to false.
        name: includePlatform
        in: query
      responses:
        '200':
          description: Scenario list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxScenarioList'
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Sandbox scenario management unavailable — either not enabled on this deployment, or a transient storage failure. Retryable; see the Retry-After header on storage failures.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      operationId: getSandboxJourneysByJourneyIdScenarios
      x-operation-id-source: derived
    servers:
    - url: https://eu.platform.go.gbgplc.com/v2/captain/
    - url: https://us.platform.go.gbgplc.com/v2/captain/
    - url: https://au.platform.go.gbgplc.com/v2/captain/
    - url: https://api.auth.gbgplc.com/as/token.oauth2
  /sandbox/journeys/{journeyId}/scenarios/{name}:
    get:
      tags:
      - Sandbox
      summary: Read a sandbox scenario
      description: Reads one org-tier sandbox scenario of the journey in the path. By default does not fall back to the platform tier or to another journey, so a name that exists only at platform level, or only on another journey, returns 404. Pass includePlatform=true to fall back to the read-only GBG-provided scenario of that name; the response `tier` says which tier served it. Another journey is never consulted either way.
      security:
      - CustomerAccess: []
      parameters:
      - schema:
          type: string
          pattern: ^[a-zA-Z0-9_-]{1,128}$
          example: onboarding-journey
          description: Id of the journey the scenario belongs to. Scenarios are listed, read and resolved per journey.
        required: true
        description: Id of the journey the scenario belongs to. Scenarios are listed, read and resolved per journey.
        name: journeyId
        in: path
      - schema:
          type: string
          pattern: ^[a-zA-Z0-9_-]{1,64}$
          example: my-scenario
          description: Scenario identifier, unique per journey (GGO-18332). The same name may exist on other journeys of the org with different content.
        required: true
        description: Scenario identifier, unique per journey (GGO-18332). The same name may exist on other journeys of the org with different content.
        name: name
        in: path
      - schema:
          type: string
          enum:
          - 'true'
          - 'false'
          description: Fall back to the read-only platform tier when this journey holds no scenario of this name. Defaults to false, which reads this journey's org tier only.
        required: false
        description: Fall back to the read-only platform tier when this journey holds no scenario of this name. Defaults to false, which reads this journey's org tier only.
        name: includePlatform
        in: query
      responses:
        '200':
          description: Scenario
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxScenario'
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Scenario not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Sandbox scenario management unavailable — either not enabled on this deployment, or a transient storage failure. Retryable; see the Retry-After header on storage failures.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      operationId: getSandboxJourneysByJourneyIdScenariosByName
      x-operation-id-source: derived
    put:
      tags:
      - Sandbox
      summary: Replace a sandbox scenario
      description: Replaces an existing org-tier sandbox scenario of the journey in the path. Returns 404 if it does not exist on that journey — use POST to create. Requires UPDATE:journey; creating (POST) requires CREATE:journey, so an edit-only grant cannot mint new scenarios through this endpoint.
      security:
      - CustomerAccess: []
      parameters:
      - schema:
          type: string
          pattern: ^[a-zA-Z0-9_-]{1,128}$
          example: onboarding-journey
          description: Id of the journey the scenario belongs to. Scenarios are listed, read and resolved per journey.
        required: true
        description: Id of the journey the scenario belongs to. Scenarios are listed, read and resolved per journey.
        name: journeyId
        in: path
      - schema:
          type: string
          pattern: ^[a-zA-Z0-9_-]{1,64}$
          example: my-scenario
          description: Scenario identifier, unique per journey (GGO-18332). The same name may exist on other journeys of the org with different content.
        required: true
        description: Scenario identifier, unique per journey (GGO-18332). The same name may exist on other journeys of the org with different content.
        name: name
        in: path
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateSandboxScenarioRequest'
      responses:
        '200':
          description: Saved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SandboxScenarioWritten'
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Scenario not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Sandbox scenario management unavailable — either not enabled on this deployment, or a transient storage failure. Retryable; see the Retry-After header on storage failures.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      operationId: putSandboxJourneysByJourneyIdScenariosByName
      x-operation-id-source: derived
    delete:
      tags:
      - Sandbox
      summary: Delete a sandbox scenario
      description: 'Deletes an org-tier sandbox scenario of the journey in the path by archiving it: it disappears from listings and journey-start resolution, but its version history is retained and creating the same name again restores it. A platform scenario of the same name, previously shadowed by this one on this journey, becomes resolvable again at journey-start.'
      security:
      - CustomerAccess: []
      parameters:
      - schema:
          type: string
          pattern: ^[a-zA-Z0-9_-]{1,128}$
          example: onboarding-journey
          description: Id of the journey the scenario belongs to. Scenarios are listed, read and resolved per journey.
        required: true
        description: Id of the journey the scenario belongs to. Scenarios are listed, read and resolved per journey.
        name: journeyId
        in: path
      - schema:
          type: string
          pattern: ^[a-zA-Z0-9_-]{1,64}$
          example: my-scenario
          description: Scenario identifier, unique per journey (GGO-18332). The same name may exist on other journeys of the org with different content.
        required: true
        description: Scenario identifier, unique per journey (GGO-18332). The same name may exist on other journeys of the org with different content.
        name: name
        in: path
      responses:
        '204':
          description: Deleted
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Scenario not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Sandbox scenario management unavailable — either not enabled on this deployment, or a transient storage failure. Retryable; see the Retry-After header on storage failures.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      operationId: deleteSandboxJourneysByJourneyIdScenariosByName
      x-operation-id-source: derived
    servers:
    - url: https://eu.platform.go.gbgplc.com/v2/captain/
    - url: https://us.platform.go.gbgplc.com/v2/captain/
    - url: https://au.platform.go.gbgplc.com/v2/captain/
    - url: https://api.auth.gbgplc.com/as/token.oauth2
components:
  schemas:
    SandboxScenarioSummary:
      type: object
      properties:
        name:
          type: string
        tier:
          type: string
          enum:
          - platform
          - org
        editable:
          type: boolean
        description:
          type: string
        lastModifiedTime:
          type: string
          format: date-time
          description: When the scenario was last saved (ISO 8601).
        lastModifiedBy:
          type: string
          description: Principal (JWT sub) who last saved the scenario.
          example: user-123
      required:
      - name
      - tier
      - editable
    SandboxScenario:
      type: object
      properties:
        name:
          type: string
        journeyId:
          type: string
        tier:
          type: string
          enum:
          - platform
          - org
        data:
          type: object
          additionalProperties: {}
        lastModifiedTime:
          type: string
          format: date-time
          description: When the scenario was last saved (ISO 8601).
        lastModifiedBy:
          type: string
          description: Principal (JWT sub) who last saved the scenario.
          example: user-123
      required:
      - name
      - journeyId
      - tier
      - data
    ErrorResponse:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/GbgError'
          minItems: 1
      required:
      - errors
    CreateSandboxScenarioRequest:
      type: object
      properties:
        name:
          type: string
          pattern: ^[a-zA-Z0-9_-]{1,64}$
          example: my-scenario
          description: Scenario identifier, unique per journey (GGO-18332). The same name may exist on other journeys of the org with different content.
        data:
          type: object
          minProperties: 1
          description: Scenario payload (ScenarioPayload). Requires `modules`; optionally `defaultOutcome`, `description`, and extra passthrough fields. Validated by the store against the same schema the sandbox runtime enforces, so an accepted document is guaranteed runnable.
          example:
            description: Fraud flagged on the second module
            modules:
              idVerification:
                outcome: Pass
                subject: {}
              fraudCheck:
                outcome: Flag
                subject: {}
            defaultOutcome: Complete
      required:
      - name
      - data
      additionalProperties: false
    SandboxScenarioWritten:
      type: object
      properties:
        name:
          type: string
        journeyId:
          type: string
        tier:
          type: string
          enum:
          - org
      required:
      - name
      - journeyId
      - tier
    SandboxScenarioList:
      type: array
      items:
        $ref: '#/components/schemas/SandboxScenarioSummary'
    GbgError:
      type: object
      properties:
        code:
          type: string
          pattern: ^\d{4}$
        name:
          type: string
          minLength: 1
        problem:
          type: string
          minLength: 1
        action:
          type: string
          minLength: 1
        location:
          type: string
          enum:
          - Path
          - Authorization
          - Header
          - Query String
          - Request
          - Body
          - Service
          - Flow
      required:
      - code
      - name
      - problem
      - action
    UpdateSandboxScenarioRequest:
      type: object
      properties:
        data:
          type: object
          minProperties: 1
          description: Scenario payload (ScenarioPayload). Requires `modules`; optionally `defaultOutcome`, `description`, and extra passthrough fields. Validated by the store against the same schema the sandbox runtime enforces, so an accepted document is guaranteed runnable.
          example:
            description: Fraud flagged on the second module
            modules:
              idVerification:
                outcome: Pass
                subject: {}
              fraudCheck:
                outcome: Flag
                subject: {}
            defaultOutcome: Complete
      required:
      - data
      additionalProperties: false
  securitySchemes:
    CustomerAccess:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'Customer JWT token for journey lifecycle operations. Required for: journey/start, journey/state/fetch, device/start'
    InteractionAccess:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'End-User JWT token for end-user scoped operations. Required for: interaction/fetch, interaction/submit, device/validate'
x-refined-from:
- gbg-go-v2-openapi.json
- gbg-go-v2-openapi.yml