Tray.ai Solution Instances API

Create, update, enable, disable, and delete solution instances for end users. Requires a user token for most operations.

Operations 9

POST /graphql#createSolutionInstance Tray.ai Create Solution Instance #
POST /graphql#getSolutionInstances Tray.ai Get Solution Instances #
POST /graphql#updateSolutionInstance Tray.ai Update Solution Instance #
POST /graphql#deleteSolutionInstance Tray.ai Delete Solution Instance #
POST / Get solution instances (user/master token) #
POST / Create solution instance (user token) #
POST / Update solution instance (user token) #
POST / Upgrade solution instance (user token) #
POST / Delete Solution Instance (user token) #

Documentation

Specifications

Schemas & Data

Other Resources

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/tray-ai-solution-instances-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

tray-ai-solution-instances-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Tray Ai Solution Instances API
  version: 1.0.0
  x-refined-note:
  - x-logo differs across the merged source definitions and was not carried
  description: 'Operations tagged Solution Instances across 2 of this provider''s published API definitions: tray-ai-embedded-api-openapi.yml, tray-ai-embedded-api-published-openapi.yaml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://tray.io
  description: US Region (Default)
- url: https://eu1.tray.io
  description: EU Region
- url: https://ap1.tray.io
  description: APAC Region
- url: https://tray.io/graphql
  description: US
- url: https://eu1.tray.io/graphql
  description: EU
- url: https://ap1.tray.io/graphql
  description: APAC
security:
- bearerAuth: []
tags:
- name: Solution Instances
  description: Create, update, enable, disable, and delete solution instances for end users. Requires a user token for most operations.
