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:pluggy-investment-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: 3.2.0
info:
title: Pluggy Investment API
description: Pluggy's main API to review data and execute connectors
license:
name: MIT
contact:
email: hello@pluggy.ai
name: Pluggy
url: https://pluggy.ai
version: 1.0.0
servers:
- url: https://api.pluggy.ai
description: Pluggy API
tags:
- name: Investment
description: Investment portfolio and asset management
paths:
/investments:
get:
operationId: investments-list
summary: List
description: Recovers all investments collected for the item provided
responses:
'200':
description: Retrieve a list of all investments
content:
application/json:
schema:
type: object
properties:
page:
type: number
format: double
description: ''
total:
type: number
format: double
description: ''
totalPages:
type: number
format: double
description: ''
results:
type: array
items:
$ref: '#/components/schemas/Investment'
description: List of investments
examples:
response:
value:
page: 1
total: 3
totalPages: 1
results:
- id: f77eccf4-7714-498e-92a9-1bebe70335d9
code: 22.222.222/0001-22
name: Bahia AM Advisory FIC de FIM
balance: 1359.39
currencyCode: BRL
type: MUTUAL_FUND
subtype: MULTIMARKET_FUND
lastMonthRate: 0.24
annualRate: 3.24
lastTwelveMonthsRate: 3
itemId: 207f5bcd-312a-439c-abbe-166b6632c980
value: 500
quantity: 3
amount: 1500
taxes: 40.61
taxes2: 100
date: '2020-07-19T18:27:41.802Z'
owner: John Doe
number: null
amountProfit: 310.5
amountWithdrawal: 1310.5
amountOriginal: 1000
status: ACTIVE
transactions:
- id: b5e0f0b1-8a2c-4f4a-9d21-8f0f1e1a2b3c
tradeDate: '2020-10-01T00:00:00.000Z'
date: '2020-10-01T00:00:00.000Z'
description: Aplicação Fondo de Investimento Premium
quantity: 1.25
value: 2
amount: 5
type: BUY
movementType: CREDIT
- id: 2a96b873-53bb-4d16-a3d8-385a57e78d7e
number: null
name: CDB1194KL0Z - BANCO MAXIMA S/A
balance: 2000
currencyCode: BRL
type: FIXED_INCOME
subtype: CDB
itemId: 207f5bcd-312a-439c-abbe-166b6632c980
code: 0001-02
amount: 2500
taxes: null
taxes2: null
date: '2020-07-19T18:27:41.802Z'
owner: John Doe
rate: 30
rateType: CDI
fixedAnnualRate: 10.5
amountProfit: null
amountWithdrawal: 2000
amountOriginal: 1000
issuer: Pluggy
issuerCNPJ: 22.222.222/0001-22
issueDate: '2020-07-19T18:27:41.802Z'
purchaseDate: '2020-07-15T10:00:00.000Z'
status: ACTIVE
- id: ded7d2f1-6b90-44a8-9ace-de747b9f5bfe
number: 123456-2
name: Pluggy PREVIDENCIA
balance: 1359.39
currencyCode: BRL
type: SECURITY
subtype: RETIREMENT
annualRate: 3.24
itemId: 207f5bcd-312a-439c-abbe-166b6632c980
code: null
value: 500
quantity: 3
amount: 1500
taxes: 0
taxes2: 0
date: '2020-07-19T18:27:41.802Z'
owner: John Doe
amountProfit: 359.39
amountWithdrawal: 1310.5
status: ACTIVE
institution:
name: BANCO BTG PACTUAL S/A
number: '30306294000145'
tags:
- Investment
security:
- default: []
parameters:
- description: Item's primary identifier
in: query
name: itemId
required: true
schema:
type: string
format: uuid
example: d0e8a7f0-6d86-11ea-b77f-2e728ce88125
- description: Investment's type to filter
in: query
name: type
required: false
schema:
type: string
enum:
- COE
- EQUITY
- ETF
- FIXED_INCOME
- MUTUAL_FUND
- SECURITY
- OTHER
- description: 'Page size for the paging request, default: 500'
in: query
name: pageSize
required: false
schema:
type: number
format: double
example: '50'
- description: 'Page number for the paging request, default: 1'
in: query
name: page
required: false
schema:
type: number
format: double
example: '1'
x-readme:
code-samples:
- language: node
code: "const pluggy = require('pluggy-sdk');\nconst client = new pluggy.PluggyClient({\n clientId: 'YOUR_CLIENT_ID',\n clientSecret: 'YOUR_CLIENT_SECRET',\n});\nclient\n .fetchInvestments(\"d619cfde-a8d7-4fe0-a10d-6de488bde4e0\")\n .then(({ results: investments }) => {\n console.log(investments);\n });"
- language: csharp
code: 'PluggyClient pluggyClient = new PluggyClient("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
List<Investment> investments = await pluggyClient.FetchInvestments("d619cfde-a8d7-4fe0-a10d-6de488bde4e0");'
- language: java
code: "PluggyClient pluggyClient = PluggyClient.builder()\n .clientIdAndSecret(“YOUR_CLIENT_ID', 'YOUR_CLIENT_SECRET')\n .build();\nResponse<InvestmentsResponse> investmentsResponse = pluggyClient.service().getInvestments(\"YOUR_ITEM_ID\").execute();"
/investments/{id}:
get:
operationId: investments-retrieve
summary: Retrieve
responses:
'200':
description: Retrieve an investment.
content:
application/json:
schema:
$ref: '#/components/schemas/Investment'
'404':
description: Investment not found
content:
application/json:
schema:
$ref: '#/components/schemas/GlobalErrorResponse'
example:
code: 404
codeDescription: INVESTMENT_NOT_FOUND
message: investment not found
description: Recovers the investment resource by its id
tags:
- Investment
security:
- default: []
parameters:
- description: investment primary identifier
in: path
name: id
required: true
schema:
type: string
format: uuid
example: d0e8a7f0-6d86-11ea-b77f-2e728ce88125
/investments/{id}/transactions:
get:
operationId: investment-transactions-list
summary: List investment transactions
description: Recovers all investment transactions for the investment provided
responses:
'200':
description: Retrieve a list of all transactions for an investment
content:
application/json:
schema:
$ref: '#/components/schemas/PageResponseInvestmentTransactions'
examples:
response:
value:
total: 2
totalPages: 1
page: 1
results:
- id: 910419d2-e833-41f2-af43-080693f7ef8a
amount: 60000
description: null
value: 1200
quantity: 50
tradeDate: '2021-09-15T00:00:00.000Z'
date: '2021-09-15T00:00:00.000Z'
type: SELL
movementType: DEBIT
netAmount: null
agreedRate: null
brokerageNumber: null
expenses:
serviceTax: 0
brokerageFee: 4.9
incomeTax: 0
tradingAssetsNoticeFee: 0
maintenanceFee: 0
settlementFee: 1.5
clearingFee: 0.5
stockExchangeFee: 1.86
custodyFee: 0
operatingFee: 0
other: 0
iof: 0
iofProvision: 0
- id: f24f7eec-5a5b-4e54-8727-d40b0b91115a
amount: 110000
description: null
value: 1100
quantity: 100
tradeDate: '2021-09-01T00:00:00.000Z'
date: '2021-09-01T00:00:00.000Z'
type: BUY
movementType: CREDIT
netAmount: 10000
agreedRate: null
brokerageNumber: '1234'
expenses:
serviceTax: 0
brokerageFee: 2.5
incomeTax: 0
tradingAssetsNoticeFee: 0
maintenanceFee: 0
settlementFee: 2.75
clearingFee: 0.9
stockExchangeFee: 3.41
custodyFee: 0
operatingFee: 0
other: 0
iof: 0
iofProvision: 0
'500':
description: Server Internal Error
content:
application/json:
schema:
$ref: '#/components/schemas/GlobalErrorResponse'
tags:
- Investment
security:
- default: []
parameters:
- description: Investment primary identifier
in: path
name: id
required: true
schema:
type: string
format: uuid
example: 562b795d-1653-429f-be86-74ead9502813
- description: 'Page size for the paging request, default: 500'
in: query
name: pageSize
required: false
schema:
type: number
format: double
example: '50'
- description: 'Page number for the paging request, default: 1'
in: query
name: page
required: false
schema:
type: number
format: double
example: '1'
components:
schemas:
InvestmentInstitution:
description: Financial institution holding the investment
properties:
name:
type:
- string
- 'null'
description: Full name of the institution
number:
type:
- string
- 'null'
description: Identifier of the institution (CNPJ or other)
type: object
required:
- name
- number
Investment:
description: Investment representing a specific asset
properties:
id:
type: string
description: Primary identifier
itemId:
type: string
description: Identifier of the item linked to the investment
format: uuid
type:
enum:
- COE
- EQUITY
- ETF
- FIXED_INCOME
- MUTUAL_FUND
- SECURITY
- OTHER
type: string
description: 'Investment asset class.
- `MUTUAL_FUND`: actively managed pooled investment funds (FIM, FIA, FIC).
- `EQUITY`: stocks and equity-like assets traded on a stock exchange.
- `ETF`: Exchange Traded Funds.
- `FIXED_INCOME`: fixed income products such as CDB, LCI, LCA, debentures, Tesouro Direto.
- `COE`: Certificado de Operações Estruturadas (structured notes).
- `SECURITY`: private pension / previdência products (PGBL, VGBL).
- `OTHER`: any asset not covered by the categories above.'
subtype:
enum:
- STRUCTURED_NOTE
- STOCK
- ETF
- REAL_ESTATE_FUND
- BDR
- DERIVATIVES
- OPTION
- TREASURY
- LCI
- LCA
- LF
- CDB
- CRI
- CRA
- CORPORATE_DEBT
- LC
- DEBENTURES
- INVESTMENT_FUND
- MULTIMARKET_FUND
- FIXED_INCOME_FUND
- STOCK_FUND
- ETF_FUND
- OFFSHORE_FUND
- FIP_FUND
- EXCHANGE_FUND
- FI_INFRA
- FI_AGRO
- RETIREMENT
- OTHER
- null
type:
- string
- 'null'
description: 'Specific instrument within a `type`. Possible groupings:
**EQUITY**: `STOCK` (ação), `BDR` (Brazilian Depositary Receipt), `REAL_ESTATE_FUND` (FII), `DERIVATIVES`, `OPTION`.
**ETF**: `ETF`.
**FIXED_INCOME**: `TREASURY` (Tesouro Direto), `CDB`, `LCI`, `LCA`, `LC`, `LF`, `CRI`, `CRA`, `DEBENTURES`, `CORPORATE_DEBT`.
**MUTUAL_FUND**: `INVESTMENT_FUND`, `MULTIMARKET_FUND`, `FIXED_INCOME_FUND`, `STOCK_FUND`, `ETF_FUND`, `OFFSHORE_FUND`, `FIP_FUND`, `EXCHANGE_FUND`, `FI_INFRA`, `FI_AGRO`.
**COE**: `STRUCTURED_NOTE`.
**SECURITY**: `RETIREMENT` (PGBL/VGBL).
**OTHER**: `OTHER`.'
number:
type:
- string
- 'null'
description: Reference number for this holder's asset
balance:
type: number
format: double
description: The current net balance amount of the investment
name:
type: string
description: Name on the provider
lastMonthRate:
type:
- number
- 'null'
format: double
description: The performance rate of the investment in the last month
lastTwelveMonthsRate:
type:
- number
- 'null'
format: double
description: The performance rate of the investment in the last 12 months
annualRate:
type:
- number
- 'null'
format: double
description: The performance rate of the investment in the last year
currencyCode:
type: string
description: Currency ISO code for the amounts
code:
type:
- string
- 'null'
description: Associated Code for the investment. For example, the code for a mutual fund is the CNPJ
isin:
type:
- string
- 'null'
description: 12-character ISIN, a globally unique identifier
value:
type:
- number
- 'null'
format: double
description: Quota's current value at "date"
quantity:
type:
- number
- 'null'
format: double
description: Quantity of quota at disposal
amount:
type:
- number
- 'null'
format: double
description: Gross amount of the investment
taxes:
type:
- number
- 'null'
format: double
description: Income taxes applied to the investment
taxes2:
type:
- number
- 'null'
format: double
description: Financial taxes applied to the investment
date:
type: string
format: date-time
description: Value's quota date
owner:
type:
- string
- 'null'
description: Owner/beneficiary associated with the investment
amountProfit:
type:
- number
- 'null'
format: double
description: Profit/Loss to date over the investment
amountWithdrawal:
type:
- number
- 'null'
format: double
description: The amount available to withdraw
amountOriginal:
type:
- number
- 'null'
format: double
description: Amount originally invested
metadata:
description: Security Portability details
anyOf:
- $ref: '#/components/schemas/InvestmentMetadata'
- type: 'null'
dueDate:
type:
- string
- 'null'
format: date-time
description: Expiration Date
issuer:
type:
- string
- 'null'
description: The entity that issued the investment
issuerCNPJ:
type:
- string
- 'null'
description: The entity CNPJ that issued the investment
issueDate:
type:
- string
- 'null'
format: date-time
description: The date that the investment was issued
purchaseDate:
type:
- string
- 'null'
format: date-time
description: The date that the investment was purchased
gracePeriodDate:
type:
- string
- 'null'
format: date-time
description: The date when the grace period ends (fixed-income investments only)
rate:
type:
- number
- 'null'
format: double
description: Fixed rate percentage applied to the investment
rateType:
type:
- string
- 'null'
description: Type of fixed-rate
fixedAnnualRate:
type:
- number
- 'null'
format: double
description: Fixed income annual rate
taxExempt:
type:
- boolean
- 'null'
description: Whether the product is tax-exempt (LCI, LCA, CRI, CRA, debêntures incentivadas)
ratePeriodicity:
type:
- string
- 'null'
description: Periodicity of the remuneration rate (DAILY, MONTHLY, SEMESTERLY, YEARLY)
indexerAdditionalInfo:
type:
- string
- 'null'
description: Free-text indexer description when the indexer is non-standard
priceFactor:
type:
- number
- 'null'
format: double
description: B3 lot/price conversion factor (variable income)
debtor:
type:
- object
- 'null'
description: Underlying debtor of receivables-backed paper (CRI / CRA)
properties:
name:
type: string
description: Name of the underlying debtor
couponPayment:
type:
- object
- 'null'
description: Coupon-payment schedule for coupon-bearing fixed income / Treasury bonds
properties:
hasCoupon:
type: boolean
description: Whether the paper pays periodic coupons
periodicity:
type: string
description: Frequency of coupon payments (MONTHLY, QUARTERLY, SEMESTERLY, YEARLY, IRREGULAR)
additionalInfo:
type: string
description: Free-text detail when periodicity is IRREGULAR
status:
type:
- string
- 'null'
description: 'Current lifecycle status of the investment.
- `ACTIVE`: the investment is open and currently held by the owner.
- `PENDING`: the operation has been requested but is not yet settled (e.g. a fund subscription within the settlement window).
- `TOTAL_WITHDRAWAL`: the position has been fully redeemed/withdrawn; balance is zero.'
enum:
- ACTIVE
- PENDING
- TOTAL_WITHDRAWAL
- null
createdAt:
type: string
format: date-time
description: Date when the investment was first ingested by Pluggy.
updatedAt:
type: string
format: date-time
description: Date of the last update of the investment data.
institution:
anyOf:
- $ref: '#/components/schemas/InvestmentInstitution'
- type: 'null'
description: Financial institution holding the investment.
transactions:
type: array
items:
$ref: '#/components/schemas/InvestmentTransaction'
description: Movements of the investment. Only present on endpoints that return transactions inline; use `GET /investments/{id}/transactions` otherwise.
type: object
required:
- id
- itemId
- type
- balance
- name
- currencyCode
- date
example:
id: f77eccf4-7714-498e-92a9-1bebe70335d9
code: 22.222.222/0001-22
name: Bahia AM Advisory FIC de FIM
balance: 1359.39
currencyCode: BRL
type: MUTUAL_FUND
subtype: MULTIMARKET_FUND
lastMonthRate: 0.24
annualRate: 3.24
lastTwelveMonthsRate: 3
itemId: 207f5bcd-312a-439c-abbe-166b6632c980
value: 500
quantity: 3
amount: 1500
taxes: 40.61
taxes2: 100
date: '2020-07-19T18:27:41.802Z'
owner: John Doe
number: null
amountProfit: 310.5
amountWithdrawal: 1310.5
amountOriginal: 1000
status: ACTIVE
transactions:
- tradeDate: '2020-10-01T00:00:00.000Z'
date: '2020-10-01T00:00:00.000Z'
description: Aplicação Fondo de Investimento Premium
quantity: 1.25
value: 2
amount: 5
type: BUY
movementType: CREDIT
Company:
description: Company object that holds the company's information
properties:
name:
type: string
description: Name of the company
cnpj:
type: string
description: CNPJ of the company
type: object
GlobalErrorResponse:
title: Global Error Response Schema
type: object
required:
- code
- message
properties:
code:
type: number
message:
type: string
codeDescription:
type: string
description: Distinctive code description, useful to distinguish the error.
data:
type: object
description: Additional data related to the error, if any
properties: {}
example:
code: 500
codeDescription: INTERNAL_SERVER_ERROR
message: Internal Server Error
InvestmentMetadata:
description: Investment metadata for Previdencia migrations
properties:
taxRegime:
type: string
description: Description of the type of tax applied to previdencia
proposalNumber:
type: string
description: Previdencial proposal number
processNumber:
type: string
description: Number of the process of a previdencia
fundName:
type: string
description: Name of the fund associated with the previdencia.
insurer:
allOf:
- $ref: '#/components/schemas/Company'
description: Insurer of the Security Investment
anbimaClass:
type: string
description: Anbima class (CVM 175). Funds.
anbimaSubclass:
type: string
description: Anbima subclass (CVM 175). Funds.
anbimaCategory:
type: string
description: Legacy Anbima category (FIXED_INCOME, STOCK, MULTIMARKET, EXCHANGE). Funds.
type: object
PageResponseInvestmentTransactions:
description: ''
properties:
results:
type: array
items:
$ref: '#/components/schemas/InvestmentTransaction'
description: ''
page:
type: number
format: double
description: ''
total:
type: number
format: double
description: ''
totalPages:
type: number
format: double
description: ''
type: object
required:
- results
- page
- total
- totalPages
InvestmentExpenses:
description: Taxes and fees that applied to the transaction
properties:
serviceTax:
type: number
format: double
description: (ISS) Service tax that varies according to state
brokerageFee:
type: number
format: double
description: Commission charged by the brokerage for carrying out transactions on the stock market
incomeTax:
type: number
format: double
description: (IRRF) Income Tax Withholding, amount paid to the Internal Revenue Service
tradingAssetsNoticeFee:
type: number
format: double
description: (ANA) Fee of Notice of Trading in Assets
maintenanceFee:
type: number
format: double
description: (termo/opções) Fees charged by BM&F Bovespa in negotiations
settlementFee:
type: number
format: double
description: Liquidation fee for the settlement of a position on the expiration date or the financial settlement of physical delivery
clearingFee:
type: number
format: double
description: Registration fee
stockExchangeFee:
type: number
format: double
description: (Emolumentos) Fees charged by BM&F Bovespa as a source of operating income
custodyFee:
type: number
format: double
description: Fee by brokers to keep recordsin their home broker systems or on the trading desk
operatingFee:
type: number
format: double
description: Amount paid to the Operator for the intermediation service
other:
type: number
format: double
description: Sum of other not defined expenses
iof:
type: number
format: double
description: (IOF) Tax on financial operations charged on the transaction
iofProvision:
type: number
format: double
description: Provisioned (accrued, not yet paid) IOF
type: object
InvestmentTransaction:
description: Movement of the investment
properties:
id:
type: string
description: Primary investment transaction identifier
type:
type: string
description: 'Operation performed on the investment position.
- `BUY`: subscription / purchase of new quotas.
- `SELL`: redemption / sale of quotas.
- `TRANSFER`: portability or internal transfer between accounts (the `amount` field may be null).
- `TAX`: tax withholdings such as IR or IOF.
- `INTEREST`: interest or yield credited to the position.
- `AMORTIZATION`: principal repayment (typical of fixed-income amortizing bonds).'
enum:
- BUY
- SELL
- TAX
- TRANSFER
- INTEREST
- AMORTIZATION
movementType:
type:
- string
- 'null'
description: 'Cash-flow direction of the transaction from the holder''s perspective.
- `CREDIT`: money goes into the position (defaults for `BUY`).
- `DEBIT`: money leaves the position (defaults for `SELL`, `TAX`, `TRANSFER`, `INTEREST`, `AMORTIZATION`).'
enum:
- CREDIT
- DEBIT
- null
quantity:
type:
- number
- 'null'
format: double
description: Quantity of the transaction
value:
type:
- number
- 'null'
format: double
description: Value on the transaction's Date
amount:
type:
- number
- 'null'
format: double
description: Gross amount of the operation. May be null only if type is TRANSFER
agreedRate:
type:
- number
- 'null'
format: double
description: Agreed rate for treasury applications
indexerPercentage:
type:
- number
- 'null'
format: double
description: Max percentage of the indexer agreed at contracting (e.g. 110% of CDI)
priceFactor:
type:
- number
- 'null'
format: double
description: B3 lot/price conversion factor (variable income transactions)
date:
type: string
format: date-time
description: Date when the transaction was made
tradeDate:
type:
- string
- 'null'
format: date-time
description: Date when the transaction was confirmed
expenses:
anyOf:
- $ref: '#/components/schemas/InvestmentExpenses'
- type: 'null'
description:
type:
- string
- 'null'
description: Description of the transaction as reported by the institution
netAmount:
type:
- number
- 'null'
format: double
description: Amount of the operation after expenses and taxes
brokerageNumber:
type:
- string
- 'null'
description: Brokerage note number the transaction belongs to
type: object
required:
- id
- type
- date
securitySchemes:
default:
type: apiKey
name: X-API-KEY
in: header
x-provenance:
method: harvested
publisher: Pluggy
source: https://v2.docs.pluggy.ai/openapi/pluggy-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)