Green Screens AI Auth API

Authentication service. OAuth 2.0 client_credentials grant (RFC 6749) issuing a Keycloak JWT that is presented as an RFC 6750 bearer token on every other operation in the estate.

Operations 1

POST /auth/token Auth token #

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/green-screens-ai-auth-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

green-screens-ai-auth-api-openapi.yml Raw ↑
# harvested: 2026-09-12
# method: derived
# source: https://connect.greenscreens.ai/openapi.yaml (verbatim /auth/token operation)
# note: >-
#   The provider ships no standalone auth service OpenAPI (connect.greenscreens.ai/auth/v1/openapi.yaml -> HTTP 403,
#   probed 2026-09-12). This document carries the /auth/token operation verbatim from the provider's own aggregate
#   spec, plus servers[] taken from the provider's own credentials and access-token help-center articles.
openapi: 3.0.2
info:
  title: Triumph Intelligence Connect Auth API
  x-logo:
    url: https://static.greenscreens.ai/main-logo.svg
    backgroundColor: '#fafafa'
    altText: Triumph Intelligence
  description: 'Authentication service for the Triumph Intelligence (Greenscreens.ai) Connect APIs. OAuth
    2.0 client_credentials grant (RFC 6749). Client ID and client secret are issued from the Triumph Intelligence
    application under Preferences > Credentials (Admin users only).


    Extracted verbatim from the provider aggregate OpenAPI at https://connect.greenscreens.ai/openapi.yaml;
    the provider publishes no standalone auth/openapi.yaml (probed 2026-09-12, HTTP 403).'
  version: 1.3.3
  termsOfService: https://triumph.io/terms-of-service/
  contact:
    name: API Support
    email: support@greenscreens.ai
    url: https://connect.intelligence.triumph.io
