Spotnana Authentication API

Authentication APIs for user login, logout, and token management

Operations 1

POST /v2/auth/oauth2-token Get oauth2 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/spotnana-authentication-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

spotnana-authentication-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Air Authentication API
  version: v2
  description: APIs to perform search, checkout and book an air pnr
servers:
- url: https://api-ext-sboxmeta.partners.spotnana.com
  description: Sandbox URL
security:
- Bearer: []
tags:
- name: Authentication
  description: Authentication APIs for user login, logout, and token management
paths:
  /v2/auth/oauth2-token:
    post:
      tags:
      - Authentication
      summary: Get oauth2 token
      description: 'Get oauth2 token using the client credentials.

        {% admonition type="warning" %}

        **Note:** API calls to the `/v2/auth/oauth2-token` and `/get-auth-token` (legacy) endpoints are rate limited.

        We recommend reusing the existing tokens until they expire.

        {% /admonition %}

        '
      operationId: fetchOauth2Token
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/OAuthTokenRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthTokenResponse'
        '403':
          $ref: '#/components/responses/Forbidden'
components:
  schemas:
    OAuthTokenResponse:
      type: object
      title: OAuthTokenResponse
      required:
      - access_token
      - token_type
      x-ignore-naming-case: true
      properties:
        access_token:
          type: string
          description: The token to be used in subsequent API calls made to the Spotnana platform.
        expires_in:
          type: integer
          description: The length of time (in seconds) for which the access token is valid.
          format: int32
        token_type:
          type: string
          description: "A case-insensitive value specifying the method of using the access token issued, as \nspecified in Section 7.1 of [RFC6749].\n"
          example: Bearer
        refresh_token:
          type: string
          description: 'Used to fetch a new access token when the existing token expires.

            The refresh token will not be available if the `grant_type` is `client_credentials`.

            '
        scope:
          type: string
          description: "The list of space-delimited, case-sensitive strings, as defined in Section 3.3 of \n[RFC6749], that allow the client to specify the desired scope of the requested security \ntoken in the context of the service or resource where the token will be used.\n"
    OAuthTokenRequest:
      type: object
      title: OAuthTokenRequest
      x-ignore-naming-case: true
      required:
      - grant_type
      - client_id
      - client_secret
      properties:
        grant_type:
          type: string
          description: Supported values are `client_credentials` and `urn:ietf:params:oauth:grant-type:token-exchange`.
        client_id:
          type: string
          description: Identifier for the API user.
        client_secret:
          type: string
          description: Password
        audience:
          type: string
          description: Identifies the API being accessed in Spotnana.
          example: https://apis.spotnana.com/v2
        subject_token:
          type: string
          description: "A security token that represents the identity of the entity on whose behalf the request \nis being made.\n"
        subject_token_type:
          type: string
          description: "Indicates the type of the `subject_token` used for token exchange. \nThis field supports the valid types as per the OAUTH 2.0 security framework.\n"
        scope:
          type: string
          description: "The list of space-delimited, case-sensitive strings, as defined in Section 3.3 of \nRFC6749 OAuth 2.0 framework, that allow the client to specify the desired scope of the requested security \ntoken in the context of the service or resource where the token will be used.\n"
    ErrorParameter:
      type: object
      title: ErrorParameter
      description: Error parameter
      properties:
        name:
          type: string
          description: Parameter name
        value:
          type: string
          description: Parameter value
    ErrorResponse:
      type: object
      properties:
        debugIdentifier:
          type: string
          description: Link to debug the error internally.
        errorMessages:
          type: array
          items:
            type: object
            properties:
              errorCode:
                type: string
                description: Error code to identify the specific errors.
              message:
                type: string
                description: Message containing details of error.
              errorParameters:
                type: array
                description: Error message parameters.
                items:
                  $ref: '#/components/schemas/ErrorParameter'
              errorDetail:
                type: string
                description: More details about the error.
  responses:
    Forbidden:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer