Skip to content AgencyRadar 
Sign in

API

REST endpoints over the same catalog the site runs on, contacts included (filtered per country rules). For an AI assistant, use the MCP server instead.

You need a license key — start free in a minute.

Authentication

Every request carries your key in the Authorization header as a Bearer token. Find and activate your key on the account page.

JSON API

GET /api/agencies — Filtered list of agencies — the same parameters as the finder.

curl -H "Authorization: Bearer AR-XXXX-XXXX-XXXX-XXXX" \
  "https://agencyradar.eu/api/agencies?services=ecommerce&country=SK&limit=20"

GET /api/agencies/{slug} — Full profile for a single agency, contacts included.

curl -H "Authorization: Bearer AR-XXXX-XXXX-XXXX-XXXX" \
  "https://agencyradar.eu/api/agencies/ant-studio"

Filter parameters

Combine freely; separate multiple values with commas. Paginate with limit and offset (results per page are capped by your plan).

The most common parameters:

q
text search (name, IČO, domain, services)
country
SK | CZ
services
ecommerce, branding, seo, …
platforms
wordpress, woocommerce, shoptet, …
regions
region slugs, comma-separated
sizes
team-size buckets
ai
AI service slugs
org
agency | studio | freelancer
cities
city slugs, comma-separated (as in a finder URL)
langs
communication-language codes (sk, cs, en, …); matches only records that list theirs
rate
ceiling on the published starting hourly rate; records without a published rate are kept
sort
relevance | score | name | founded | size | revenue | rating | rate
min_capacity_man_days / within_months
delivery-capacity triage: man-days you need within a window of months (optional allocation 0.1–1, default 0.5); agencies whose known team is too small are dropped, unknown sizes are kept and flagged, and every row carries `capacity` with the model in `capacity_model`
wl / ent / oss / tenders / reach / sized
=1 boolean flags: white-label, enterprise experience, publishes open source, public contracts on record, has contact details, declared team size only
limit / offset
pagination

What comes back

A JSON envelope with the total match count, the page you asked for, the filters as the server parsed them, and the records. `count` is the size of the whole match set, not of the page — page through it with `limit` and `offset`.

{
  "count": 1284,          // total matches, before limit/offset
  "offset": 0,
  "limit": 20,
  "page_cap": 20,         // the limit actually applied — your plan's cap clamps it, 500 is the hard ceiling
  "has_more": true,       // more rows past this page
  "next_offset": 20,      // present only while has_more — pass as offset to resume
  "filters": { ... },     // the filters as parsed, so you can confirm what applied
  "results": [
    {
      "slug": "ant-studio",
      "name": "…",
      "registry_id": "…",
      "score": 92, "score_band": "strong", "score_coverage": 0.41,
      "score_capped_by": null,   // 'coverage' | 'vat-unreliable' | 'dormant' when the band is held down
      "email": "…", "phone": "…", "contact_note": "…",
      "currency": "EUR"
      // …every other field of the full profile
    }
  ]
}

Each record is the full profile: registry facts, financials, references, locations, sources, the AgencyRadar Score with its band and coverage, and the compliance-filtered contacts. A field is null when nobody has established it — never treat null as a “no”. On the single-record endpoint (`/api/agencies/{slug}`) an unestablished field is ABSENT rather than null — the row is compacted, same as MCP. Money fields carry a `currency`.

Errors

Failures are plain HTTP status codes with a JSON body explaining what to change.

401
No key, or a key that is expired or revoked. Check the Authorization header.
429
Daily request budget spent, or too many requests in a minute. Retry after a minute; the daily budget resets at 00:00 UTC.
404
No agency with that slug. Slugs come from a list response, not from a company name.

Bulk export

The same filters as the API, but returns the selection as CSV or JSON — up to your plan’s per-request cap. Add &format=csv or &format=json. An export counts as 5 requests against the daily budget.

curl -H "Authorization: Bearer AR-XXXX-XXXX-XXXX-XXXX" \
  "https://agencyradar.eu/api/export?services=ecommerce&country=SK&format=csv"

Both formats carry the same flat fields. Structured facts are JSON-only rather than mangled into a cell: awards (programme, year, title and source per row), external_reviews, branch locations beyond the HQ, socials, open_source detail behind the oss_status column, and the as-filed money objects. If you need those, use format=json.

Data sources and reuse conditions

These endpoints return facts compiled from public registers and published pages. Some of those sources attach conditions to REUSE — an attribution that has to travel with the data wherever it is reproduced. If you republish or redistribute what you receive, carry the statement below with it.

data from Slovak Register of Financial Statements (registeruz.sk) (Open API, CC0); Register of Legal Entities (Statistical Office of the SR) (Open API, CC-BY 4.0 — attribution: ŠÚ SR / RPO); Financial Administration of the SR (opendata.financnasprava.sk) (CC-BY 4.0 — attribution: Finančné riaditeľstvo SR); Business Register of the SR (orsr.sk) (public register, free access); Registr smluv (data.smlouvy.gov.cz) (open data, CC0); ARES (Czech business register) (Czech open data); Czech VAT-payer register — unreliable-payer flag (adisrws.mfcr.cz) (public register web service (Finanční správa ČR), free access); GitHub (github.com) (public API, per GitHub terms of service — facts only, linked to the profile); Pretlak (pretlak.com) (public web pages, no formal licence — read under robots.txt (User-agent: * / Disallow: empty), facts only, attributed and linked to the profile they came from); Na volné noze (navolnenoze.cz) (public web pages, no formal licence — read under robots.txt (which disallows /hledej, /menu/, /soubory/, /temp/ and the document paths, none of which this crawl touches), facts only, attributed and linked to the profile they came from); Agency websites and public directories (public web pages, no formal licence — facts only, attributed and linked to source)

Full terms, including what a license key permits: Terms of service

Limits by plan

PlanRequests per dayResults per request
Free10010
Standard50050
Business2000500

Ready to start?