Anrok Filings API

**The Filings endpoint is a premium feature. Please contact hello@anrok.com for more information to enable this on your seller account.** This endpoint can be used to fetch filings from Anrok.

Business capability
Tax Reporting & Compliance BC-220.40

Operations 4

POST /v1/seller/filings/list List filings #
POST /v1/seller/filings/id:{jurisId}/id:{jurisFilingId}/listTransactionIds List filing transaction IDs #
POST /v1/seller/filings/id:{jurisId}/id:{jurisFilingId}/listTransactionsWithConversionRates List filing transactions with conversion rates #
POST /v1/seller/filings/id:{jurisId}/id:{jurisFilingId}/removeTransactions Remove transactions from a filing #

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/anrok:anrok-filings-api"
All apis
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.

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

anrok-filings-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Anrok Filings API
  version: '1.1'
  termsOfService: https://www.anrok.com/privacy-terms
  contact:
    email: support@anrok.com
  license:
    name: All rights reserved
    url: https://www.anrok.com
  x-logo:
    url: https://global-uploads.webflow.com/632add85afcd1ac30aa74675/6357842d130e1f3e0e23d1fe_anrok_logo.svg
  description: '# API reference


    The Anrok API server is accessible at `https://api.anrok.com`.


    All requests are HTTP POSTs with JSON in the body.


    Authentication is via an HTTP header `Authorization: Bearer {apiKey}`.


    The default rate limit for a seller account is 10 API requests per second.'
servers:
- url: https://api.anrok.com
security:
- http: []
tags:
- name: Filings
  description: '**The Filings endpoint is a premium feature. Please contact hello@anrok.com for more information to enable this on your seller account.**


    This endpoint can be used to fetch filings from Anrok.'
