US Compliance API Reference

Base URL: https://api.techcompass.com.au — Covers SEC EDGAR and Federal Reserve FRED endpoints.

About this Dataset

The US Compliance API combines two of the most widely used US financial data sources into a single authenticated endpoint: SEC EDGAR and the Federal Reserve Economic Data (FRED) API.

SEC EDGAR

The US Securities and Exchange Commission’s EDGAR system is the authoritative public repository for all regulatory filings by US-listed public companies. The Tech Compass API exposes three EDGAR data streams:

Use cases: Due diligence on US public companies, financial modelling inputs, earnings monitoring, material event detection (8-K), beneficial ownership research, SEC filing compliance verification.

Federal Reserve Economic Data (FRED)

Maintained by the Federal Reserve Bank of St. Louis, FRED provides access to over 800,000 macroeconomic time series from 100+ data sources. Via Tech Compass you can retrieve both series metadata and observation history for any FRED series ID.

Commonly used series: Federal Funds Rate (FEDFUNDS), US GDP (GDP), CPI inflation (CPIAUCSL), unemployment rate (UNRATE), 10-year Treasury yield (DGS10).

Use cases: Macroeconomic scenario analysis, interest rate risk modelling, inflation-adjusted return calculations, regulatory capital stress testing.

Licensing

SEC EDGAR data is US Government public domain — unrestricted commercial use. FRED data is released under FRED’s Terms of Use, which permit commercial use with attribution. The data_lineage block on every response provides the source URL, retrieval timestamp, and license string for audit purposes.


Authentication

All endpoints except /health and /health/ready require an API key passed in the Authorization header:

Authorization: ApiKey tc_live_<your_key>

Keys beginning with sk_live_ (issued before May 2026) remain valid. New keys use the tc_live_ prefix. Obtain a key at signup.

Tiers

TierCalls/monthPrice
Free10,000$0
Professional500,000USD $1,500/mo or AUD $2,250/mo
EnterpriseUnlimitedContact sales

Rate limit headers

Every response includes:

HeaderDescription
X-RateLimit-LimitMonthly quota for your tier
X-RateLimit-RemainingCalls remaining this month
X-RateLimit-ResetUTC Unix timestamp when quota resets

Common Response Structure

All data endpoints return a consistent envelope:

{
  "data": { ... },
  "meta": {
    "request_id": "a1b2c3d4-...",
    "cached": false,
    "upstream_latency_ms": 142,
    "timestamp": "2026-05-09T07:00:00Z",
    "upstream_available": true,
    "cached_at": null
  },
  "data_lineage": {
    "source": "SEC EDGAR",
    "source_url": "https://data.sec.gov/api/xbrl/companyfacts/CIK0000320193.json",
    "retrieved_at": "2026-05-09T07:00:00Z",
    "request_id": "a1b2c3d4-...",
    "license": "US Government Public Domain - SEC EDGAR"
  }
}
FieldTypeDescription
meta.request_idstringUUID for this request — matches audit log entry
meta.cachedbooltrue if response served from cache
meta.upstream_latency_msint|nullMilliseconds to fetch from upstream (null on cache hit)
meta.upstream_availablebool|nullfalse if upstream was down and stale cache was served
meta.cached_atISO 8601|nullWhen cached data was originally fetched (present when upstream_available: false)
data_lineage.sourcestringAuthoritative data source name
data_lineage.source_urlstringExact upstream URL used to fetch the data
data_lineage.retrieved_atISO 8601When data was fetched from upstream
data_lineage.licensestringData licence

Graceful Degradation

When an upstream source is temporarily unavailable:

Error Reference

All errors use a consistent body: {"error": "string", "message": "string"}

StatusMeaning
400Invalid parameters
401Missing or invalid API key
429Monthly quota exhausted — check X-RateLimit-Reset
500Unexpected server error
502Upstream returned an unexpected error
503Upstream down and no cached data available

Endpoints

GET /v1/sec/company/{cik}/facts

Returns all XBRL company facts for a given CIK — balance sheet, income statement, and cash flow data tagged under US-GAAP and IFRS.

ParameterTypeDescription
cikpathSEC Central Index Key. Zero-padding applied automatically.
curl "https://api.techcompass.com.au/v1/sec/company/0000320193/facts" \
  -H "Authorization: ApiKey tc_live_<your_key>"

Errors: 401, 429, 502, 503

GET /v1/sec/filings

Returns filtered filing history for a company.

ParameterRequiredDescription
cikYesSEC Central Index Key
form_typeNoSEC form type. Default: 10-K. Examples: 10-K, 10-Q, 8-K
curl "https://api.techcompass.com.au/v1/sec/filings?cik=0000320193&form_type=10-K" \
  -H "Authorization: ApiKey tc_live_<your_key>"

Errors: 400, 401, 429, 502, 503

GET /v1/sec/submissions

