Skip to main content

API Overview

The Paratro API is a RESTful API for managing MPC wallets, blockchain accounts, assets, and transfers.

Base URL

EnvironmentBase URL
Productionhttps://api.paratro.com/api/v1
Sandboxhttps://api-sandbox.paratro.com/api/v1
Use the Sandbox environment for development and testing. Switch to Production when you’re ready to go live.

Authentication

All protected endpoints require a JWT token in the Authorization header. Obtain a token via POST /auth/token using your API Key and API Secret:
# 1. Get token
TOKEN=$(curl -s -X POST https://api.paratro.com/api/v1/auth/token \
  -H "X-API-Key: your_api_key" \
  -H "X-API-Secret: your_api_secret" | jq -r '.token')

# 2. Use token
curl https://api.paratro.com/api/v1/wallets \
  -H "Authorization: Bearer $TOKEN"

Response Format

Single resource (HTTP 200):
{
  "wallet_id": "w_01HXYZ...",
  "wallet_name": "My Wallet",
  "status": "PROGRESSING",
  "created_at": "2025-01-15T10:30:45+08:00"
}
Paginated list (HTTP 200):
{
  "data": [...],
  "total": 42,
  "has_more": true
}
FieldTypeDescription
dataarrayResource list for current page
totalintegerTotal count across all pages
has_morebooleanWhether more pages exist
Error (HTTP 4xx / 5xx):
{
  "code": "not_found",
  "type": "not_found_error",
  "message": "Wallet not found"
}

Error Code Reference

Client Errors (4xx)

HTTPCodeTypeDescription
400bad_requestinvalid_request_errorMalformed request
400invalid_parameterinvalid_request_errorMissing or invalid parameter
400validation_failedinvalid_request_errorField validation failed
401unauthorizedauthentication_errorMissing or invalid credentials
401invalid_tokenauthentication_errorJWT token is invalid
401token_expiredauthentication_errorJWT token has expired
403forbiddenpermission_errorAccess denied
404not_foundnot_found_errorResource not found
409conflictconflict_errorResource conflict
429too_many_requestsrate_limit_errorRate limit exceeded

Business Errors (400)

HTTPCodeTypeDescription
400wallet_limit_reachedbusiness_errorMaximum wallet count exceeded
400insufficient_balancebusiness_errorInsufficient balance for operation
400invalid_addressbusiness_errorInvalid blockchain address
400transaction_failedbusiness_errorTransaction execution failed
400asset_already_existsbusiness_errorAsset already added to account
400wallet_not_activebusiness_errorWallet is not in active state
400account_not_activebusiness_errorAccount is not in active state
400concurrency_errorbusiness_errorConcurrent operation conflict

Server Errors (5xx)

HTTPCodeTypeDescription
500internal_errorapi_errorInternal server error
503service_unavailableapi_errorService temporarily unavailable

Endpoints

MethodEndpointDescription
POST/auth/tokenIssue JWT token
POST/walletsCreate wallet
GET/wallets/:idGet wallet
GET/walletsList wallets
POST/accountsCreate account
GET/accounts/:idGet account
GET/accountsList accounts
POST/assetsAdd asset
GET/assets/:idGet asset
GET/assetsList assets
POST/transferCreate transfer
GET/transactions/:idGet transaction
GET/transactionsList transactions