servers:
- url: https://api.greenscreens.ai/v1
  description: Production token endpoint (API URL published by the provider help center, https://intelligencehelp.triumph.io/en/articles/10684487-managing-api-credentials)
- url: https://intelligence.triumph.io/v1
  description: Production token endpoint under the Triumph Intelligence brand host (https://intelligencehelp.triumph.io/en/articles/12461044-acquiring-the-access-token-for-triumph-intelligence-apis)
- url: https://betaapi.greenscreens.ai/v1
  description: Beta server (pre-production)
- url: https://testapi.greenscreens.ai/v1
  description: Testing server (dev environment)
tags:
- name: Auth
  description: Authentication service
  x-displayName: Auth
paths:
  /auth/token:
    servers:
    - url: https://testapi.greenscreens.ai/v1
      description: Testing server (dev environment)
    - url: https://betaapi.greenscreens.ai/v1
      description: Beta server (pre-production)
    - url: https://api.greenscreens.ai/v1
      description: Production server (uses live data)
    post:
      tags:
      - Auth
      security: []
      summary: Auth token
      description: "The request for the access token should look like this.\n```\ncurl -X POST \"https://testapi.greenscreens.ai/v1/auth/token\"\
        \ -H \"accept: application/json\" \\\n-H \"Content-Type: application/x-www-form-urlencoded\" \\\
        \n-d \"grant_type=client_credentials&client_id=external-app&client_secret=78aaff56-7b86-4c92-9a1d-355f167c0619\"\
        \n```\nYou should replace `client_id` and `client_secret` with id and secret provided to you by\
        \ greenscreens. \n\n---\nIf an access_token that you use expires, or you receive an `unauthenticated`\
        \ error,\nyour application will need to obtain a new access_token.\n"
      operationId: authToken
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                grant_type:
                  type: string
                  enum:
                  - client_credentials
                  description: Type of authorization flow, in this case should always be `client_credentials`
                  example: client_credentials
                client_id:
                  type: string
                  description: Client id provided by greenscreens
                  example: external-app
                client_secret:
                  type: string
                  description: Client secret provided by greenscreens
                  example: 78aaff56-7b86-4c92-9a1d-355f167c0619
              required:
              - grant_type
              - client_id
              - client_secret
            example:
              grant_type: client_credentials
              client_id: external-app
              client_secret: 78aaff56-7b86-4c92-9a1d-355f167c0619
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  access_token:
                    type: string
                    description: Access token
                  expires_in:
                    type: integer
                    description: Expiration of access token
                  refresh_expires_in:
                    type: integer
                    description: Expiration of refresh token
                  token_type:
                    type: string
                    description: Token type
                  not-before-policy:
                    type: integer
                    description: Not before policy
                  scope:
                    type: string
                    description: scope
                required:
                - access_token
                - expires_in
                - token_type
                - not-before-policy
                - scope
              example:
                access_token: eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICI3cmFncld0MlJuVjZaeFdZa2JLZDktOGZYV202UlRCU3Q0WE1IYWdpZFQwIn0.eyJqdGkiOiIyM2VjNzg3Ny0yMzBjLTRkODktYmYyNy0zMWFmZWQ5MDMyYjciLCJleHAiOjE1NzU0ODEwMTMsIm5iZiI6MCwiaWF0IjoxNTc1NDc3NDEzLCJpc3MiOiJodHRwOi8vdGVzdGluZy5rZXkuY2FyZ2dvLmludC9hdXRoL3JlYWxtcy9DYXJnZ29TZWN1cml0eVJlYWxtIiwiYXVkIjoiYWNjb3VudCIsInN1YiI6IjhhYzNjYjljLTA1MGQtNDUzZS1hNGRhLTEzOGE5MmZlZmExNCIsInR5cCI6IkJlYXJlciIsImF6cCI6ImNhcmdnby1tZG0tYXBwIiwiYXV0aF90aW1lIjowLCJzZXNzaW9uX3N0YXRlIjoiN2Q4YmFhMTAtNWQwNy00ZTZmLWE3OTctOTAzMzZjOGY4MWRiIiwiYWNyIjoiMSIsImFsbG93ZWQtb3JpZ2lucyI6WyIqIl0sInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJUcGxNYW5hZ2VyIiwib2ZmbGluZV9hY2Nlc3MiLCJTaGlwcGVyTWFuYWdlciIsInVtYV9hdXRob3JpemF0aW9uIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiIiLCJwcmltYXJ5Um9sZSI6IlRwbE1hbmFnZXIiLCJjb21wYW55SWQiOiIxNWNlM2Q3Yi1kYjA3LTRkOTgtYmE3Zi1hNGYxYWNmMWY3ODIiLCJjaGlsZHJlbkNvbXBhbmllcyI6WyI3NDYyOGNkZS1jMzc0LTRmOTctYThiYS1lZDFjMGIzOTdhYzQiLCI2M2Y1MWM3ZC0yYjg1LTQwMWEtYWYwMS02NTQ3YzY3ZTlkOWIiLCI3YWY0MzRmZS00Mzg5LTQ5ZDQtYTM1Ni02NjlkZGNiMDIwMDgiXSwidXNlcklkIjoiZDMzMWVhZTEtMjU4Ni00YmFlLTgxODMtN2QyZmY5ZTJmYzQ2In0.ngQ15qlArqFyQ-fRJZcHGBFZQBWsG2oXgJqsOpY8ECpQN5-VgX2zlWPATZ469qXEmFEdwGfsadk62T6fu7Qxf1elTFSw5OqXHAWKPs1myB3E-wxDe9zRZdnFm72G5uoVHyLhPwbInWTTZNzCrISQVUQq1UbcQ5K0OZxQSThTgh232qPNjl6J1KekjvAkottMTCugv0Rl1MxvCnLyyYPyKl2EACCJShJ0-xjLaU1sH68Jnt7kPC8HCfqvZUj2c9YtBKwBTkOhriPQWHEQLC8g0GMSV3Q19_fCuAkqo9qd2spLyi7K9hNI1PNSESOSPBVNPqVmip712YdtlEUE8OQ0wQ
                expires_in: 3600
                refresh_expires_in: 0
                token_type: Bearer
                not-before-policy: 1631698006
                scope: ''
        '401':
          description: Authorization information is missing or invalid
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'JWT access token issued by POST /auth/token, presented as `Authorization: Bearer <access_token>`
        on every other Triumph Intelligence Connect operation.'