Pluggy Status API

Read the health of every Pluggy connector, product and infrastructure component plus open and past incidents (the data behind status.pluggy.ai); no authentication required.

Business capability
Trust Portal & Public Disclosure BC-4290.30

Operations 3

GET /api/status Retrieve status snapshot #
GET /api/connectors-incidents Retrieve active incidents by connector #
GET /api/summary Retrieve status summary #

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/pluggy:status-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

pluggy-status-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Pluggy Status API
  version: 1.0.0
  description: 'Read the health of every Pluggy connector, product and infrastructure component, plus every open and past incident, the same data that powers https://status.pluggy.ai. No authentication and no API key: the endpoints are public, CORS-open and cached for 30s, so you can call them straight from a back end, a support tool or a browser. Poll them to show an incident banner on your own connector-selection screen, or subscribe to updates by email/Slack from https://status.pluggy.ai.'
servers:
- url: https://status.pluggy.ai
  description: Status API
tags:
- name: Status
  description: Public health and incident data for Pluggy connectors, products and infrastructure. No authentication required.
paths:
  /api/status:
    get:
      operationId: status-snapshot
      tags:
      - Status
      summary: Retrieve status snapshot
      description: 'The full public snapshot: every connector with its current health and 90-day history, every open and recent incident with its timeline, the infrastructure components and the manual payment-product statuses — the same data https://status.pluggy.ai renders. Each institution and each incident carries a pluggy_id that matches the id returned by GET https://api.pluggy.ai/connectors, so you can flag an affected connector on your own connector-selection screen. Cached for 30s; polling once a minute is plenty.'
      servers:
      - url: https://status.pluggy.ai
        description: Status API
      responses:
        '200':
          description: Current status snapshot.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusSnapshot'
        '503':
          description: No snapshot could be produced and none is cached. Retry — the endpoint serves the last good snapshot whenever it has one.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/connectors-incidents:
    get:
      operationId: status-connector-incidents
      tags:
      - Status
      summary: Retrieve active incidents by connector
      description: 'Just what is wrong with each connector right now, keyed by the same id you get from GET https://api.pluggy.ai/connectors. Poll this to flag an affected bank on your own connector-selection screen before a user picks it and fails.


        It is the slim counterpart to the snapshot: a few kilobytes rather than a few hundred, because it carries no history, no resolved incidents and no timelines — the url on each incident links to those.


        Only incidents affecting a connector *at this moment* are listed. A scheduled maintenance is published days ahead and stays open the whole time, so it appears only once its window opens and disappears when the window closes. An incident affecting several institutions appears under each of their connector ids. Infrastructure-wide incidents belong to no connector and are not listed here — use the snapshot for those. Cached for 30s.'
      servers:
      - url: https://status.pluggy.ai
        description: Status API
      responses:
        '200':
          description: Active incidents grouped by connector.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectorIncidents'
        '503':
          description: No data could be produced and none is cached. Retry — the endpoint serves the last good answer whenever it has one.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/summary:
    get:
      operationId: status-summary
      tags:
      - Status
      summary: Retrieve status summary
      description: 'A compact roll-up of the same data: one overall status, its label in Portuguese, Spanish and English, and how many incidents are open. Use it for a status badge or a health check when you do not need the full snapshot. Maintenance windows are not counted as open incidents. Cached for 30s.'
      servers:
      - url: https://status.pluggy.ai
        description: Status API
      responses:
        '200':
          description: Current overall status.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusSummary'