Returns full submission metadata — entity details, filing history across all form types, and current addresses.

ParameterRequiredDescription
cikYesSEC Central Index Key
curl "https://api.techcompass.com.au/v1/sec/submissions?cik=0000320193" \
  -H "Authorization: ApiKey tc_live_<your_key>"

Errors: 400, 401, 429, 502, 503

GET /v1/fred/series/{series_id}

Returns metadata for a FRED economic series — title, units, frequency, seasonal adjustment, and last update.

ParameterDescription
series_idFRED series ID. Examples: GDP, UNRATE, FEDFUNDS, CPIAUCSL
curl "https://api.techcompass.com.au/v1/fred/series/GDP" \
  -H "Authorization: ApiKey tc_live_<your_key>"

Errors: 401, 429, 502, 503

GET /v1/fred/series/{series_id}/data

Returns time series observations for a FRED economic series.

ParameterRequiredDescription
series_idYes (path)FRED series ID
observation_startNoStart date YYYY-MM-DD. Default: series start
observation_endNoEnd date YYYY-MM-DD. Default: today
curl "https://api.techcompass.com.au/v1/fred/series/GDP/data?observation_start=2020-01-01" \
  -H "Authorization: ApiKey tc_live_<your_key>"

Errors: 401, 429, 503

GET /health & /health/ready

No authentication required. /health returns 200 if the process is running. /health/ready verifies database connectivity and upstream availability — always returns HTTP 200, use the degraded field to detect partial outages.

curl "https://api.techcompass.com.au/health/ready"
{
  "status": "ok",
  "degraded": false,
  "database": "ok",
  "upstreams": {
    "sec_edgar": { "available": true },
    "fred": { "available": true }
  }
}

GET /health/data

No authentication required. Returns the freshness of all pipeline-ingested datasets. Returns HTTP 200 if all datasets are within their staleness thresholds, or HTTP 503 if any dataset is overdue. Use this to verify data currency before running compliance-critical workflows.

curl "https://api.techcompass.com.au/health/data"
{
  "status": "ok",
  "stale_sources": [],
  "sources": {
    "ofac":         { "status": "ok", "last_date": "2026-06-19", "max_age_days": 2,  "age_days": 0 },
    "un":           { "status": "ok", "last_date": "2026-06-19", "max_age_days": 8,  "age_days": 0 },
    "eu":           { "status": "ok", "last_date": "2026-06-19", "max_age_days": 8,  "age_days": 0 },
    "fcdo":         { "status": "ok", "last_date": "2026-06-19", "max_age_days": 8,  "age_days": 0 },
    "dfat":         { "status": "stale", "last_date": null,       "max_age_days": 8,  "age_days": null },
    "asic_company": { "status": "ok", "last_date": "2026-06-19", "max_age_days": 10, "age_days": 0 },
    "asic_far":     { "status": "ok", "last_date": "2026-06-01", "max_age_days": 10, "age_days": 18 }
  }
}
Note: DFAT is excluded from the HTTP 503 trigger — a known infrastructure issue (DFAT source blocks cloud provider IPs) means DFAT will show as stale until a static egress IP is in place. All other sources contribute to the 503 decision. Monitor via stale_sources to detect actionable freshness failures.

Common Use Cases

1. Check if a company is SEC-registered

Who uses this: Counterparty due diligence, compliance officers verifying a counterparty before onboarding.

curl "https://api.techcompass.com.au/v1/sec/company/0000320193/facts" \
  -H "Authorization: ApiKey YOUR_API_KEY"
What to look for: data.facts.us-gaap contains structured financial facts. Check data_lineage.retrieved_at for data freshness. Gotcha: CIK must be the 10-digit SEC CIK — leading zeros are applied automatically.

2. Get all 10-K annual filings

Who uses this: Compliance reviewers building financial history timelines.

curl "https://api.techcompass.com.au/v1/sec/filings?cik=0000320193&form_type=10-K" \
  -H "Authorization: ApiKey YOUR_API_KEY"
Gotcha: The default form_type is 10-K. Specify 10-Q for quarterly or 8-K for material events.

3. Get material 8-K event filings

Who uses this: Risk teams monitoring for material events, M&A signal trackers.

curl "https://api.techcompass.com.au/v1/sec/filings?cik=0000320193&form_type=8-K" \
  -H "Authorization: ApiKey YOUR_API_KEY"
Gotcha: This endpoint returns filing metadata only, not the full 8-K document text. Use accessionNumber to retrieve the full document from SEC EDGAR directly.

4. Pull US GDP data

Who uses this: Macro researchers, risk modellers incorporating GDP growth into credit models.

curl "https://api.techcompass.com.au/v1/fred/series/GDP/data" \
  -H "Authorization: ApiKey YOUR_API_KEY"
Gotcha: GDP is a quarterly series. FRED rounds start dates to nearest quarter boundary automatically.

