Home / Developers / Audit Fees API
API reference

Audit Fees API

Read the principal accountant fees table from a company's latest definitive proxy statement: audit fees, audit-related fees, tax fees, all other fees and the total, for the two fiscal years the table reports. Product overview →

Endpoints

/v1/audit-fees

GEThttps://secfeedapi.com/v1/audit-fees

Audit, audit-related, tax and other fees by year.

ParameterTypeDescriptionExample
tickerstringCompany ticker. Use either ticker or cik.NVDA
cikstringCompany CIK, or a ticker.789019
accessionNostringA specific DEF 14A accession number instead of the latest one.0001045810-26-000036

Request examples

Every response below is real output from the API, trimmed to the first records.

NVIDIA's fees by fiscal year

Each label maps fiscal year to dollars.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/audit-fees?ticker=NVDA"
import os, requests

r = requests.get(
    "https://secfeedapi.com/v1/audit-fees",
    params={'ticker': 'NVDA'},
    headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
    timeout=60,
)
r.raise_for_status()
print(r.json())
{
  "cik": 1045810,
  "accessionNo": "0001045810-26-000036",
  "fees": {
    "Audit Fees": {
      "2026": 10166400.0,
      "2025": 8067106.0
    },
    "Audit Related Fees": {
      "2026": 1716820.0,
      "2025": 724806.0
    },
    "Tax Fees": {
      "2026": 1076103.0,
      "2025": 856439.0
    },
    "All Other Fees": {
      "2026": 401999.0,
      "2025": 354000.0
    },
    "Total Fees": {
      "2026": 13361322.0,
      "2025": 10002351.0
    }
  },
  "unit": null
}

Microsoft's fees

Note the label Total instead of Total Fees: labels follow the filing.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/audit-fees?ticker=MSFT"
import os, requests

r = requests.get(
    "https://secfeedapi.com/v1/audit-fees",
    params={'ticker': 'MSFT'},
    headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
    timeout=60,
)
r.raise_for_status()
print(r.json())
{
  "cik": 789019,
  "accessionNo": "0001193125-25-245150",
  "fees": {
    "Audit Fees": {
      "2025": 53880000.0,
      "2024": 56280000.0
    },
    "Audit-Related Fees": {
      "2025": 19470000.0,
      "2024": 18643000.0
    },
    "Tax Fees": {
      "2025": 5105000.0,
      "2024": 6334000.0
    },
    "All Other Fees": {
      "2025": 10000.0,
      "2024": 10000.0
    },
    "Total": {
      "2025": 78465000.0,
      "2024": 81267000.0
    }
  },
  "unit": null
}

A table without year headers

Amounts are plain lists in column order, and here they are in thousands even though unit is null.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/audit-fees?ticker=KO"
import os, requests

r = requests.get(
    "https://secfeedapi.com/v1/audit-fees",
    params={'ticker': 'KO'},
    headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
    timeout=60,
)
r.raise_for_status()
print(r.json())
{
  "cik": 21344,
  "accessionNo": "0001104659-26-028215",
  "fees": {
    "Audit Fees": [
      30587.0,
      32104.0
    ],
    "Audit-Related Fees": [
      4834.0,
      5078.0
    ],
    "Tax Fees": [
      6760.0,
      8224.0
    ],
    "All Other Fees": [
      85.0,
      162.0
    ],
    "TOTAL": [
      42266.0,
      45568.0
    ]
  },
  "unit": null
}

Response fields

FieldTypeMeaning
cikintegerCompany CIK.
accessionNostringAccession number of the DEF 14A the table came from.
feesobjectOne key per fee row, using the label as filed.
fees.<label>object or arrayEither {fiscal year: amount} or a list of amounts in column order.
unitstring or nullmillions when the table states it; otherwise null (amounts as printed).

Fee categories defined by SEC rules

CategoryCovers
Audit feesThe annual audit, quarterly reviews and statutory audits
Audit-related feesAssurance work tied to the audit, such as benefit plan audits and due diligence
Tax feesTax compliance, advice and planning
All other feesAny other services from the principal accountant

How to

How do I compare audit fees across companies?

Call once per ticker, normalize the labels (lowercase, drop punctuation and the word fees), and check the size of the amounts for thousands.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/audit-fees?ticker=MSFT"
How do I get the total paid to the auditor?

Use the row labelled Total, Total Fees or TOTAL, or add the category rows yourself.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/audit-fees?ticker=NVDA"
How do I get fees from an earlier proxy?

Find older DEF 14A accession numbers with /v1/filings and pass accessionNo.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/filings?query=ticker:MSFT%2520AND%2520formType:%2522DEF%252014A%2522&size=5"
Why are the amounts a list instead of years?

The table's header row did not contain recognizable years. The list follows the column order, which is usually the most recent year first; confirm against the proxy.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/audit-fees?ticker=KO"
How do I find out who the auditor is?

Use /v1/auditor for the firm name, location and PCAOB ID.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/auditor?ticker=NVDA"
How do I measure non-audit work?

Add the tax fees and all other fees rows and divide by the total.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/audit-fees?ticker=NVDA"
Can I pass a CIK?

Yes, use cik. It also accepts a ticker.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/audit-fees?cik=1045810"
Why do some companies return a 400?

The company has no DEF 14A or its fee table has an unusual layout. Read the section with full-text search instead.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/full-text-search?query=%2522audit-related%2520fees%2522&formTypes=DEF%252014A"

Errors

See also the error codes every endpoint shares.

Try it with your own key

500 free calls a month.

Get free API key →