paths:
  /graphql#createSolutionInstance:
    post:
      operationId: createSolutionInstance
      summary: Tray.ai Create Solution Instance
      description: Creates a new solution instance from a published solution for a specific end user. Accepts the solutionId, instanceName, and optional authValues and configValues. Requires a user token.
      tags:
      - Solution Instances
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GraphQLRequest'
            example:
              query: "mutation {\n  createSolutionInstance(input: {\n    solutionId: \"solution-uuid-here\",\n    instanceName: \"My Integration\",\n    authValues: [{\n      externalId: \"auth-slot-external-id\",\n      authId: \"auth-uuid-here\"\n    }],\n    configValues: [{\n      externalId: \"config-external-id\",\n      value: \"config-value\"\n    }]\n  }) {\n    solutionInstance {\n      id\n      name\n      enabled\n      workflows {\n        edges {\n          node {\n            id\n            triggerUrl\n          }\n        }\n      }\n    }\n  }\n}"
      responses:
        '200':
          description: Solution instance created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      createSolutionInstance:
                        type: object
                        properties:
                          solutionInstance:
                            $ref: '#/components/schemas/SolutionInstance'
        '401':
          $ref: '#/components/responses/Unauthorized'
    servers:
    - url: https://tray.io
      description: US Region (Default)
    - url: https://eu1.tray.io
      description: EU Region
    - url: https://ap1.tray.io
      description: APAC Region
  /graphql#getSolutionInstances:
    post:
      operationId: getSolutionInstances
      summary: Tray.ai Get Solution Instances
      description: Retrieves solution instances. When called with a master token, returns instances for all end users. When called with a user token, returns only instances owned by that user. Supports pagination.
      tags:
      - Solution Instances
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GraphQLRequest'
            example:
              query: "query {\n  viewer {\n    solutionInstances {\n      edges {\n        node {\n          id\n          name\n          enabled\n          created\n          owner\n          solutionVersionFlags {\n            hasNewerVersion\n          }\n        }\n        cursor\n      }\n      pageInfo {\n        hasNextPage\n        endCursor\n      }\n    }\n  }\n}"
      responses:
        '200':
          description: Solution instances returned successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      viewer:
                        type: object
                        properties:
                          solutionInstances:
                            type: object
                            properties:
                              edges:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    node:
                                      $ref: '#/components/schemas/SolutionInstance'
                                    cursor:
                                      type: string
                              pageInfo:
                                $ref: '#/components/schemas/PageInfo'
        '401':
          $ref: '#/components/responses/Unauthorized'
    servers:
    - url: https://tray.io
      description: US Region (Default)
    - url: https://eu1.tray.io
      description: EU Region
    - url: https://ap1.tray.io
      description: APAC Region
  /graphql#updateSolutionInstance:
    post:
      operationId: updateSolutionInstance
      summary: Tray.ai Update Solution Instance
      description: Updates an existing solution instance. Can update the instance name, enable/disable status, auth values, and config values. Setting errorOnEnablingWithMissingValues to true is recommended to catch configuration issues. Requires a user token.
      tags:
      - Solution Instances
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GraphQLRequest'
            example:
              query: "mutation {\n  updateSolutionInstance(input: {\n    solutionInstanceId: \"instance-uuid-here\",\n    instanceName: \"Updated Integration Name\",\n    enabled: true,\n    errorOnEnablingWithMissingValues: true\n  }) {\n    solutionInstance {\n      id\n      name\n      enabled\n    }\n  }\n}"
      responses:
        '200':
          description: Solution instance updated successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      updateSolutionInstance:
                        type: object
                        properties:
                          solutionInstance:
                            $ref: '#/components/schemas/SolutionInstance'
        '401':
          $ref: '#/components/responses/Unauthorized'
    servers:
    - url: https://tray.io
      description: US Region (Default)
    - url: https://eu1.tray.io
      description: EU Region
    - url: https://ap1.tray.io
      description: APAC Region
  /graphql#deleteSolutionInstance:
    post:
      operationId: deleteSolutionInstance
      summary: Tray.ai Delete Solution Instance
      description: Deletes a solution instance and all associated data. This action is irreversible. Requires a user token.
      tags:
      - Solution Instances
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GraphQLRequest'
            example:
              query: "mutation {\n  deleteSolutionInstance(input: {\n    solutionInstanceId: \"instance-uuid-here\"\n  }) {\n    clientMutationId\n  }\n}"
      responses:
        '200':
          description: Solution instance deleted successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      deleteSolutionInstance:
                        type: object
                        properties:
                          clientMutationId:
                            type: string
        '401':
          $ref: '#/components/responses/Unauthorized'
    servers:
    - url: https://tray.io
      description: US Region (Default)
    - url: https://eu1.tray.io
      description: EU Region
    - url: https://ap1.tray.io
      description: APAC Region
  '/          ':
    post:
      tags:
      - Solution Instances
      summary: Get solution instances (user/master token)
      description:
        $ref: descriptions/embedded/endpoints/solution-instances/getSolutionInstances.md
      operationId: get-solution-instances
      x-codeSamples:
      - lang: cURL
        label: curl
        source:
          $ref: code_samples/solution-instances/getSolutionInstances.curl
      parameters:
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
        example: Bearer 3fd74d349xxxxxxxxxxxxxxxxxxxxxxxxd90df521
        description: You can either pass your <a target="_blank" href="https://tray.ai/documentation/tray-uac/embedded-integrations/setup-notes/">master token</a> here or <a target="_blank" href="/developer/embedded-apis/users#graphql-create-user-token">user token</a> of an end user.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  type: string
                variables:
                  type: object
            examples:
              get-solution-instances-by-owner:
                summary: Get solution instance(s) by owner
                value:
                  query: "query ($ownerId: String!){\n\tviewer {\n\t\tsolutionInstances(criteria: { owner: $ownerId }) {\n\t\t\tedges {\n\t\t\t\tnode {\n\t\t\t\t\tid\n\t\t\t\t\tname\n\t\t\t\t\tenabled\n\t\t\t\t\towner\n\t\t\t\t\tcreated\n\t\t\t\t\tsolutionVersionFlags {\n\t\t\t\t\t\thasNewerVersion\n\t\t\t\t\t\trequiresUserInputToUpdateVersion\n\t\t\t\t\t\trequiresSystemInputToUpdateVersion\n\t\t\t\t\t}\n\t\t\t\t\tworkflows {\n\t\t\t\t\t\tedges {\n\t\t\t\t\t\t\tnode {\n\t\t\t\t\t\t\t\ttriggerUrl\n\t\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\t\tsourceWorkflowId\n                                sourceWorkflowName\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tauthValues {\n\t\t\t\t\t\texternalId\n\t\t\t\t\t\tauthId\n\t\t\t\t\t}\n\t\t\t\t\tconfigValues {\n\t\t\t\t\t\texternalId\n\t\t\t\t\t\tvalue\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcursor\n\t\t\t}\n\t\t\tpageInfo {\n\t\t\t\tstartCursor\n\t\t\t\tendCursor\n\t\t\t\thasNextPage\n\t\t\t\thasPreviousPage\n\t\t\t}\n\t\t}\n\t}\n}"
                  variables:
                    ownerId: 13b3ab9c-XXXX-XXXX-XXXX-c4dd07fbbfa4
              get-solution-instances-by-owner-and-solutionId:
                summary: Get solution instance(s) by owner and solution ID
                value:
                  query: "query ($ownerId: String!){\n\tviewer {\n\t\tsolutionInstances (criteria: { solutionId: $solutionId, owner: $ownerId }) {\n\t\t\tedges {\n\t\t\t\tnode {\n\t\t\t\t\tid\n\t\t\t\t\tname\n\t\t\t\t\tenabled\n\t\t\t\t\towner\n\t\t\t\t\tcreated\n                    solution {\n                        id\n                        title\n                        description # more fields for solution can be returned\n                    }\n\t\t\t\t\tsolutionVersionFlags {\n\t\t\t\t\t\thasNewerVersion\n\t\t\t\t\t\trequiresUserInputToUpdateVersion\n\t\t\t\t\t\trequiresSystemInputToUpdateVersion\n\t\t\t\t\t}\n\t\t\t\t\tworkflows {\n\t\t\t\t\t\tedges {\n\t\t\t\t\t\t\tnode {\n\t\t\t\t\t\t\t\ttriggerUrl\n\t\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\t\tsourceWorkflowId\n                                sourceWorkflowName\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tauthValues {\n\t\t\t\t\t\texternalId\n\t\t\t\t\t\tauthId\n\t\t\t\t\t}\n\t\t\t\t\tconfigValues {\n\t\t\t\t\t\texternalId\n\t\t\t\t\t\tvalue\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcursor\n\t\t\t}\n\t\t\tpageInfo {\n\t\t\t\tstartCursor\n\t\t\t\tendCursor\n\t\t\t\thasNextPage\n\t\t\t\thasPreviousPage\n\t\t\t}\n\t\t}\n\t}\n}"
                  variables:
                    ownerId: 13b3ab9c-XXXX-XXXX-XXXX-c4dd07fbbfa4
                    solutionId: b73d4e07xxx-xxx-xxx-xxx-xxxafad23d94
        required: true
      responses:
        '200':
          description: OK - If master token is used, an array of solution instances for all end users is returned. In case of user token, only instances owned by the user are returned.
          content:
            application/json:
              examples:
                get-solution-instances-by-owner:
                  summary: Get solution instance(s) by owner
                  value:
                    $ref: examples/solution-instances/getSolutionInstancesByOwner.json
                get-solution-instances-by-owner-and-solutionId:
                  summary: Get solution instance(s) by owner and solution ID
                  value:
                    $ref: examples/solution-instances/getSolutionInstancesByOwnerAndSolutionID.json
        '401':
          description: Unauthorized
          content:
            application/json:
              example:
                $ref: examples/401.json
        '403':
          description: Forbidden
          content:
            application/json:
              example:
                $ref: examples/403.json
        '500':
          description: Internal Error
          content:
            application/json:
              example:
                $ref: examples/500.json
    servers:
    - url: https://tray.io/graphql
      description: US
    - url: https://eu1.tray.io/graphql
      description: EU
    - url: https://ap1.tray.io/graphql
      description: APAC
  '/           ':
    post:
      tags:
      - Solution Instances
      summary: Create solution instance (user token)
      description:
        $ref: descriptions/embedded/endpoints/solution-instances/createSolutionInstance.md
      operationId: create-solution-instance
      x-codeSamples:
      - lang: cURL
        label: curl
        source:
          $ref: code_samples/solution-instances/createSolutionInstance.curl
      parameters:
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
        example: Bearer 3fd74d349xxxxxxxxxxxxxxxxxxxxxxxxd90df521
        description: Pass your <a target="_blank" href="/developer/embedded-apis/users#graphql-create-user-token">user token</a> here
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  type: string
                variables:
                  type: object
            examples:
              create-solution-instance--return-workflow-url:
                summary: Create Solution Instance - return workflow URL
                value:
                  query: "mutation ($solutionId: ID!, $instanceName: String!){\n   createSolutionInstance(input: {\n       solutionId: $solutionId\n       instanceName: $instanceName\n   }) {\n     solutionInstance {\n       id\n       name\n       enabled\n       created\n       workflows {\n           edges {\n               node {\n                   id\n                   triggerUrl\n                   sourceWorkflowId\n               }\n           }\n       }\n     }\n   }\n }"
                  variables:
                    solutionId: b3422397-XXXX-XXXX-XXXX-57e7e66771b3
                    instanceName: Gene Slack star instance 2
              create-solution-instance--return-authId:
                summary: Create Solution Instance - return authId
                value:
                  query: "mutation ($solutionId: ID!, $instanceName: String!){\n   createSolutionInstance(input: {\n       solutionId: $solutionId\n       instanceName: $instanceName\n   }) {\n     solutionInstance {\n       id\n       name\n       enabled\n       created\n       authValues{\n           authId\n           externalId\n       }\n     }\n   }\n }"
                  variables:
                    solutionId: b3422397-XXXX-XXXX-XXXX-57e7e66771b3
                    instanceName: Gene Salesforce to Slack instance
        required: true
      responses:
        '200':
          description: OK - InstanceId of the newly created instance is returned
          content:
            application/json:
              examples:
                create-solution-instance--return-workflow-url:
                  summary: Create Solution Instance - return workflow URL
                  value:
                    $ref: examples/solution-instances/createSolutionInstancesReturnWorkflowURL.json
                create-solution-instance--return-authId:
                  summary: Create Solution Instance - return authId
                  value:
                    $ref: examples/solution-instances/createSolutionInstancesReturnAuthId.json
        '401':
          description: Unauthorized
          content:
            application/json:
              example:
                $ref: examples/401.json
        '403':
          description: Forbidden
          content:
            application/json:
              example:
                $ref: examples/403.json
        '500':
          description: Internal Error
          content:
            application/json:
              example:
                $ref: examples/500.json
    servers:
    - url: https://tray.io/graphql
      description: US
    - url: https://eu1.tray.io/graphql
      description: EU
    - url: https://ap1.tray.io/graphql
      description: APAC
  '/            ':
    post:
      tags:
      - Solution Instances
      summary: Update solution instance (user token)
      description:
        $ref: descriptions/embedded/endpoints/solution-instances/updateSolutionInstance.md
      operationId: update-solution-instance
      x-codeSamples:
      - lang: cURL
        label: curl
        source:
          $ref: code_samples/solution-instances/updateSolutionInstance.curl
      parameters:
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
        example: Bearer 3fd74d349xxxxxxxxxxxxxxxxxxxxxxxxd90df521
        description: Pass your <a target="_blank" href="/developer/embedded-apis/users#graphql-create-user-token">user token</a> here
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  type: string
                variables:
                  type: object
            examples:
              enable-solution-instance:
                summary: Enable Solution Instance
                value:
                  query: "mutation ($solutionInstanceId: ID!, $instanceName: String!, $enabled: Boolean!) {\n  updateSolutionInstance(input: {\n      solutionInstanceId: $solutionInstanceId,\n      instanceName: $instanceName, \n      enabled: $enabled\n  }) {\n    solutionInstance {\n      id\n      name\n      enabled\n      created\n    }\n  }\n}"
                  variables:
                    solutionInstanceId: 2d38b2ec-xxxx-xxx-xxxx-b4ec68084266
                    instanceName: myCustomersSolutionInstanceName
                    enabled: true
        required: true
      responses:
        '200':
          description: OK - Updates the solution instance
          content:
            application/json:
              examples:
                update-solution-instance-enable:
                  summary: Update Solution Instance - Enable
                  value:
                    $ref: examples/solution-instances/updateSolutionInstanceEnable.json
        '401':
          description: Unauthorized
          content:
            application/json:
              example:
                $ref: examples/401.json
        '403':
          description: Forbidden
          content:
            application/json:
              example:
                $ref: examples/403.json
        '500':
          description: Internal Error
          content:
            application/json:
              example:
                $ref: examples/500.json
    servers:
    - url: https://tray.io/graphql
      description: US
    - url: https://eu1.tray.io/graphql
      description: EU
    - url: https://ap1.tray.io/graphql
      description: APAC
  '/             ':
    post:
      tags:
      - Solution Instances
      summary: Upgrade solution instance (user token)
      description:
        $ref: descriptions/embedded/endpoints/solution-instances/upgradeSolutionInstance.md
      operationId: upgrade-solution-instance
      x-codeSamples:
      - lang: cURL
        label: curl
        source:
          $ref: code_samples/solution-instances/upgradeSolutionInstance.curl
      parameters:
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
        example: Bearer 3fd74d349xxxxxxxxxxxxxxxxxxxxxxxxd90df521
        description: Pass your <a target="_blank" href="/developer/embedded-apis/users#graphql-create-user-token">user token</a> here
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  type: string
                variables:
                  type: object
            examples:
              upgrade-solution-instance:
                summary: Upgrade Solution Instance
                value:
                  query: "mutation ($solutionInstanceId: ID!, $configValues: [ConfigValue!], $authValues: [AuthValue!] ){\n  upgradeSolutionInstance (input: {\n    solutionInstanceId: $solutionInstanceId, \n    configValues: $configValues,\n    authValues: $authValues\n  }) \n    { \n solutionInstance  {\n  id\n  configValues{\n    externalId\n    value\n  }\n  authValues{\n    authId\n    externalId\n  }\n  enabled\n  created\n  }\n }\n}"
                  variables:
                    solutionInstanceId: 625xxx-xxx-xxx-xxx-xxx111f
                    configValues:
                    - externalId: external_support-email
                      value: support@example.com
                    authValues:
                    - externalId: external_slack_authentication
                      authId: aaa67786-XXXX-XXXX-XXXX-97dedd1519b3
        required: true
      responses:
        '200':
          description: OK - Upgrades the solution instance with new auths or configs
          content:
            application/json:
              examples:
                upgrade-solution-instance:
                  summary: Upgrade Solution Instance
                  value:
                    $ref: examples/solution-instances/upgradeSolutionInstance.json
        '401':
          description: Unauthorized
          content:
            application/json:
              example:
                $ref: examples/401.json
        '403':
          description: Forbidden
          content:
            application/json:
              example:
                $ref: examples/403.json
        '500':
          description: Internal Error
          content:
            application/json:
              example:
                $ref: examples/500.json
    servers:
    - url: https://tray.io/graphql
      description: US
    - url: https://eu1.tray.io/graphql
      description: EU
    - url: https://ap1.tray.io/graphql
      description: APAC
  '/              ':
    post:
      tags:
      - Solution Instances
      summary: Delete Solution Instance (user token)
      description:
        $ref: descriptions/embedded/endpoints/solution-instances/deleteSolutionInstance.md
      operationId: delete-solution-instance
      x-codeSamples:
      - lang: cURL
        label: curl
        source:
          $ref: code_samples/solution-instances/deleteSolutionInstance.curl
      parameters:
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
        example: Bearer 3fd74d349xxxxxxxxxxxxxxxxxxxxxxxxd90df521
        description: Pass your <a target="_blank" href="/developer/embedded-apis/users#graphql-create-user-token">user token</a> here
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  type: string
                variables:
                  type: object
            examples:
              delete-solution-instance:
                summary: Delete Solution Instance
                value:
                  query: "mutation ($solutionInstanceId: ID!){\n  removeSolutionInstance(input: {solutionInstanceId: $solutionInstanceId}) {\n   clientMutationId\n }\n}"
                  variables:
                    solutionInstanceId: 2d38b2ec-xxxx-xxx-xxxx-b4ec68084266
              delete-solution-instance-with-clientMutationId:
                summary: Delete Solution Instance with clientMutationId
                value:
                  query: "mutation ($solutionInstanceId: ID!){\n  removeSolutionInstance(input: {solutionInstanceId: $solutionInstanceId, clientMutationId: $clientMutationId}) {\n   clientMutationId\n }\n}"
                  variables:
                    solutionInstanceId: 2d38b2ec-xxxx-xxx-xxxx-b4ec68084266
                    clientMutationId: some-mutation-id
        required: true
      responses:
        '200':
          description: OK - Solution instance is deleted
          content:
            application/json:
              examples:
                delete-solution-instance:
                  summary: Delete Solution Instance
                  value:
                    $ref: examples/solution-instances/deleteSolutionInstance.json
                delete-solution-instance-with-clientMutationId:
                  summary: Delete Solution Instance with clientMutationId
                  value:
                    $ref: examples/solution-instances/deleteSolutionInstanceWithClientMutationId.json
        '401':
          description: Unauthorized
          content:
            application/json:
              example:
                $ref: examples/401.json
        '403':
          description: Forbidden
          content:
            application/json:
              example:
                $ref: examples/403.json
        '500':
          description: Internal Error
          content:
            application/json:
              example:
                $ref: examples/500.json
    servers:
    - url: https://tray.io/graphql
      description: US
    - url: https://eu1.tray.io/graphql
      description: EU
    - url: https://ap1.tray.io/graphql
      description: APAC
