Anchorage Digital Stablecoins API
Endpoints for stablecoin conversion operations including issuance and redemption
Endpoints for stablecoin conversion operations including issuance and redemption
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/anchorage-stablecoins-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: Anchorage Stablecoins API
version: 2.0.0
contact:
email: api@anchorage.com
description: 'Operations tagged Stablecoins across 2 of this provider''s published API definitions: anchorage-v2-openapi-original.yml, anchorage-v3-openapi-original.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.anchorage-staging.com/v2
- url: https://api.anchorage-staging.com/v3
security:
- Api-Access-Key: []
tags:
- description: Endpoints for stablecoin conversion operations including issuance and redemption
name: Stablecoins
paths:
/stablecoins/conversion:
post:
operationId: convertStablecoins
summary: Create a Stablecoin Conversion
description: 'Permissions required: **Convert Stablecoins**
Create a stablecoin conversion, either issuance or redemption. Issuance is when USD is converted to the stablecoin. Redemption is when the stablecoin asset is converted to USD.'
parameters: []
requestBody:
description: Stablecoin Conversion
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/StablecoinConversion'
responses:
'201':
description: authorizationOperationId
content:
application/json:
schema:
$ref: '#/components/schemas/StablecoinConversionResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'401':
description: Unauthenticated
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
tags:
- Stablecoins
servers:
- url: https://api.anchorage-staging.com/v2
/stablecoins/history:
get:
operationId: getStablecoinHistory
summary: Get Issue/Redeem History
description: 'Permissions required: **Convert Stablecoins**
Retrieve the history of stablecoin issuance and redemption operations for your organization.
Results are paginated and ordered by creation time (newest first).'
parameters:
- name: limit
in: query
description: Maximum number of results to return (default 100, max 100)
required: false
schema:
type: integer
format: int32
default: 100
maximum: 100
minimum: 1
- name: lastCreatedAt
in: query
description: Cursor for pagination - timestamp of the last result from the previous page (RFC3339 format)
required: false
schema:
type: string
format: date-time
responses:
'200':
description: Issue/redeem history
content:
application/json:
schema:
$ref: '#/components/schemas/IssueRedeemHistoryResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'401':
description: Unauthenticated
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
tags:
- Stablecoins
servers:
- url: https://api.anchorage-staging.com/v2
/stablecoins/reserves:
get:
operationId: getStablecoinReserves
summary: Get Stablecoin Reserves History
description: 'Permissions required: **Read vault activity**
Retrieve the daily reserves reconciliation history for a stablecoin your organization is entitled to.
Results are paginated and ordered by creation time (newest first).'
parameters:
- name: stablecoin
in: query
description: Token symbol to query. Your organization must be entitled to read reserves for this token.
required: true
schema:
type: string
- name: startDate
in: query
description: Return rows with reportDate on or after this date (inclusive), in `YYYY-MM-DD` format. Dates are always in UTC.
required: false
schema:
type: string
format: date
- name: endDate
in: query
description: Return rows with reportDate on or before this date (inclusive), in `YYYY-MM-DD` format. Dates are always in UTC.
required: false
schema:
type: string
format: date
- name: limit
in: query
description: Maximum number of results to return (default 100, max 100)
required: false
schema:
type: integer
format: int32
default: 100
maximum: 100
minimum: 1
- name: lastCreatedAt
in: query
description: Cursor for pagination - timestamp of the last result from the previous page (RFC3339 format)
required: false
schema:
type: string
format: date-time
responses:
'200':
description: Reserves history
content:
application/json:
schema:
$ref: '#/components/schemas/ReservesHistoryResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'401':
description: Unauthenticated
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
tags:
- Stablecoins
servers:
- url: https://api.anchorage-staging.com/v2
/stablecoins/reserves/entitled-stablecoins:
get:
operationId: getStablecoinReservesEntitledStablecoins
summary: Get Stablecoin Reserves Entitled Stablecoins
description: 'Permissions required: **Read vault activity**
List the stablecoins whose reserves history your organization is entitled to view. Pass any returned symbol as the `stablecoin` query parameter to `GET /stablecoins/reserves` to retrieve that stablecoin''s daily reserves reconciliation history. Returns an empty array when your organization cannot view reserves history for any stablecoin.'
parameters: []
responses:
'200':
description: Entitled stablecoins
content:
application/json:
schema:
$ref: '#/components/schemas/StablecoinReservesEntitledStablecoinsResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'401':
description: Unauthenticated
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorDetails'
tags:
- Stablecoins
servers:
- url: https://api.anchorage-staging.com/v2
components:
schemas:
IssueRedeemConversion:
type: object
properties:
amount:
description: Amount as a decimal string
type: string
example: '100.00'
authorizationOperationId:
description: Authorization operation ID (if present)
type:
- string
- 'null'
x-omitempty: false
createdAt:
description: When the operation was created
type: string
format: date-time
destinationAssetTypeId:
description: Destination asset type
type: string
example: PYUSD
destinationOperationId:
description: Identifier of the destination-leg customer operation (if present). Pass to `GET /transactions/{transactionId}` for full details.
type:
- string
- 'null'
x-omitempty: false
destinationWalletId:
description: Destination wallet ID
type: string
id:
description: Unique identifier for the issue/redeem operation
type: string
operationType:
description: Type of operation (ISSUE, REDEEM, BRIDGE, or SWAP)
type: string
example: ISSUE
sourceAssetTypeId:
description: Source asset type
type: string
example: USD
sourceOperationId:
description: Identifier of the source-leg customer operation (if present). Pass to `GET /transactions/{transactionId}` for full details.
type:
- string
- 'null'
x-omitempty: false
sourceWalletId:
description: Source wallet ID
type: string
status:
description: 'Customer-facing conversion status.
* `INITIATED` — conversion has started and is awaiting endorsements.
* `EXECUTING` — endorsements approved; conversion is pending.
* `COMPLETED` — conversion was fulfilled successfully.
* `FAILED` — conversion failed (see `subStatus` when the customer can already observe the cause).
* `UNKNOWN` — unrecognised internal state (forward-compatibility fallback).'
type: string
example: EXECUTING
enum:
- INITIATED
- EXECUTING
- COMPLETED
- FAILED
- UNKNOWN
x-enum-varnames:
- IssueRedeemConversionStatusINITIATED
- IssueRedeemConversionStatusEXECUTING
- IssueRedeemConversionStatusCOMPLETED
- IssueRedeemConversionStatusFAILED
- IssueRedeemConversionStatusUNKNOWN
subStatus:
description: 'Optional sub-status that further qualifies the top-level `status`. Only set for outcomes
the customer can independently observe; internal failure modes are not disclosed.
* `REJECTED_BY_CUSTOMER` — the customer rejected the conversion before endorsement approval (paired with `status: FAILED`).'
type:
- string
- 'null'
enum:
- REJECTED_BY_CUSTOMER
x-enum-varnames:
- IssueRedeemConversionSubStatusREJECTEDBYCUSTOMER
x-omitempty: false
required:
- id
- operationType
- sourceWalletId
- destinationWalletId
- destinationAssetTypeId
- sourceAssetTypeId
- amount
- status
- createdAt
EntitledStablecoins:
type: object
properties:
stablecoins:
description: Stablecoin token symbols your organization is entitled to query reserves history for.
type: array
items:
type: string
required:
- stablecoins
IssueRedeemHistoryResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/IssueRedeemConversion'
page:
$ref: '#/components/schemas/Page'
required:
- data
- page
ReserveComposition:
description: 'Reserve backing for the queried token, as a map of reserve-component key to balance.
Each value is a decimal string. The set of keys is not fixed; it varies by token and may gain new keys over time, so iterate over whatever keys are present and ignore any you do not recognize. Existing keys are stable and will not be renamed or removed without a new API version.'
type: object
example:
cashDeposits: '5000.00'
mmfXyz: '5000.00'
additionalProperties:
type: string
title: Reserve Composition
StablecoinReservesEntitledStablecoinsResponse:
type: object
properties:
data:
$ref: '#/components/schemas/EntitledStablecoins'
required:
- data
Page:
description: Pagination info
type: object
properties:
next:
description: URL to use to query for the next page or null if no additional results are available
type:
- string
- 'null'
example: <next page url>
x-omitempty: false
title: Page
StablecoinConversionResponse:
type: object
properties:
authorizationOperationId:
type: string
required:
- authorizationOperationId
ReservesSnapshot:
type: object
properties:
createdAt:
description: RFC3339 row write time; pagination cursor field.
type: string
format: date-time
inTransit:
description: In-transit cash, as a decimal string. Already reflected in reserveComposition and totalReserves; broken out separately for visibility. Do not re-add to the total.
type: string
example: '100.00'
reportDate:
description: Reconciliation date (YYYY-MM-DD).
type: string
format: date
reserveComposition:
$ref: '#/components/schemas/ReserveComposition'
reserveRatio:
description: totalReserves / totalStablecoinOnNetwork, as a decimal string.
type: string
example: '1.00010'
stablecoin:
description: Token symbol.
type: string
example: USDX
totalReserves:
description: Total reserves, as a decimal string.
type: string
example: '10000'
totalStablecoinOnNetwork:
description: Total supply on-network, as a decimal string.
type: string
example: '9999'
required:
- reportDate
- stablecoin
- totalStablecoinOnNetwork
- totalReserves
- reserveRatio
- reserveComposition
- inTransit
- createdAt
title: Reserves Snapshot
StablecoinConversion:
type: object
properties:
amount:
type: string
destinationAssetType:
description: 'A string representing the asset used for this operation. For issuance, this value must be the stablecoin asset. For redemptions, it must be USD.
Use `/asset-types` to list all supported asset types for your organization.'
type: string
example: USDX
destinationWalletId:
type: string
idempotencyKey:
description: Client-provided idempotency key to ensure request is processed only once
type: string
example: e763a50d-aa82-4ec7-b5a3-89ad0462d248
maxLength: 128
sourceAssetType:
description: 'A string representing the asset used for this operation. For issuance, this value must be USD. For redemptions, it must be the asset being redeemed.
Use `/asset-types` to list all supported asset types for your organization.'
type: string
example: USD
sourceWalletId:
type: string
required:
- idempotencyKey
- sourceWalletId
- sourceAssetType
- destinationWalletId
- destinationAssetType
- amount
ErrorType:
description: The type of error returned.
type: string
enum:
- InternalError
- InvalidRequest
- Unauthenticated
- Forbidden
- NotFound
- Conflict
- UnprocessableEntity
- TooManyRequests
- ServiceUnavailable
- QuoteExpired
- InsufficientFunds
- NotImplemented
title: ErrorType
ReservesHistoryResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ReservesSnapshot'
page:
$ref: '#/components/schemas/Page'
required:
- data
- page
ErrorDetails:
type: object
properties:
errorType:
$ref: '#/components/schemas/ErrorType'
message:
description: A human-readable message providing more details about the error.
type: string
example: Missing required field 'amount'.
required:
- errorType
- message
title: ErrorDetails
Page_2:
description: Pagination info
type: object
properties:
endCursor:
description: Submit this parameter in the "after" field to fetch the next page.
type:
- string
- 'null'
title: Page
ErrorDetails_2:
type: object
properties:
message:
description: A human-readable message providing more details about the error.
type: string
example: Missing required field 'amount'.
required:
- message
title: ErrorDetails
securitySchemes:
Api-Access-Key:
type: apiKey
name: Api-Access-Key
in: header
description: An API key associated with a security role
x-refined-from:
- anchorage-v2-openapi-original.yml
- anchorage-v3-openapi-original.yml
x-tagGroups:
- name: Under Development
tags:
- Collateral Management
- Holds
- Deposit Attribution
- Onboarding
- Trusted Destinations
- Atlas Settlement Network
- Tax
- name: API Endpoints
tags:
- Addresses
- Asset Types
- Transactions
- Transfers
- Wallets
- Vaults
- Vesting
- Tagging
- Subaccounts
- Stablecoins
- Webhook Notifications
- API Key
- Statements
- Tax Reporting
- Trading
- name: Models
tags:
- Transfer Model
- Transaction Model
- Vault Model
- Deposit Attribution Model