Anchorage Digital Tax Reporting API
Operations for managing tax accounts and cost basis reporting
Operations for managing tax accounts and cost basis reporting
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-tax-reporting-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:
version: 2.0.0
title: Anchorage Digital API Reference Tax Reporting API
contact:
email: api@anchorage.com
description: '# Introduction
*CONFIDENTIAL: Please do not distribute this documentation externally without prior Anchorage Digital approval.*
The Anchorage Digital REST API v2.0 provides a set of operations and resources that allow Anchorage Digital clients and partners to:
- Programmatically transfer funds from an Anchorage Digital vault or wallet without human intervention
- Create and list deposit addresses in a vault
- Read and monitor vault balances
- Query transaction history including deposits
…'
servers:
- url: https://api.anchorage-staging.com/v2
security:
- Api-Access-Key: []
tags:
- description: Operations for managing tax accounts and cost basis reporting
name: Tax Reporting
paths:
/tax/accounts:
get:
operationId: getTaxAccounts
summary: List Tax Accounts
description: List all tax accounts for the client's organization.
parameters:
- name: limit
in: query
description: Maximum number of results to return per query
schema:
type: integer
format: int64
default: 25
maximum: 100
minimum: 1
- name: afterId
in: query
description: When paginating this is used to provide the starting point for the page to fetch (retrieved from the previous response body)
schema:
type: string
responses:
'200':
description: Successfully returned list of tax accounts
content:
application/json:
schema:
$ref: '#/components/schemas/TaxAccountsResponse'
'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:
- Tax Reporting
x-security:
Write Tax: present
/tax/accounts/{accountId}/transactions:
get:
operationId: getTaxTransactionsForAccountId
summary: List Deposit Transactions for Account
description: List deposit transactions for a specific tax account.
parameters:
- name: accountId
in: path
description: The ID of the tax account
required: true
schema:
type: string
- name: startDate
in: query
description: The start date (inclusive) in `YYYY-MM-DD` format. Dates are always in UTC [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) 'full-date'.
schema:
type: string
format: date
- name: endDate
in: query
description: The end date (inclusive) in `YYYY-MM-DD` format. Dates are always in UTC [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) 'full-date'.
schema:
type: string
format: date
- name: limit
in: query
description: Maximum number of results to return per query
schema:
type: integer
format: int64
default: 25
maximum: 100
minimum: 1
- name: afterId
in: query
description: When paginating this is used to provide the starting point for the page to fetch (retrieved from the previous response body)
schema:
type: string
- name: hasCostBasis
in: query
description: Filter deposit transactions by cost basis presence. Set to `true` to return only transactions with cost basis, `false` for transactions without cost basis, or omit to return all transactions regardless of cost basis.
schema:
type: boolean
responses:
'200':
description: Successfully returned list of deposit transactions for the tax account
content:
application/json:
schema:
$ref: '#/components/schemas/TaxAccountTransactionsResponse'
'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:
- Tax Reporting
x-security:
Write Tax: present
/tax/accounts/{accountId}/transactions/{transactionId}:
patch:
operationId: updateTransactionCostBasis
summary: Update Deposit Transaction Cost Basis
description: Update the cost basis for a specific transaction. Allows customers to submit cost basis for assets that are deposited at Anchorage. Note, one deposit can contain up to 100 individual tax lots.
parameters:
- name: accountId
in: path
description: The ID of the tax account
required: true
schema:
type: string
- name: transactionId
in: path
description: The ID of the transaction to update
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TaxTransactionUpdateCostBasisRequest'
responses:
'200':
description: Successfully updated the transaction cost basis
content:
application/json:
schema:
$ref: '#/components/schemas/TaxTransactionUpdateCostBasisResponse'
'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'
'404':
description: Not Found
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:
- Tax Reporting
x-security:
Write Tax: present
components:
schemas:
TaxTransactionUpdateCostBasisResponse:
description: Response after updating transaction cost basis
type: object
properties:
data:
$ref: '#/components/schemas/TaxTransactionUpdateCostBasisResponseId'
required:
- data
TaxAccount:
description: A tax account for the organization
type: object
properties:
createdAt:
description: ISO-8601 timestamp when the account was created
type: string
format: date-time
example: '2022-07-30T22:15:31.99999Z'
id:
description: The unique identifier of the tax account
type: string
example: acc_9cd9f4d4-078b-4e44-a308-7662fec0f546
name:
description: The name of the tax account
type: string
example: Main Trading Account
required:
- id
- name
- createdAt
TaxTransactionLot:
description: A tax lot, representing an asset quantity with its associated cost basis and acquisition date
type: object
properties:
acquisitionDatetime:
description: ISO-8601 timestamp representing when this lot was originally acquired
type: string
format: date-time
costBasis:
description: The cost basis of this lot.
type: string
example: '2500'
quantity:
description: The quantity of this lot.
type: string
example: '1.0'
required:
- quantity
ErrorType:
description: The type of error returned.
type: string
enum:
- InternalError
- InvalidRequest
- Unauthenticated
- Forbidden
- NotFound
- Conflict
- UnprocessableEntity
- TooManyRequests
- ServiceUnavailable
- QuoteExpired
- InsufficientFunds
- NotImplemented
title: ErrorType
TaxTransactionUpdateCostBasisResponseId:
description: Response data containing transaction ID
type: object
properties:
transactionId:
description: The unique identifier of the transaction
type: string
example: 9cd9f4d4-078b-4e44-a308-7662fec0f546
required:
- transactionId
TaxTransactionInputLot:
description: A tax lot in a cost basis update request, with required cost basis
allOf:
- $ref: '#/components/schemas/TaxTransactionLot'
- required:
- costBasis
- acquisitionDatetime
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
TaxAccountTransaction:
description: Details of an external transaction into Anchorage Digital
type: object
properties:
assetType:
description: The asset type of this transaction.
type: string
example: BTC
externalId:
description: The unique identifier in an external system
type: string
example: 9be748be-d760-4d36-90f8-86b699c4e8bd
id:
description: The unique identifier of the transaction
type: string
example: 9cd9f4d4-078b-4e44-a308-7662fec0f546
receivedAssets:
description: Assets received with cost basis information. Supports multiple lots for the same asset with different acquisition dates/costs.
type: array
items:
$ref: '#/components/schemas/TaxTransactionLot'
transactionTime:
description: ISO-8601 timestamp when the transaction occurred
type: string
format: date-time
example: '2022-07-30T22:15:31.99999Z'
required:
- id
- assetType
- receivedAssets
- transactionTime
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
TaxTransactionUpdateCostBasisRequest:
description: Request to update cost basis for a transaction
type: object
properties:
lots:
description: An array of tax lots that are part of this transaction. Each lot specifies the quantity, cost basis and the acquisition date.
type: array
items:
$ref: '#/components/schemas/TaxTransactionInputLot'
minItems: 1
uniqueItems: true
required:
- lots
TaxAccountTransactionsResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/TaxAccountTransaction'
page:
$ref: '#/components/schemas/Page'
required:
- data
- page
TaxAccountsResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/TaxAccount'
page:
$ref: '#/components/schemas/Page'
required:
- data
- page
securitySchemes:
Api-Access-Key:
type: apiKey
name: Api-Access-Key
in: header
description: An API key associated with a security role
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