paths:
  /v1/seller/filings/list:
    post:
      tags:
      - Filings
      summary: List filings
      description: 'Lists filings in Anrok. These can be filtered by the jurisdiction ID and the filing period end date.

        This endpoint is a premium feature. Please contact hello@anrok.com for more information to enable this on your seller account.'
      operationId: filingsList
      requestBody:
        $ref: '#/components/requestBodies/ListFilings'
      responses:
        '200':
          $ref: '#/components/responses/ListFilingsSuccess'
        '400':
          $ref: '#/components/responses/ListFilingsBadRequest'
        '409':
          $ref: '#/components/responses/ListFilingsConflict'
        '429':
          $ref: '#/components/responses/RateLimit'
      x-codeSamples:
      - lang: cURL
        source: "apiToken='sxxx/saxxx/secret.xxx'\n\ncurl -X POST https://api.anrok.com/v1/seller/filings/list \\\n  -H 'Content-Type: application/json' \\\n  -H \"Authorization: Bearer $apiToken\" \\\n  -d '{\n    \"filter\": {\n        \"jurisId\": \"us-MA\",\n        \"periodEndDateRangeInclusive\": \"2025-01..2025-03\"\n    }\n  }'\n"
  /v1/seller/filings/id:{jurisId}/id:{jurisFilingId}/listTransactionIds:
    parameters:
    - $ref: '#/components/parameters/JurisId'
    - $ref: '#/components/parameters/JurisFilingId'
    post:
      tags:
      - Filings
      summary: List filing transaction IDs
      description: 'Lists the IDs of the transactions included in a filing, ordered by the transaction''s accounting date.

        This endpoint is a premium feature. Please contact hello@anrok.com for more information to enable this on your seller account.'
      operationId: filingsListTransactionIds
      requestBody:
        $ref: '#/components/requestBodies/ListFilingTransactionIds'
      responses:
        '200':
          $ref: '#/components/responses/ListFilingTransactionIdsSuccess'
        '400':
          $ref: '#/components/responses/ListFilingTransactionIdsBadRequest'
        '409':
          $ref: '#/components/responses/ListFilingTransactionIdsConflict'
        '429':
          $ref: '#/components/responses/RateLimit'
      x-codeSamples:
      - lang: cURL
        source: "apiToken=\"sxxx/saxxx/secret.xxx\"\njurisId=\"us-MA\"\njurisFilingId=\"2025-01\"\n\ncurl -X POST \"https://api.anrok.com/v1/seller/filings/id:$jurisId/id:$jurisFilingId/listTransactionIds\" \\\n  -H 'Content-Type: application/json' \\\n  -H \"Authorization: Bearer $apiToken\" \\\n  -d \"{}\"\n"
  /v1/seller/filings/id:{jurisId}/id:{jurisFilingId}/listTransactionsWithConversionRates:
    parameters:
    - $ref: '#/components/parameters/JurisId'
    - $ref: '#/components/parameters/JurisFilingId'
    post:
      tags:
      - Filings
      summary: List filing transactions with conversion rates
      description: 'Lists the transactions included in a filing, each with the conversion rate from the transaction currency to the filing currency.

        Rates may change until the filing has been finalized, so it''s recommended to only use this endpoint after finalization.

        This endpoint is a premium feature. Please contact hello@anrok.com for more information to enable this on your seller account.'
      operationId: filingsListTransactionsWithConversionRates
      requestBody:
        $ref: '#/components/requestBodies/ListFilingTransactionsWithConversionRates'
      responses:
        '200':
          $ref: '#/components/responses/ListFilingTransactionsWithConversionRatesSuccess'
        '400':
          $ref: '#/components/responses/ListFilingTransactionsWithConversionRatesBadRequest'
        '409':
          $ref: '#/components/responses/ListFilingTransactionsWithConversionRatesConflict'
        '429':
          $ref: '#/components/responses/RateLimit'
      x-codeSamples:
      - lang: cURL
        source: "apiToken=\"sxxx/saxxx/secret.xxx\"\njurisId=\"us-MA\"\njurisFilingId=\"2025-01\"\n\ncurl -X POST \"https://api.anrok.com/v1/seller/filings/id:$jurisId/id:$jurisFilingId/listTransactionsWithConversionRates\" \\\n  -H 'Content-Type: application/json' \\\n  -H \"Authorization: Bearer $apiToken\" \\\n  -d \"{}\"\n"
  /v1/seller/filings/id:{jurisId}/id:{jurisFilingId}/removeTransactions:
    parameters:
    - $ref: '#/components/parameters/JurisId'
    - $ref: '#/components/parameters/JurisFilingId'
    post:
      tags:
      - Filings
      summary: Remove transactions from a filing
      description: 'Removes the given transactions from a filing, identified by its jurisdiction ID and filing ID.


        Idempotent: transaction IDs that aren''t currently associated with this filing (already removed,

        unknown, or associated with a different filing) are reported with a `notFound` error rather than

        failing the request, so retrying the same request is safe.


        A maximum of 100 transaction IDs may be removed per request. To remove more, make multiple requests.'
      operationId: filingsRemoveTransactions
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                transactionIds:
                  description: IDs of the transactions to remove from the filing. Must contain between 1 and 100 IDs.
                  type: array
                  items:
                    type: string
                  minItems: 1
                  maxItems: 100
              required:
              - transactionIds
            example:
              transactionIds:
              - txn_K39sWBu92Lo
              - txn_L48tXCv03Mp
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  transactions:
                    description: One entry per requested transaction ID, in request order.
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          description: The transaction ID.
                          type: string
                        status:
                          description: '`removed` if the transaction was removed from the filing; `error` if it

                            could not be removed.

                            '
                          type: string
                          enum:
                          - removed
                          - error
                        reason:
                          description: 'Present only when `status` is `error`. `notFound` means the transaction was

                            not in this filing (unknown, already removed, or in a different filing).

                            '
                          type: string
                          enum:
                          - notFound
                      required:
                      - id
                      - status
                required:
                - transactions
              example:
                transactions:
                - id: txn_K39sWBu92Lo
                  status: removed
                - id: txn_L48tXCv03Mp
                  status: error
                  reason: notFound
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: string
              examples:
                emptyTransactionIds:
                  value: 'Request body: "transactionIds": Array must contain at least 1 element(s).'
                  summary: Empty transactionIds list
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - invalidJurisId
                    - filingNotFound
                    - filingNotEditable
                    - filingIsBeingDeleted
                    - filingHasBackgroundOperation
                required:
                - type
              example:
                type: filingNotEditable
        '429':
          $ref: '#/components/responses/RateLimit'
