Anchorage Digital Tax Reporting API

Operations for managing tax accounts and cost basis reporting

Business capability
Tax Reporting & Compliance BC-220.40

Operations 3

GET /tax/accounts List Tax Accounts #
GET /tax/accounts/{accountId}/transactions List Deposit Transactions for Account #
PATCH /tax/accounts/{accountId}/transactions/{transactionId} Update Deposit Transaction Cost Basis #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/anchorage-tax-reporting-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API 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 Specification

anchorage-tax-reporting-api-openapi.yml Raw ↑
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