components:
  schemas:
    GraphQLError:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
                description: Error message
              locations:
                type: array
                items:
                  type: object
                  properties:
                    line:
                      type: integer
                    column:
                      type: integer
              path:
                type: array
                items:
                  type: string
    SolutionInstance:
      type: object
      properties:
        id:
          type: string
          description: Unique solution instance identifier
        name:
          type: string
          description: Name of the solution instance
        enabled:
          type: boolean
          description: Whether the solution instance is currently enabled
        created:
          type: string
          format: date-time
          description: Timestamp when the instance was created
        owner:
          type: string
          description: User ID of the instance owner
        workflows:
          type: object
          properties:
            edges:
              type: array
              items:
                type: object
                properties:
                  node:
                    type: object
                    properties:
                      id:
                        type: string
                      triggerUrl:
                        type: string
                        format: uri
        solutionVersionFlags:
          type: object
          properties:
            hasNewerVersion:
              type: boolean
              description: Whether a newer version of the solution is available
    PageInfo:
      type: object
      properties:
        hasNextPage:
          type: boolean
          description: Whether there are more results after the current page
        endCursor:
          type: string
          description: Cursor for fetching the next page
        hasPreviousPage:
          type: boolean
          description: Whether there are results before the current page
        startCursor:
          type: string
          description: Cursor for fetching the previous page
    GraphQLRequest:
      type: object
      required:
      - query
      properties:
        query:
          type: string
          description: The GraphQL query or mutation string
        variables:
          type: object
          description: Variables to pass to the GraphQL query or mutation
        operationName:
          type: string
          description: The name of the operation to execute if the query contains multiple operations
  responses:
    Unauthorized:
      description: Authentication failed. The bearer token is missing, invalid, or does not have sufficient permissions for the requested operation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/GraphQLError'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Use either a master token (obtained from Tray Embedded UI settings) or a user token (obtained via the authorize mutation). Master tokens are required for admin operations like managing users. User tokens are required for user-scoped operations like managing solution instances.
x-refined-from:
- tray-ai-embedded-api-openapi.yml
- tray-ai-embedded-api-published-openapi.yaml