components:
  responses:
    ListFilingTransactionIdsConflict:
      description: Conflict
      content:
        application/json:
          schema:
            type: object
            properties:
              type:
                type: string
                enum:
                - jurisIdNotFound
                - filingListTransactionIdsApiNotEnabled
          examples:
            jurisIdNotFound:
              value:
                type: jurisIdNotFound
              summary: Juris ID not found
            filingListTransactionIdsApiNotEnabled:
              value:
                type: filingListTransactionIdsApiNotEnabled
              summary: List filing transaction IDs API not enabled
    RateLimit:
      description: Too Many Requests
      headers:
        Retry-After:
          description: Number of seconds to wait for rate limit to reset.
          schema:
            type: integer
      content:
        text/plain:
          schema:
            type: string
          example: You've exceeded your API limit of 10 per second
    ListFilingTransactionsWithConversionRatesBadRequest:
      description: Bad Request
      content:
        text/plain:
          schema:
            type: string
          examples:
            invalidLimitProvided:
              value: 'Request body: "limit": Number must be less than or equal to 1000.'
              summary: Invalid limit
    ListFilingTransactionsWithConversionRatesConflict:
      description: Conflict
      content:
        application/json:
          schema:
            type: object
            properties:
              type:
                type: string
                enum:
                - invalidCursor
                - jurisIdNotFound
                - filingListTransactionsWithConversionRatesApiNotEnabled
          examples:
            invalidCursor:
              value:
                type: invalidCursor
              summary: Invalid cursor
            jurisIdNotFound:
              value:
                type: jurisIdNotFound
              summary: Juris ID not found
            filingListTransactionsWithConversionRatesApiNotEnabled:
              value:
                type: filingListTransactionsWithConversionRatesApiNotEnabled
              summary: List filing transactions with conversion rates API not enabled
    ListFilingTransactionIdsBadRequest:
      description: Bad Request
      content:
        text/plain:
          schema:
            type: string
          examples:
            invalidCursorProvided:
              value: 'Request body: "cursor": Invalid cursor'
              summary: Invalid cursor
            invalidLimitProvided:
              value: 'Request body: "limit": Number must be less than or equal to 2500.'
              summary: Invalid limit
    ListFilingsBadRequest:
      description: Bad Request
      content:
        text/plain:
          schema:
            type: string
          examples:
            invalidJurisIdProvided:
              value: 'Request body: "filter": "jurisId": Invalid juris ID: "fake-juris-id"'
              summary: Invalid juris ID
            invalidPeriodEndDateRangeInclusiveProvided:
              value: 'Request body: "filter": "periodEndDateRangeInclusive": Invalid period end date range: begin date comes after end date.'
              summary: Invalid period end date range
            invalidLimitProvided:
              value: 'Request body: "limit": Number must be less than or equal to 100.'
              summary: Invalid limit
            cursorAndFilterBothProvided:
              value: 'Request body: cursor and filter cannot both be provided.'
              summary: Cursor and filter cannot both be provided
    ListFilingTransactionIdsSuccess:
      description: OK
      content:
        application/json:
          schema:
            type: object
            properties:
              transactionIds:
                description: The IDs of the transactions included in the filing, ordered by the transaction's accounting date.
                type: array
                items:
                  type: string
                examples:
                - - stripe:in_1JSW342eZvKYlo2C
                  - stripe:in_1JSW342eZvKYlo2D
              nextCursor:
                description: The cursor to use to fetch the next page of transaction IDs. This is null when there are no more transaction IDs to fetch.
                type:
                - string
                - 'null'
                examples:
                - eyJleGFtcGxlIjoidGhpcyBpcyBhbiBleGFtcGxlIGN1cnNvciJ9
    ListFilingsSuccess:
      description: OK
      content:
        application/json:
          schema:
            type: object
            properties:
              filings:
                description: The list of filings.
                type: array
                items:
                  type: object
                  properties:
                    jurisId:
                      description: The ID of the jurisdiction.
                      type: string
                      examples:
                      - eu-oss
                      - us-MA
                    jurisFilingId:
                      description: The ID of the filing. This is a unique identifier for the filing within the jurisdiction.
                      type: string
                      examples:
                      - 2025-01
                    name:
                      description: The name of the filing.
                      type: string
                      examples:
                      - January 2025
                    isAutomaticallyUpdatedForTransactionChanges:
                      description: Whether the filing is automatically updated based on transaction changes. This is determined based on the status of the filing. For example, a transaction may be automatically added to or removed from a filing if the transaction's accounting date changes while the filing is "open". However, the filing is not automatically updated if the filing is locked for seller review. The filing may still be updated manually if this field is true.
                      type: boolean
                      examples:
                      - true
                    isFiled:
                      description: Whether the filing has been filed.
                      type: boolean
                      examples:
                      - false
                    period:
                      description: The period of the filing.
                      type: object
                      properties:
                        begin:
                          description: The beginning date of the filing period.
                          type: string
                          format: date
                          examples:
                          - '2025-01-01'
                        endInclusive:
                          description: The end date of the filing period (inclusive).
                          type: string
                          format: date
                          examples:
                          - '2025-01-31'
              nextCursor:
                description: The cursor to use for pagination.
                type: string
                examples:
                - eyJleGFtcGxlIjoidGhpcyBpcyBhbiBleGFtcGxlIGN1cnNvciJ9
              hasMore:
                description: Whether there are more filings to fetch.
                type: boolean
    ListFilingTransactionsWithConversionRatesSuccess:
      description: OK
      content:
        application/json:
          schema:
            type: object
            properties:
              transactionsWithConversionRates:
                description: The transactions included in the filing, each with the currency conversion rate used, ordered by the transaction's accounting date.
                type: array
                items:
                  type: object
                  properties:
                    id:
                      description: The ID of the transaction.
                      type: string
                      example: stripe:in_1JSW342eZvKYlo2C
                    fromCurrency:
                      description: The three letter ISO currency code of the transaction.
                      type: string
                      minLength: 3
                      maxLength: 3
                      examples:
                      - EUR
                      - GBP
                      - USD
                    toCurrency:
                      description: The three letter ISO currency code of the filing.
                      type: string
                      minLength: 3
                      maxLength: 3
                      examples:
                      - USD
                      - GBP
                      - EUR
                    rate:
                      description: The conversion rate used to convert amounts from the transaction currency to the filing currency, as a decimal number formatted as a string. This is null when the transaction currency is the same as the filing currency and no conversion was applied.
                      type:
                      - string
                      - 'null'
                      examples:
                      - '1.08423'
                examples:
                - - id: stripe:in_1JSW342eZvKYlo2C
                    fromCurrency: EUR
                    toCurrency: USD
                    rate: '1.08423'
                  - id: stripe:in_1JSW342eZvKYlo2D
                    fromCurrency: USD
                    toCurrency: USD
                    rate: null
              nextCursor:
                description: The cursor to use to fetch the next page of transactions with conversion rates. This is null when there are no more transactions to fetch.
                type:
                - string
                - 'null'
                examples:
                - eyJleGFtcGxlIjoidGhpcyBpcyBhbiBleGFtcGxlIGN1cnNvciJ9
    ListFilingsConflict:
      description: Conflict
      content:
        application/json:
          schema:
            type: object
            properties:
              type:
                type: string
                enum:
                - invalidCursor
                - listFilingsApiNotEnabled
          examples:
            invalidCursor:
              value:
                type: invalidCursor
              summary: Invalid cursor
            listFilingsApiNotEnabled:
              value:
                type: listFilingsApiNotEnabled
              summary: List filings API not enabled
  parameters:
    JurisFilingId:
      name: jurisFilingId
      in: path
      description: The ID of the filing. This is a unique identifier for the filing within the jurisdiction.
      required: true
      schema:
        type: string
        examples:
        - 2025-01
    JurisId:
      name: jurisId
      in: path
      description: The ID of the jurisdiction of the filing.
      required: true
      schema:
        type: string
        examples:
        - eu-oss
        - us-MA
  requestBodies:
    ListFilingTransactionsWithConversionRates:
      content:
        application/json:
          schema:
            type: object
            properties:
              limit:
                description: The maximum number of transactions with conversion rates to return.
                type: integer
                format: int32
                minimum: 1
                maximum: 1000
                default: 100
              cursor:
                description: The cursor to use for pagination. This is the value of the `nextCursor` field returned from the previous page.
                type: string
          examples:
            firstPage:
              summary: Fetch the first page of transactions with conversion rates
              value: {}
            cursor:
              summary: Cursor-based pagination
              value:
                cursor: eyJleGFtcGxlIjoidGhpcyBpcyBhbiBleGFtcGxlIGN1cnNvciJ9
                limit: 250
      required: true
    ListFilingTransactionIds:
      content:
        application/json:
          schema:
            type: object
            properties:
              limit:
                description: The maximum number of transaction IDs to return.
                type: integer
                format: int32
                minimum: 1
                maximum: 2500
                default: 100
              cursor:
                description: The cursor to use for pagination. This is the value of the `nextCursor` field returned from the previous page.
                type: string
          examples:
            firstPage:
              summary: Fetch the first page of transaction IDs
              value: {}
            cursor:
              summary: Cursor-based pagination
              value:
                cursor: eyJleGFtcGxlIjoidGhpcyBpcyBhbiBleGFtcGxlIGN1cnNvciJ9
                limit: 500
      required: true
    ListFilings:
      content:
        application/json:
          schema:
            type: object
            properties:
              filter:
                description: The filter to apply to the returned filings.
                type: object
                properties:
                  jurisId:
                    description: The jurisdiction to filter by.
                    type: string
                    examples:
                    - eu-oss
                    - us-MA
                  periodEndDateRangeInclusive:
                    description: The filing period end date range to filter by.
                    type: string
                    examples:
                    - '2025'
                    - 2025-01
                    - 2025-01..2025-03
                    - 2025-01-01..2025-03-31
              limit:
                description: The maximum number of filings to return.
                type: integer
                format: int32
                minimum: 1
                maximum: 100
                default: 10
              cursor:
                description: The cursor to use for pagination. This is the value of the `nextCursor` field returned from the previous page.
                type: string
          examples:
            jurisIdFilter:
              summary: Filter filings by juris
              value:
                jurisId: us-MA
            periodEndDateRangeInclusiveFilter:
              summary: Filter filings by filing period end date range
              value:
                periodEndDateRangeInclusive: 2025-01..2025-03
            jurisIdAndPeriodEndDateRangeInclusiveFilter:
              summary: Filter filings by jurisdiction ID and filing period end date range
              value:
                jurisId: us-MA
                periodEndDateRangeInclusive: 2025-01..2025-03
            cursor:
              summary: Cursor-based pagination
              value:
                cursor: eyJleGFtcGxlIjoidGhpcyBpcyBhbiBleGFtcGxlIGN1cnNvciJ9
                limit: 5
      required: true
  securitySchemes:
    http:
      type: http
      description: 'The Anrok API uses API keys to authenticate requests. You can view and manage your API keys in [Anrok](https://app.anrok.com/-/api-keys). Use an Authorization header in the format `Bearer {apiKey}` to authenticate Anrok API requests.

        '
      scheme: Bearer
externalDocs:
  description: API Tutorials
  url: https://apidocs.anrok.com/tutorials
x-provenance:
  method: harvested
  publisher: Anrok
  source: https://apidocs.anrok.com/openapi.yaml
  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)