Symphony Pubkey API

The Pubkey API from Symphony — 5 operation(s) for pubkey.

Operations 5

POST /pubkey/authenticate Symphony Authenticate With Public Key
POST /v1/pubkey/app/authenticate/extensionApp Symphony Authenticate Extension App With Public Key
POST /pubkey/app/authenticate Symphony Authenticate an App With Public Key
POST /pubkey/app/username/{username}/authenticate Symphony Authenticate an application in a delegated context to act on behalf of a user
POST /pubkey/app/user/{userId}/authenticate Symphony Authenticate an application in a delegated context to act on behalf of a user

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/symphony-pubkey-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

symphony-pubkey-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 20.14.1
  title: Symphony Login Pubkey API
  description: 'For bots and other on-premise processes to authenticate. Once

    authenticated, the bot will be able to use the methods described in

    serviceAPI.yaml and agentAPI.yaml.


    Authentication requests will expect the user to pass a token containing

    user identification information and signed by the user''s private key


    There will be two implementations of this API, one on your Pod

    and one on the Key Manager. In order to fully authenticate,

    an API client will have to call both of these implementations

    and pass both of the session tokens returned as headers in all

    subsequent requests to the Symphony API.

    '
tags:
- name: Pubkey
paths:
  /pubkey/authenticate:
    post:
      summary: Symphony Authenticate With Public Key
      description: 'Based on an authentication request token signed by the caller''s RSA private key,

        authenticate the API caller and return a session token.


        A HTTP 401 Unauthorized error is returned on errors during authentication (e.g. invalid user,

        malformed authentication token, user''s public key not imported in the pod, invalid token signature etc.).

        '
      tags:
      - Pubkey
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Token'
        '401':
          description: Client is unauthorized to access this resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden to access this endpoint .
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server error, see response body for further details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthenticateRequest'
        required: true
  /v1/pubkey/app/authenticate/extensionApp:
    post:
      summary: Symphony Authenticate Extension App With Public Key
      description: 'Based on an authentication request token signed by the caller''s RSA private key,

        authenticate the API caller and return a session token.


        A HTTP 401 Unauthorized error is returned on errors during authentication (e.g. invalid user,

        malformed authentication token, user''s public key not imported in the pod, invalid token signature etc.).

        '
      tags:
      - Pubkey
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExtensionAppTokens'
        '400':
          description: Request object is invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Client is unauthorized to access this resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server error, see response body for further details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthenticateExtensionAppRequest'
        required: true
  /pubkey/app/authenticate:
    post:
      summary: Symphony Authenticate an App With Public Key
      description: 'Based on an authentication request token signed by the application''s RSA private key,

        authenticate the API caller and return a session token.


        A HTTP 401 Unauthorized error is returned on errors during authentication (e.g. invalid app,

        malformed authentication token, app''s public key not imported in the pod, invalid token signature etc.).

        '
      tags:
      - Pubkey
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Token'
        '401':
          description: Client is unauthorized to access this resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden to access this endpoint .
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server error, see response body for further details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthenticateRequest'
        required: true
  /pubkey/app/username/{username}/authenticate:
    post:
      summary: Symphony Authenticate an application in a delegated context to act on behalf of a user
      parameters:
      - name: sessionToken
        description: App Session authentication token.
        in: header
        required: true
        schema:
          type: string
      - name: username
        description: the username
        in: path
        required: true
        schema:
          type: string
      tags:
      - Pubkey
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Token'
        '401':
          description: Client is unauthorized to access this resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden to access this endpoint .
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server error, see response body for further details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /pubkey/app/user/{userId}/authenticate:
    post:
      summary: Symphony Authenticate an application in a delegated context to act on behalf of a user
      parameters:
      - name: sessionToken
        description: App Session authentication token.
        in: header
        required: true
        schema:
          type: string
      - name: userId
        description: the user ID
        in: path
        required: true
        schema:
          type: integer
          format: int64
      tags:
      - Pubkey
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Token'
        '401':
          description: Client is unauthorized to access this resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden to access this endpoint .
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server error, see response body for further details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Error:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
    AuthenticateRequest:
      type: object
      description: Request body for pubkey authentication
      properties:
        token:
          type: string
          description: a JWT containing the caller's username or application appGroupId and an expiration date, signed by the caller's private key.
    ExtensionAppTokens:
      type: object
      properties:
        appId:
          description: Application ID
          type: string
        appToken:
          description: 'This token generated by the application when calling authentication endpoint

            '
          type: string
        symphonyToken:
          type: string
          description: 'This token generated by Symphony and should be used by the application to verify that it''s talking to Symphony.

            '
        expireAt:
          type: integer
          format: int64
          description: unix timestamp when the token expired
    AuthenticateExtensionAppRequest:
      type: object
      description: Request body for extension app authentication
      properties:
        appToken:
          type: string
          description: application generated token
        authToken:
          type: string
          description: a JWT containing the caller's username and an expiration date, signed by the caller's private key.
    Token:
      type: object
      properties:
        name:
          description: 'The name of the header in which the token should be presented on subsequent API calls.

            '
          type: string
        token:
          type: string
          description: 'Authentication token that should be passed as header in each API rest calls.

            This should be considered opaque data by the client. It is not intended to contain any data interpretable by the

            client. The format is secret and subject to change without notice.

            '
        authorizationToken:
          type: string
          description: "(Beta) Short lived access token built from a user session. This field is still on Beta, please continue using \nthe returned \"token\" instead.\n"