Mono Connect API

Account linking authorization and re-authorization.

Operations 2

POST /v2/accounts/initiate Initiate account linking #
POST /v2/accounts/auth Exchange 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/mono-africa-connect-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

mono-africa-connect-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Mono Connect API
  description: 'A grounded subset of the Mono open banking API for Africa. Mono lets businesses link customer bank accounts and read financial data, assess creditworthiness, collect direct bank payments (DirectPay), and verify identity (Lookup). Server-to-server requests authenticate with a secret key sent in the `mono-sec-key` header. Account linking is completed by the customer through the hosted Mono Connect widget; the widget returns a short-lived authorization code that is exchanged for a permanent account id used on all financial-data calls.


    Endpoint paths and methods here are grounded in the public Mono documentation at docs.mono.co (base host `https://api.withmono.com`, most endpoints under `/v2`; the account-number and Mashup Lookup endpoints are under `/v3`). Request and response bodies are modeled representatively - treat field-level schemas as illustrative and confirm exact payloads against the live reference before relying on them.'
  version: '2.0'
  contact:
    name: Mono
    url: https://mono.co
  x-provenance: Endpoint paths/methods grounded in docs.mono.co (2026-07-12). Request/response schemas are modeled and should be reconciled against the live API reference.
servers:
- url: https://api.withmono.com
  description: Mono production API host
security:
- monoSecKey: []
tags:
- name: Connect
  description: Account linking authorization and re-authorization.
paths:
  /v2/accounts/initiate:
    post:
      operationId: initiateAccountLinking
      tags:
      - Connect
      summary: Initiate account linking
      description: Starts an account-linking session for the Mono Connect widget. Returns a session that the customer uses to authorize access to their bank account.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InitiateRequest'
      responses:
        '200':
          description: A linking session was created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InitiateResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v2/accounts/auth:
    post:
      operationId: exchangeToken
      tags:
      - Connect
      summary: Exchange token
      description: Exchanges the authorization code returned by the Connect widget for a permanent account id. Store the returned id to make future financial-data calls for this account.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthRequest'
      responses:
        '200':
          description: The authorization code was exchanged for an account id.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    Error:
      type: object
      properties:
        status:
          type: string
        message:
          type: string
    InitiateRequest:
      type: object
      properties:
        customer:
          type: object
          description: Customer details for the linking session.
        meta:
          type: object
          description: Arbitrary metadata echoed back on the linked account.
        scope:
          type: string
          description: The linking scope, e.g. `auth`.
        redirect_url:
          type: string
    InitiateResponse:
      type: object
      properties:
        status:
          type: string
        message:
          type: string
        data:
          type: object
          properties:
            mono_url:
              type: string
            customer:
              type: string
            meta:
              type: object
    AuthResponse:
      type: object
      properties:
        id:
          type: string
          description: The permanent account id for the linked account.
    AuthRequest:
      type: object
      required:
      - code
      properties:
        code:
          type: string
          description: The authorization code returned by the Connect widget.
  responses:
    Unauthorized:
      description: The `mono-sec-key` is missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    monoSecKey:
      type: apiKey
      in: header
      name: mono-sec-key
      description: Secret key for the application, found in the Mono dashboard. Sent on every server-to-server request in the `mono-sec-key` header. Use test keys in the sandbox and live keys in production.