Spiko Portfolios API
The Portfolios API from Spiko — 1 operation(s) for portfolios.
The Portfolios API from Spiko — 1 operation(s) for portfolios.
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/spiko-portfolios-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: Spiko Distributor Account transactions Portfolios API
version: v0
description: The Distributor API allows third parties like SaaS providers, fintechs or Web3 companies to distribute the Spiko Funds to their customers. With this API, you can programmatically manage investors, send subscription and redemption orders, and access real-time portfolio information.
servers:
- url: https://distributor-api.spiko.io
description: Production Server
- url: https://distributor-api.preprod.spiko.io
description: Pre-production Server
security: []
tags:
- name: Portfolios
paths:
/v0/portfolios/:
get:
tags:
- Portfolios
operationId: portfolios.getPortfolio
parameters:
- name: investorId
in: query
schema:
type: string
description: a Universally Unique Identifier
format: uuid
required: true
description: a Universally Unique Identifier
security:
- basicAuth: []
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
required:
- items
- totalGainSinceStart
properties:
items:
type: array
items:
type: object
required:
- investorId
- accountId
- shareClassId
- network
- walletAddress
- totalNumberOfShares
- currentValue
- isCustodialWallet
- pending
- projectedBalance
- projectedBalanceInShares
- withdrawableBalance
- withdrawableBalanceInShares
properties:
investorId:
type: string
description: a Universally Unique Identifier
format: uuid
accountId:
type: string
description: a Universally Unique Identifier
format: uuid
shareClassId:
type: string
description: a Universally Unique Identifier
format: uuid
network:
$ref: '#/components/schemas/Network'
walletAddress:
anyOf:
- type: string
title: Ethereum address
description: a valid Ethereum address, starting with 0x and followed by 40 hexadecimal characters e.g. "0xb794f5ea0ba39494ce839613fffba74279579268"
- title: StarknetAddress
type: string
description: a valid Starknet address, starting with 0x and followed by 64 hexadecimal characters e.g. "0x0000000000000000000000000000000000000000000000000000000000000000"
- anyOf:
- title: StellarAccountAddress
type: string
description: a valid Stellar account address, starting with G and followed by 55 hexadecimal characters e.g. "GBYIQXBKEB655EB3WTRITS6RR5GXEP6SQRBLPREZHNFYKT7WBMTMPR3H"
- title: StellarContractAddress
type: string
description: a valid Stellar contract address, starting with C and followed by 55 hexadecimal characters e.g. "CCAANR7HZNOXYZD7SXS2WQLV5BAOXSRZ7V4O43IANSB355QN2RNG7WVC"
- type: string
title: Solana address
description: a valid Solana address, consisting of 32 to 44 base58 characters
totalNumberOfShares:
$ref: '#/components/schemas/BigDecimal'
currentValue:
$ref: '#/components/schemas/NonNegativeAmount'
isCustodialWallet:
type: boolean
pending:
type: object
required:
- credit
- debit
properties:
credit:
type: object
required:
- numberOfSubscriptions
- amount
- approximated
properties:
numberOfSubscriptions:
$ref: '#/components/schemas/NonNegativeInt'
amount:
$ref: '#/components/schemas/NonNegativeAmount'
approximated:
type: boolean
additionalProperties: false
debit:
type: object
required:
- numberOfRedemptions
- approximated
- amount
properties:
numberOfRedemptions:
$ref: '#/components/schemas/NonNegativeInt'
approximated:
type: boolean
amount:
$ref: '#/components/schemas/NonNegativeAmount'
additionalProperties: false
additionalProperties: false
projectedBalance:
$ref: '#/components/schemas/NonNegativeAmount'
projectedBalanceInShares:
type: string
title: non-negative decimal number as a string
description: a string representation of a non-negative decimal number e.g. "10000", "0.00" or "3420.92"
withdrawableBalance:
$ref: '#/components/schemas/NonNegativeAmount'
withdrawableBalanceInShares:
type: string
title: non-negative decimal number as a string
description: a string representation of a non-negative decimal number e.g. "10000", "0.00" or "3420.92"
virtualIban:
title: IBAN
type: string
description: a valid IBAN (International Bank Account Number)
bic:
type: string
depositIbanLines:
type: array
items:
type: object
required:
- label
- value
properties:
label:
type: string
value:
type: string
tooltip:
type: string
additionalProperties: false
cashCollectionBankAccountBeneficiaryName:
$ref: '#/components/schemas/NonEmptyString'
additionalProperties: false
totalGainSinceStart:
type: array
items:
type: object
required:
- investorId
- accountId
- shareClassId
- totalGainAmount
properties:
investorId:
type: string
description: a Universally Unique Identifier
format: uuid
accountId:
type: string
description: a Universally Unique Identifier
format: uuid
shareClassId:
type: string
description: a Universally Unique Identifier
format: uuid
totalGainAmount:
$ref: '#/components/schemas/Amount'
additionalProperties: false
additionalProperties: false
'400':
description: The request did not match the expected schema
content:
application/json:
schema:
$ref: '#/components/schemas/HttpApiDecodeError'
'401':
description: Unauthorized
content:
application/json:
schema:
anyOf:
- $ref: '#/components/schemas/Unauthorized'
- $ref: '#/components/schemas/DistributorAuthenticationError'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenError'
'404':
description: NotFound
description: Retrieve a view of an investor's investment portfolio, including current asset values, asset allocation, and performance metrics.
summary: Get portfolio
components:
schemas:
Issue:
type: object
required:
- _tag
- path
- message
properties:
_tag:
type: string
enum:
- Pointer
- Unexpected
- Missing
- Composite
- Refinement
- Transformation
- Type
- Forbidden
description: The tag identifying the type of parse issue
path:
type: array
items:
$ref: '#/components/schemas/PropertyKey'
description: The path to the property where the issue occurred
message:
type: string
description: A descriptive message explaining the issue
additionalProperties: false
description: Represents an error encountered while parsing a value to match the schema
DistributorAuthenticationError:
type: object
required:
- reason
- _tag
properties:
reason:
type: string
_tag:
type: string
enum:
- DistributorAuthenticationError
additionalProperties: false
description: Authentication Error
ForbiddenError:
type: object
required:
- reason
- _tag
properties:
reason:
type: string
customErrorCode:
type: string
enum:
- AccountDoesNotBelongToInvestor
- SessionIsNot2FA
- InvestorDocumentLinkedToActiveBankAccount
- AtLeastTwoAdminUsersRequired
- InvestorNotPendingOnboarding
- ShareClassNotAvailableForDistributor
_tag:
type: string
enum:
- ForbiddenError
additionalProperties: false
description: Forbidden
PropertyKey:
anyOf:
- type: string
- type: number
- type: object
required:
- _tag
- key
properties:
_tag:
type: string
enum:
- symbol
key:
type: string
additionalProperties: false
description: an object to be decoded into a globally shared symbol
Amount:
type: object
required:
- value
- currency
properties:
value:
type: string
title: decimal number as a string
description: a string representation of a decimal number e.g. "10000", "0.00" or "-7432092.04"
currency:
type: string
enum:
- EUR
- USD
- GBP
- CHF
- JPY
- SGD
title: Currency code
identifier: CurrencyCode
description: a currency code among "EUR", "USD", "GBP", "CHF", "JPY", "SGD"
additionalProperties: false
BigDecimal:
type: string
description: a string to be decoded into a BigDecimal
NonNegativeAmount:
type: object
required:
- value
- currency
properties:
value:
type: string
title: non-negative decimal number as a string
description: a string representation of a non-negative decimal number e.g. "10000", "0.00" or "3420.92"
currency:
type: string
enum:
- EUR
- USD
- GBP
- CHF
- JPY
- SGD
title: Currency code
identifier: CurrencyCode
description: a currency code among "EUR", "USD", "GBP", "CHF", "JPY", "SGD"
additionalProperties: false
title: Non-Negative Amount
HttpApiDecodeError:
type: object
required:
- issues
- message
- _tag
properties:
issues:
type: array
items:
$ref: '#/components/schemas/Issue'
message:
type: string
_tag:
type: string
enum:
- HttpApiDecodeError
additionalProperties: false
description: The request did not match the expected schema
Unauthorized:
$id: /schemas/void
title: Unauthorized
NonEmptyString:
type: string
description: a non empty string
title: nonEmptyString
minLength: 1
Network:
type: string
enum:
- Sepolia
- PolygonAmoy
- BaseSepolia
- ArbitrumSepolia
- EtherlinkTestnet
- Ethereum
- Polygon
- Base
- Arbitrum
- Etherlink
- Starknet
- StarknetSepolia
- Stellar
- StellarTestnet
- Solana
- SolanaDevnet
description: a blockchain network e.g. "Ethereum", "Polygon", "Arbitrum", "Starknet"
title: Network
NonNegativeInt:
type: integer
description: an integer
title: int
minimum: 0
securitySchemes:
basicAuth:
type: http
scheme: basic
description: Use your API client_id as username and client_secret as password.