Stellar Authentication API

Authentication controls the log in/log out process for all SDP users, as well as the token refresh process. Authentication uses a JWT approach signed with an ES256 private key.

Operations 5

POST /login Log In #
POST /refresh-token Refresh Token #
POST /mfa Provide Multi-Factor Authentication #
POST /forgot-password Forgot Password #
POST /reset-password Reset Rassword #

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/stellar-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

stellar-authentication-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Stellar Disbursement Platform Authentication API
  version: 2.1.0
  summary: The Stellar Disbursement Platform (SDP) is a tool built for organizations to make bulk payments to a group of recipients over the Stellar network.
  description: 'The Stellar Disbursement Platform (SDP) is a tool built for organizations to make bulk payments to a group of recipients over the Stellar network.


    This is an open-source project that is built on top of the Stellar network, and the code can be found on the following repositories:


    - [stellar/stellar-disbursement-platform-backend](https://github.com/stellar/stellar-disbursement-platform-backend): This repository contains the backend and infrastructure code for the Stellar Disbursement Platform.

    - [stellar/stellar-disbursement-platform-frontend](https://github.com/stellar/stellar-disbursement-platform-frontend): This repository contains the web frontend code for the Stellar Disbursement Platform.

    - [stellar/helm-charts](https://github.com/stellar/helm-charts/tree/main/charts/stellar-disbursement-platform): This repository contains the Helm chart for deploying the Stellar Disbursement Platform using kubernetes.

    '
  termsOfService: https://stellar.org/terms-of-service
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: ''
tags:
- name: Authentication
  description: Authentication controls the log in/log out process for all SDP users, as well as the token refresh process. Authentication uses a JWT approach signed with an ES256 private key.
paths:
  /login:
    post:
      tags:
      - Authentication
      summary: Log In
      description: 'Allows credentialed SDP users to log in to the SDP dashboard with a password. Note: all passwords must be at least 8 characters long and a combination of uppercase letters, lowercase letters, numbers, and symbols.'
      operationId: LogIn
      requestBody:
        content:
          '*/*':
            schema:
              required:
              - email
              - password
              type: object
              properties:
                email:
                  type: string
                password:
                  type: string
                recaptcha_token:
                  type: string
                  description: Token for reCAPTCHA validation. ReCAPTCHA token is required unless the `DISABLE_RECAPTCHA` configuration is set to true.
              example:
                email: johndoe@mail.com
                password: mysecret
        required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  token:
                    type: string
                example:
                  token: eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImlkIjoidXNlci1pZCIsImVtYWlsIjoiZW1haWxAZW1haWwuY29tIiwicm9sZXMiOlt7Im5hbWUiOiJTdXBlcnZpc29yIn1dfSwiZXhwIjoxNjc1OTYyOTQ3fQ.4Zj9yBXch-iuFYF-kc_EhHPxjpwp_egMOLbOv4bZKO1MFvcmEgZ5MlXH1_1fZfgUxaNBcMCdRM6MGSqKocwGnA
              example:
                token: eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImlkIjoidXNlci1pZCIsImVtYWlsIjoiZW1haWxAZW1haWwuY29tIiwicm9sZXMiOlt7Im5hbWUiOiJTdXBlcnZpc29yIn1dfSwiZXhwIjoxNjc1OTYyOTQ3fQ.4Zj9yBXch-iuFYF-kc_EhHPxjpwp_egMOLbOv4bZKO1MFvcmEgZ5MlXH1_1fZfgUxaNBcMCdRM6MGSqKocwGnA
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  extras:
                    type: object
                    properties:
                      status:
                        type: number
                      message:
                        type: string
                example:
                  error: Invalid credentials
                  extras:
                    status: 400
                    message: Invalid username or password
              example:
                error: Invalid credentials
                extras:
                  status: 400
                  message: Invalid username or password
      x-codegen-request-body-name: body
  /refresh-token:
    post:
      tags:
      - Authentication
      summary: Refresh Token
      description: A user’s token expires after 15 minutes. This endpoint handles refreshing the user’s token without disrupting their experience. It is triggered within the 30-second window before the token expires.
      operationId: RefreshToken
      responses:
        '200':
          description: Returns a new access token
          content:
            application/json:
              schema:
                type: object
                properties:
                  token:
                    type: string
                example:
                  token: eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImlkIjoidXNlci1pZCIsImVtYWlsIjoiZW1haWxAZW1haWwuY29tIiwicm9sZXMiOlt7Im5hbWUiOiJTdXBlcnZpc29yIn1dfSwiZXhwIjoxNjc1OTYyOTQ3fQ.4Zj9yBXch-iuFYF-kc_EhHPxjpwp_egMOLbOv4bZKO1MFvcmEgZ5MlXH1_1fZfgUxaNBcMCdRM6MGSqKocwGnA
              example:
                token: eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7ImlkIjoidXNlci1pZCIsImVtYWlsIjoiZW1haWxAZW1haWwuY29tIiwicm9sZXMiOlt7Im5hbWUiOiJTdXBlcnZpc29yIn1dfSwiZXhwIjoxNjc1OTYyOTQ3fQ.4Zj9yBXch-iuFYF-kc_EhHPxjpwp_egMOLbOv4bZKO1MFvcmEgZ5MlXH1_1fZfgUxaNBcMCdRM6MGSqKocwGnA
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Details about the error
                  extras:
                    type: object
                    properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  extras:
                    type: object
                    properties:
                      status:
                        type: number
                      message:
                        type: string
                example:
                  error: Not authorized
                  extras:
                    status: 401
                    message: Not authorized
              example:
                error: Not authorized
                extras:
                  status: 401
                  message: Not authorized
      security:
      - BearerAuth: []
  /mfa:
    post:
      tags:
      - Authentication
      summary: Provide Multi-Factor Authentication
      description: Governs the multi-factor authentication process for SDP user login, including the ability to remember the device so MFA is not always required.
      operationId: authenticateMFA
      parameters:
      - name: Device-ID
        in: header
        description: Identifier of the device
        required: false
        style: simple
        explode: false
        schema:
          type: string
      requestBody:
        description: MFA request data
        content:
          '*/*':
            schema:
              required:
              - mfa_code
              type: object
              properties:
                mfa_code:
                  type: string
                  description: Multi-factor authentication code
                remember_me:
                  type: boolean
                  description: Boolean flag to remember the user
                recaptcha_token:
                  type: string
                  description: Token for reCAPTCHA validation. ReCAPTCHA token is required unless the `DISABLE_RECAPTCHA` configuration is set to true.
        required: true
      responses:
        '200':
          description: Successful authentication
          content:
            application/json:
              schema:
                type: object
                properties:
                  token:
                    type: string
                    description: Authentication token
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Details about the error
                  extras:
                    type: object
                    properties: {}
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  extras:
                    type: object
                    properties:
                      status:
                        type: number
                      message:
                        type: string
                example:
                  error: Not authorized
                  extras:
                    status: 401
                    message: Not authorized
              example:
                error: Not authorized
                extras:
                  status: 401
                  message: Not authorized
      x-codegen-request-body-name: body
  /forgot-password:
    post:
      tags:
      - Authentication
      summary: Forgot Password
      description: Sends an email with a token to an SDP user who has gone through the Forgot Password process.
      operationId: forgotPassword
      requestBody:
        description: Forgot password request data
        content:
          '*/*':
            schema:
              required:
              - email
              type: object
              properties:
                email:
                  type: string
                  description: Email of the user
                  format: email
                recaptcha_token:
                  type: string
                  description: Token for reCAPTCHA validation
        required: true
      responses:
        '200':
          description: Forgot password email sent successfully
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/MessageResponse'
        '400':
          description: Bad Request
          content:
            '*/*':
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Details about the error
                  extras:
                    type: object
                    properties: {}
      x-codegen-request-body-name: body
  /reset-password:
    post:
      tags:
      - Authentication
      summary: Reset Rassword
      description: Allows an SDP user who has gone through the Forgot Password process to set their new password with a token sent via email.
      operationId: resetPassword
      requestBody:
        description: Reset password request data
        content:
          '*/*':
            schema:
              required:
              - password
              - reset_token
              type: object
              properties:
                password:
                  type: string
                  description: New password for the user
                reset_token:
                  type: string
                  description: Token used to identify a valid password reset request
        required: true
      responses:
        '200':
          description: Password reset successfully
          content: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Details about the error
                  extras:
                    type: object
                    properties: {}
      x-codegen-request-body-name: body
components:
  schemas:
    MessageResponse:
      required:
      - message
      type: object
      properties:
        message:
          type: string
  securitySchemes:
    BearerAuth:
      type: apiKey
      description: Authorization header containing an SDP JWT (ES256) or an SDP_ API key.
      name: Authorization
      in: header
    SEP10Auth:
      type: apiKey
      description: Authorization header containing a SEP-10 JWT (Bearer {token}).
      name: Authorization
      in: header
    SEP24Auth:
      type: apiKey
      description: Authorization header containing a SEP-24 JWT (Bearer {token}).
      name: Authorization
      in: header
    SEP24QueryAuth:
      type: apiKey
      description: Query parameter containing a SEP-24 JWT.
      name: token
      in: query
x-original-swagger-version: '2.0'