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.
**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.
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/anrok:anrok-filings-api"
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.
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: 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)