5. Pull Federal Funds Rate history

curl "https://api.techcompass.com.au/v1/fred/series/FEDFUNDS/data" \
  -H "Authorization: ApiKey YOUR_API_KEY"
Gotcha: FEDFUNDS is a monthly average. For daily fed funds rate data use the DFF series ID.

6. Pull unemployment rate with date range

curl "https://api.techcompass.com.au/v1/fred/series/UNRATE/data?observation_start=2020-01-01&observation_end=2024-12-31" \
  -H "Authorization: ApiKey YOUR_API_KEY"
What to look for: The COVID spike — UNRATE should jump to ~14.7% in April 2020.

7. Check your rate limit status

curl -I "https://api.techcompass.com.au/v1/fred/series/GDP" \
  -H "Authorization: ApiKey YOUR_API_KEY"
What to look for: X-RateLimit-Remaining in response headers. Decrements by 1 on every authenticated call. The -I flag (HEAD request) avoids fetching the body.

8. Verify data freshness for audit purposes

Every response includes a data_lineage block with retrieved_at, source_url, and request_id. The request_id matches the corresponding immutable audit log entry.

Gotcha: On a cache hit, data_lineage.retrieved_at reflects when the cached data was originally fetched — intentional for provenance accuracy.

9. Check upstream availability

curl "https://api.techcompass.com.au/health/ready"
Gotcha: This endpoint always returns HTTP 200 even when degraded. Use the degraded field in the response body to detect partial outages.

10. Test cache behaviour

Make the same call twice in quick succession. The second call should return meta.cached: true and meta.upstream_latency_ms: null.

Gotcha: Cache TTL is 1 hour for SEC EDGAR and FRED. Both calls count against your X-RateLimit-Remaining. Rate limiting and caching are independent.

Data Sources

SourceLicenceRefresh
SEC EDGARUS Government Public DomainCached 1 hour; upstream updates within minutes of filing
Federal Reserve FREDUS Government Public DomainCached 1 hour; upstream updates per FRED release schedule

About this API

What this API does

The Tech Compass US Compliance Data API provides authenticated, audit-logged access to SEC EDGAR company facts and filing histories, and Federal Reserve FRED economic time series data. It wraps publicly available US government data sources with versioned schemas, rate limiting, immutable audit logging, and a consistent data_lineage block per response — purpose-built for regulated enterprise compliance workflows.

Who uses this API

  • US compliance officers verifying SEC registration and filing history of counterparties
  • Risk teams incorporating macroeconomic indicators into credit and portfolio models
  • Fintech engineers building automated compliance data pipelines
  • M&A due diligence teams reviewing SEC filing history of target companies
  • RegTech platforms embedding SEC data into compliance-as-a-service products
  • Quantitative researchers requiring auditable, versioned FRED time series data

Key use cases

  • Counterparty SEC registration check — verify a company's SEC registration and retrieve all XBRL financial facts
  • 10-K / 10-Q / 8-K filing retrieval — pull annual, quarterly, or material event filings for a given CIK
  • Material event monitoring — retrieve 8-K filings to detect M&A activity, restatements, or management changes
  • Macroeconomic data ingestion — pull GDP, unemployment, inflation, and Federal Funds Rate time series into models
  • Audit trail generation — every call creates an immutable log with request_id and data_lineage for regulatory reporting
  • Graceful degradation testing — verify that upstream unavailability returns cached data with correct metadata flags

Applicable compliance frameworks

  • SEC Regulation S-K and Regulation S-X — financial reporting requirements
  • Sarbanes-Oxley Act (SOX) — financial disclosure and audit trail obligations
  • FINRA Rule 4512 — customer account information requirements
  • APRA CPS 234 — third-party information security risk (for AU-regulated entities)
  • Basel III — counterparty credit risk and financial data requirements

Data sources

Frequently asked questions

How current is the SEC EDGAR data?
SEC EDGAR data is cached for 1 hour. Upstream (data.sec.gov) updates within minutes of a filing being accepted by the SEC. If you require near-real-time data, the cache miss will fetch live from EDGAR — the meta.cached field tells you which.
How current is the FRED economic data?
FRED data is cached for 1 hour. Underlying series update on FRED's own release schedule (monthly for GDP/CPI, daily for DFF). Check data_lineage.retrieved_at for the fetch time.
Is every API call audited?
Yes. An immutable audit log entry is written before every response is returned. The meta.request_id in the response matches the audit log entry for regulatory reporting.
What happens when SEC EDGAR or FRED is unavailable?
Stale cached data is returned with HTTP 200, meta.upstream_available: false, and meta.cached_at showing when the data was last successfully fetched. If no cache exists, HTTP 503 is returned. The service is always available even when upstreams are not.
What SLA is available?
Professional and Enterprise tier subscribers receive SLA documentation on request. Contact [email protected].

Related APIs