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.
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.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/pluggy:status-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 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)