Oumla Ltd Assets API
The assets API from Oumla Ltd — 2 operation(s) for assets.
The assets API from Oumla Ltd — 2 operation(s) for assets.
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/oumla-ltd:oumla-ltd-assets-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a 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: Oumla Core Server Assets API
description: 'Core API. Errors, request and response are documented per endpoint. Error response shape: code, category, message, statusCode, path, timestamp, requestId.'
version: '1.0'
contact: {}
servers:
- url: https://sandbox.oumla.com
description: Mainnet
x-fern-server-name: Mainnet
tags:
- name: Assets
paths:
/api/v1/portfolio:
get:
description: Get asset balances for a given address, optionally filtered by network.
operationId: getAssets
parameters:
- name: skip
required: true
in: query
schema:
default: 0
example: 0
type: number
- name: take
required: true
in: query
schema:
default: 10
example: 10
type: number
- name: address
required: true
in: query
schema:
type: string
- name: walletId
required: false
in: query
schema:
type: string
- name: contractAddress
required: false
in: query
schema:
type: string
- name: tokenizationId
required: false
in: query
schema:
type: string
- name: network
required: false
in: query
schema:
type: string
- $ref: '#/components/parameters/SdkVersionHeader'
responses:
'200':
description: Assets retrieved for address
content:
application/json:
schema:
$ref: '#/components/schemas/GetAssetsResponseDto'
'400':
description: 'Bad request or validation failed.
**Applicable error codes and client messages**
The response body contains one of the following error codes and the corresponding client-facing message.
| Code | Client message |
|------|----------------|
| ERR-010 | The request could not be processed. |'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ApiErrorResponseDto'
properties:
code:
type: string
enum:
- ERR_010
description: 'One of: ERR-010: The request could not be processed.'
message:
type: string
description: Client-facing message for this error code (see table above).
example:
code: ERR_010
message: The request could not be processed.
category: VALIDATION
statusCode: 400
path: /api/v1/example
timestamp: '2025-02-20T12:00:00.000Z'
requestId: req-example-id
'401':
description: 'Unauthorized – invalid or missing token.
**Applicable error codes and client messages**
The response body contains one of the following error codes and the corresponding client-facing message.
| Code | Client message |
|------|----------------|
| ERR-008 | You need to sign in to continue. |
| ERR-011 | Your session is invalid or expired. Please sign in again. |'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ApiErrorResponseDto'
properties:
code:
type: string
enum:
- ERR_008
- ERR_011
description: 'One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again.'
message:
type: string
description: Client-facing message for this error code (see table above).
example:
code: ERR_008
message: You need to sign in to continue.
category: AUTHORIZATION
statusCode: 401
path: /api/v1/example
timestamp: '2025-02-20T12:00:00.000Z'
requestId: req-example-id
'403':
description: 'Forbidden – insufficient permissions.
**Applicable error codes and client messages**
The response body contains one of the following error codes and the corresponding client-facing message.
| Code | Client message |
|------|----------------|
| ERR-009 | You don''t have permission to do that. |
| ERR-410 | Error occurred |'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ApiErrorResponseDto'
properties:
code:
type: string
enum:
- ERR_009
- ERR_410
description: 'One of: ERR-009: You don''t have permission to do that.; ERR-410: Error occurred'
message:
type: string
description: Client-facing message for this error code (see table above).
example:
code: ERR_009
message: You don't have permission to do that.
category: AUTHORIZATION
statusCode: 403
path: /api/v1/example
timestamp: '2025-02-20T12:00:00.000Z'
requestId: req-example-id
'404':
description: 'Resource not found.
**Applicable error codes and client messages**
The response body contains one of the following error codes and the corresponding client-facing message.
| Code | Client message |
|------|----------------|
| ERR-006 | The requested resource was not found. |
| ERR-096 | Address not found. |'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ApiErrorResponseDto'
properties:
code:
type: string
enum:
- ERR_006
- ERR_096
description: 'One of: ERR-006: The requested resource was not found.; ERR-096: Address not found.'
message:
type: string
description: Client-facing message for this error code (see table above).
example:
code: ERR_006
message: The requested resource was not found.
category: RESOURCE
statusCode: 404
path: /api/v1/example
timestamp: '2025-02-20T12:00:00.000Z'
requestId: req-example-id
'500':
description: 'Internal server error.
**Applicable error codes and client messages**
The response body contains one of the following error codes and the corresponding client-facing message.
| Code | Client message |
|------|----------------|
| ERR-019 | Something went wrong on our side. |
| ERR-999 | An unexpected error occurred. Please try again. |'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ApiErrorResponseDto'
properties:
code:
type: string
enum:
- ERR_019
- ERR_999
description: 'One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again.'
message:
type: string
description: Client-facing message for this error code (see table above).
example:
code: ERR_019
message: Something went wrong on our side.
category: SYSTEM
statusCode: 500
path: /api/v1/example
timestamp: '2025-02-20T12:00:00.000Z'
requestId: req-example-id
security:
- x-api-key: []
summary: Retrieved assets for address
tags:
- Assets
/api/v1/portfolio/native-balance:
get:
description: Get native (e.g. ETH/BTC) balance for a given address and optional network.
operationId: getNativeBalance
parameters:
- name: skip
required: true
in: query
schema:
default: 0
example: 0
type: number
- name: take
required: true
in: query
schema:
default: 10
example: 10
type: number
- name: networkId
required: false
in: query
schema:
type: string
- name: address
required: true
in: query
schema:
type: string
- name: walletId
required: false
in: query
schema:
type: string
- name: network
required: false
in: query
schema:
type: string
- $ref: '#/components/parameters/SdkVersionHeader'
responses:
'200':
description: Native balance for address
content:
application/json:
schema:
$ref: '#/components/schemas/GetBalanceResponseDto'
'400':
description: 'Bad request or validation failed.
**Applicable error codes and client messages**
The response body contains one of the following error codes and the corresponding client-facing message.
| Code | Client message |
|------|----------------|
| ERR-010 | The request could not be processed. |'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ApiErrorResponseDto'
properties:
code:
type: string
enum:
- ERR_010
description: 'One of: ERR-010: The request could not be processed.'
message:
type: string
description: Client-facing message for this error code (see table above).
example:
code: ERR_010
message: The request could not be processed.
category: VALIDATION
statusCode: 400
path: /api/v1/example
timestamp: '2025-02-20T12:00:00.000Z'
requestId: req-example-id
'401':
description: 'Unauthorized – invalid or missing token.
**Applicable error codes and client messages**
The response body contains one of the following error codes and the corresponding client-facing message.
| Code | Client message |
|------|----------------|
| ERR-008 | You need to sign in to continue. |
| ERR-011 | Your session is invalid or expired. Please sign in again. |'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ApiErrorResponseDto'
properties:
code:
type: string
enum:
- ERR_008
- ERR_011
description: 'One of: ERR-008: You need to sign in to continue.; ERR-011: Your session is invalid or expired. Please sign in again.'
message:
type: string
description: Client-facing message for this error code (see table above).
example:
code: ERR_008
message: You need to sign in to continue.
category: AUTHORIZATION
statusCode: 401
path: /api/v1/example
timestamp: '2025-02-20T12:00:00.000Z'
requestId: req-example-id
'403':
description: 'Forbidden – insufficient permissions.
**Applicable error codes and client messages**
The response body contains one of the following error codes and the corresponding client-facing message.
| Code | Client message |
|------|----------------|
| ERR-009 | You don''t have permission to do that. |
| ERR-410 | Error occurred |'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ApiErrorResponseDto'
properties:
code:
type: string
enum:
- ERR_009
- ERR_410
description: 'One of: ERR-009: You don''t have permission to do that.; ERR-410: Error occurred'
message:
type: string
description: Client-facing message for this error code (see table above).
example:
code: ERR_009
message: You don't have permission to do that.
category: AUTHORIZATION
statusCode: 403
path: /api/v1/example
timestamp: '2025-02-20T12:00:00.000Z'
requestId: req-example-id
'404':
description: 'Resource not found.
**Applicable error codes and client messages**
The response body contains one of the following error codes and the corresponding client-facing message.
| Code | Client message |
|------|----------------|
| ERR-006 | The requested resource was not found. |
| ERR-096 | Address not found. |'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ApiErrorResponseDto'
properties:
code:
type: string
enum:
- ERR_006
- ERR_096
description: 'One of: ERR-006: The requested resource was not found.; ERR-096: Address not found.'
message:
type: string
description: Client-facing message for this error code (see table above).
example:
code: ERR_006
message: The requested resource was not found.
category: RESOURCE
statusCode: 404
path: /api/v1/example
timestamp: '2025-02-20T12:00:00.000Z'
requestId: req-example-id
'500':
description: 'Internal server error.
**Applicable error codes and client messages**
The response body contains one of the following error codes and the corresponding client-facing message.
| Code | Client message |
|------|----------------|
| ERR-019 | Something went wrong on our side. |
| ERR-999 | An unexpected error occurred. Please try again. |'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/ApiErrorResponseDto'
properties:
code:
type: string
enum:
- ERR_019
- ERR_999
description: 'One of: ERR-019: Something went wrong on our side.; ERR-999: An unexpected error occurred. Please try again.'
message:
type: string
description: Client-facing message for this error code (see table above).
example:
code: ERR_019
message: Something went wrong on our side.
category: SYSTEM
statusCode: 500
path: /api/v1/example
timestamp: '2025-02-20T12:00:00.000Z'
requestId: req-example-id
security:
- x-api-key: []
summary: Get Native balance for address
tags:
- Assets
components:
schemas:
GetBalanceResponseDto:
type: object
properties:
balance:
type: array
items:
$ref: '#/components/schemas/NativeBalanceItemDto'
pagination:
$ref: '#/components/schemas/PortfolioPaginationDto'
ApiErrorResponseDto:
type: object
properties:
message:
type: string
description: Human-readable error message for the client (see ErrorClientMessage per code)
example: Organization not found.
code:
type: string
enum:
- ERR_000
- ERR_001
- ERR_002
- ERR_003
- ERR_006
- ERR_008
- ERR_009
- ERR_010
- ERR_011
- ERR_012
- ERR_013
- ERR_014
- ERR_015
- ERR_016
- ERR_017
- ERR_018
- ERR_019
- ERR_020
- ERR_021
- ERR_022
- ERR_888
- ERR_999
- ERR_023
- ERR_026
- ERR_036
- ERR_046
- ERR_056
- ERR_066
- ERR_068
- ERR_067
- ERR_076
- ERR_086
- ERR_096
- ERR_106
- ERR_116
- ERR_126
- ERR_136
- ERR_146
- ERR_147
- ERR_156
- ERR_166
- ERR_176
- ERR_186
- ERR_196
- ERR_200
- ERR_201
- ERR_202
- ERR_203
- ERR_204
- ERR_205
- ERR_206
- ERR_207
- ERR_208
- ERR_209
- ERR_210
- ERR_211
- ERR_212
- ERR_213
- ERR_214
- ERR_215
- ERR_216
- ERR_217
- ERR_226
- ERR_236
- ERR_237
- ERR_238
- ERR_239
- ERR_240
- ERR_241
- ERR_242
- ERR_246
- ERR_256
- ERR_266
- ERR_276
- ERR_286
- ERR_296
- ERR_300
- ERR_301
- ERR_302
- ERR_303
- ERR_304
- ERR_305
- ERR_310
- ERR_311
- ERR_312
- ERR_313
- ERR_320
- ERR_321
- ERR_322
- ERR_323
- ERR_324
- ERR_325
- ERR_326
- ERR_327
- ERR_328
- ERR_400
- ERR_401
- ERR_402
- ERR_403
- ERR_404
- ERR_405
- ERR_410
- ERR_411
- ERR_412
- ERR_500
- ERR_501
- ERR_502
- ERR_503
- ERR_600
- ERR_601
- ERR_602
- ERR_603
- ERR_604
- ERR_701
- ERR_702
- ERR_703
- ERR_704
- ERR_705
- ERR_706
- ERR_707
- ERR_708
- ERR_709
- ERR_710
- ERR_711
description: Application error code. Possible values are listed per endpoint in the response schema (e.g. ERR_013, ERR_008).
category:
type: string
enum:
- CONFLICT
- VALIDATION
- CRYPTOGRAPHIC
- NETWORK
- DATABASE
- EXTERNAL_SERVICE
- UNKNOWN_ERROR
- RESOURCE
- AUTHORIZATION
- SYSTEM
description: Error category for grouping and handling.
statusCode:
type: number
description: HTTP status code
example: 404
minimum: 400
path:
type: string
description: Request path that produced the error
example: /api/v1/wallets
timestamp:
type: string
description: ISO 8601 timestamp
example: '2025-02-20T12:00:00.000Z'
requestId:
type: string
description: Request ID for tracing
required:
- code
- category
- statusCode
- path
- timestamp
PortfolioPaginationDto:
type: object
properties:
totalElements:
type: number
example: 100
description: Total number of items
totalPages:
type: number
example: 10
description: Total number of pages
skip:
type: number
example: 0
take:
type: number
example: 10
required:
- totalElements
- totalPages
- skip
- take
GetAssetsResponseDto:
type: object
properties:
assets:
type: array
items:
$ref: '#/components/schemas/AssetItemDto'
pagination:
$ref: '#/components/schemas/PortfolioPaginationDto'
NativeBalanceItemDto:
type: object
properties:
id:
type: string
address:
type: string
walletId:
type: string
network:
type: string
balance:
type: string
createdAt:
type: string
updatedAt:
type: string
AssetItemDto:
type: object
properties:
id:
type: string
amount:
type: string
walletId:
type: string
addressId:
type: string
tokenizationId:
type: string
tokenId:
type: string
name:
type: string
symbol:
type: string
contractAddress:
type: string
updatedAt:
type: string
createdAt:
type: string
tokenizationTokenId:
type: string
type:
type: string
parameters:
SdkVersionHeader:
name: x-sdk-version
in: header
description: SDK version header
required: true
schema:
type: string
default: 1.0.0
securitySchemes:
x-api-key:
type: apiKey
in: header
name: x-api-key
description: API key for authentication
x-provenance:
method: harvested
publisher: Oumla
source: https://docs.oumla.com/api-reference/openapi.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)