components:
  schemas:
    Component:
      type: object
      description: A Pluggy infrastructure component (API, webhooks, Connect widget).
      properties:
        key:
          type: string
        name:
          type: string
        status:
          type: string
          enum:
          - operational
          - degraded
          - partial_outage
          - major_outage
          - maintenance
        sort_order:
          type: integer
    ConnectorIncident:
      type: object
      description: An incident affecting one connector right now.
      properties:
        id:
          type: string
          format: uuid
        title:
          type: string
          description: Short, customer-facing summary, e.g. 'XP Banking - Compras parceladas não sendo retornadas'.
        description:
          type:
          - string
          - 'null'
        type:
          type: string
          enum:
          - CONNECTOR_UNAVAILABLE
          - CONNECTOR_DEGRADED
          - INSTITUTION_OUTAGE
          - SCHEDULED_MAINTENANCE
          - CONSENT_ERROR
          - CONNECTION_NOT_UPDATING
          - PARTIAL_SUCCESS
          - ACCOUNTS_MISSING
          - BALANCE_INCORRECT
          - TRANSACTIONS_MISSING
          - TRANSACTIONS_INCORRECT
          - TRANSACTIONS_INSTALLMENTS_ISSUE
          - INVESTMENTS_MISSING
          - INVESTMENTS_INCORRECT
          - IDENTITY_MISSING
          - HISTORICAL_DATA_MISSING
          - WEBHOOK_DELAY
          - PAYMENT_FAILURE
          - OTHER
          description: 'What is broken — the axis severity and state do not cover. Use it to group the same problem across institutions, and to decide which incidents are worth showing a user: a SCHEDULED_MAINTENANCE and a TRANSACTIONS_MISSING both read as ''degraded'' otherwise. OTHER means we have not classified it, not that nothing is wrong.'
        product:
          type: string
          enum:
          - dados
          - pis
          - pis-agendado
          - pixauto
          - smart
          - infra
          description: Which Pluggy product line the incident affects.
        kind:
          type: string
          enum:
          - INCIDENT
          - MAINTENANCE
        severity:
          type: string
          enum:
          - DEGRADED
          - PARTIAL_OUTAGE
          - MAJOR_OUTAGE
          - MAINTENANCE
        state:
          type: string
          enum:
          - INVESTIGATING
          - IDENTIFIED
          - MONITORING
          - SCHEDULED
        startedAt:
          type: string
          format: date-time
        updatedAt:
          type:
          - string
          - 'null'
          format: date-time
        url:
          type: string
          description: Permalink to the incident on the status page, with its full timeline and postmortem.
    IncidentInstitution:
      type: object
      properties:
        pluggy_id:
          type: string
          description: Pluggy connector id, matches the id in GET /connectors.
        institution_name:
          type:
          - string
          - 'null'
    Incident:
      type: object
      properties:
        id:
          type: string
          format: uuid
        kind:
          type: string
          enum:
          - incident
          - maintenance
        product:
          type: string
          enum:
          - dados
          - pis
          - pis-agendado
          - pixauto
          - smart
          - infra
          - pagamentos
          description: Affected product. 'pagamentos' is legacy and only appears on historical incidents.
        pluggy_id:
          type:
          - string
          - 'null'
          description: Primary affected connector. Null for product-wide or infrastructure incidents.
        institution_name:
          type:
          - string
          - 'null'
        institutions:
          type: array
          description: Every affected institution. An incident can span several connectors; the primary one is pluggy_id.
          items:
            $ref: '#/components/schemas/IncidentInstitution'
        component_key:
          type:
          - string
          - 'null'
          description: Infrastructure component (api, webhooks or connect) for incidents whose product is infra.
        severity:
          type: string
          enum:
          - degraded
          - partial_outage
          - major_outage
          - maintenance
        state:
          type: string
          enum:
          - investigating
          - identified
          - monitoring
          - resolved
          - scheduled
          description: Anything other than 'resolved' is an open incident.
        scheduled_kind:
          type: string
          enum:
          - programada
          - nao-programada
          - upcoming
        title:
          type: string
        description:
          type:
          - string
          - 'null'
        apis:
          type: array
          items:
            type: string
          description: Affected APIs or journey phases, e.g. Cartão de crédito, Investimentos, Consentimento.
        started_at:
          type: string
          format: date-time
        resolved_at:
          type:
          - string
          - 'null'
          format: date-time
        window_starts_at:
          type:
          - string
          - 'null'
          format: date-time
          description: Maintenance window start.
        window_ends_at:
          type:
          - string
          - 'null'
          format: date-time
          description: Maintenance window end.
        postmortem:
          type:
          - string
          - 'null'
          description: Published post-mortem, when there is one.
        source:
          type: string
          enum:
          - manual
          - webhook
          - statuspage
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        updates:
          type: array
          items:
            $ref: '#/components/schemas/IncidentUpdate'
          description: Timeline of the incident, oldest first.
    StatusSummary:
      type: object
      properties:
        status:
          type: string
          enum:
          - op
          - dg
          - pt
          - mj
          - mn
          description: 'Worst status across connectors, infrastructure and open incidents: op operational, dg degraded, pt partial outage, mj major outage, mn maintenance.'
        labels:
          type: object
          description: Ready-to-render label for the status, keyed by locale.
          properties:
            pt:
              type: string
            es:
              type: string
            en:
              type: string
        openIncidents:
          type: integer
          description: Number of open incidents (maintenance windows excluded).
        updatedAt:
          type: string
          format: date-time
    Institution:
      type: object
      properties:
        pluggy_id:
          type: string
          description: Pluggy connector id, matches the id in GET /connectors.
        name:
          type: string
        type:
          type:
          - string
          - 'null'
        logo_url:
          type:
          - string
          - 'null'
        is_open_finance:
          type: boolean
          description: True for regulated Open Finance connectors, false for Pluggy's direct connectors.
        open_finance_participant_url:
          type:
          - string
          - 'null'
        status:
          type: string
          enum:
          - online
          - degraded
          - offline
          - maintenance
          description: Current health of the data connection. It does not describe payment rails — see components for those.
        bars:
          type: string
          description: '90 characters, one per day, oldest first: o online, d degraded, x offline, m maintenance.'
        uptime:
          type: number
          description: Uptime over the last 90 days, as a percentage.
        supports_data:
          type: boolean
        supports_pis:
          type: boolean
        supports_pis_scheduled:
          type: boolean
        supports_pix_auto:
          type: boolean
        supports_smart_transfer:
          type: boolean
    Observation:
      type: object
      description: A high-confidence situation Pluggy is investigating. It is not a confirmed incident and does not change component availability.
      properties:
        id:
          type: string
          format: uuid
        institution_name:
          type: string
        title:
          type: string
        body:
          type: string
          description: Customer-facing update. It never includes internal metrics, customer data or a root-cause hypothesis.
        state:
          type: string
          enum:
          - active
          - resolved
          - dismissed
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        resolved_at:
          type:
          - string
          - 'null'
          format: date-time
    StatusSnapshot:
      type: object
      properties:
        generatedAt:
          type: string
          format: date-time
        institutions:
          type: array
          items:
            $ref: '#/components/schemas/Institution'
        incidents:
          type: array
          items:
            $ref: '#/components/schemas/Incident'
          description: Open incidents plus the last 90 days of resolved ones. Anything whose state is not 'resolved' is happening right now.
        observations:
          type: array
          items:
            $ref: '#/components/schemas/Observation'
          description: Approved high-confidence monitoring observations, active plus recent outcomes. They are not incidents and do not imply component degradation.
        components:
          type: array
          items:
            $ref: '#/components/schemas/Component'
        productStatus:
          type: array
          items:
            $ref: '#/components/schemas/ProductStatus'
    ProductStatus:
      type: object
      description: Manual per-institution status for the payment products. Payment rails have no automatic health check, so a row only appears here when Pluggy sets it.
      properties:
        pluggy_id:
          type: string
        institution_name:
          type: string
        product:
          type: string
          enum:
          - pis
          - pis-agendado
          - pixauto
          - smart
        status:
          type: string
          enum:
          - operational
          - degraded
          - partial_outage
          - major_outage
          - maintenance
    IncidentUpdate:
      type: object
      description: One entry of an incident timeline, newest last.
      properties:
        id:
          type: string
          format: uuid
        incident_id:
          type: string
          format: uuid
        state:
          type: string
          enum:
          - investigating
          - identified
          - monitoring
          - resolved
          - scheduled
          - update
        body:
          type: string
          description: 'Update text (small markdown subset: bold, italic, code, links, lists).'
        created_at:
          type: string
          format: date-time
    ConnectorIncidents:
      type: object
      properties:
        generatedAt:
          type: string
          format: date-time
        connectors:
          type: object
          description: Keyed by Pluggy connector id. Only connectors with at least one active incident appear, and each list is ordered worst-first.
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ConnectorIncident'
x-provenance:
  method: harvested
  publisher: Pluggy
  source: https://docs.pluggy.ai/openapi/status-api.json
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)