Pick an Agency runs a free, no-signup REST + MCP API over its directory of 47,000+ verified marketing agencies. It has `/search`, `/agencies/{slug}`, and `/match` endpoints for shortlisting agencies by service, location, and rating, plus a machine-readable OpenAPI spec at `/api/v1/openapi.json`. A live GET this run against `/search` and against `/match` both returned real agency records with `access-control-allow-origin: *` and no auth challenge. This confirms the stored 'None' auth and open CORS policy with real JSON payloads.
Pick an Agency is a free, keyless directory of marketing agencies. It has no signup and no API key. A live GET this run against /search returned real agency records with an open CORS header, so a browser can call it directly.
AuthenticationNone requiredCall it straight away — no key, no signup.
HTTPSSupportedTraffic is encrypted in transit.
CORSEnabledCallable directly from browser JavaScript.
PricingFreeNo paid tier — free for the documented use case.
FormatsJSONResponses can be requested as JSON.
GreatAPIs Score
Score94out of 100
Authentication25/25No authentication required
Pricing20/20Free to use
Docs20/20Machine-readable spec file bundled
Formats9/15Single response format
Freshness20/20Verified within 6 months
Embed this badge
<a href="https://greatapis.com/api/pick-an-agency/"><img src="https://greatapis.com/badge/pick-an-agency.svg" alt="Scored 94 on greatapis.com"></a>
Auth quickstart
No API key, signup, or credit card is needed. A live GET this run against /search?service=SEO&city=Berlin&min_rating=4.5&limit=2 returned 200 with two real agency records and access-control-allow-origin: *, so a browser fetch() also works with zero credentials.
Stored keyNo key stored
Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.
Endpoints
Servers
https://www.pickanagency.com/api/v1
agencies1
GET/agencies/{slug}Get one agency profile with recent reviews
Parameters
Name
In
Required
Type
slug
path
yes
string
Responses
Status
Description
Schema
200
Agency profile
—
404
Unknown slug
—
match1
GET/matchGet a ranked shortlist of agencies for a brief
Parameters
Name
In
Required
Type
services
query
yes
string
country
query
no
string
city
query
no
string
budget
query
no
string
industry
query
no
string
platforms
query
no
string
limit
query
no
integer
Responses
Status
Description
Schema
200
Ranked shortlist
—
400
services parameter missing
—
search1
GET/searchSearch marketing agencies
Parameters
Name
In
Required
Type
q
query
no
string
service
query
no
string
country
query
no
string
city
query
no
string
industry
query
no
string
min_rating
query
no
number
limit
query
no
integer
Responses
Status
Description
Schema
200
Matching agencies
—
Try it
Developer reference
Base URLhttps://www.pickanagency.com/api/v1
Key endpoints
GET/search
GET/agencies/{slug}
GET/match
Gotchas & limits
Do not guess a slug for /agencies/{slug}. A live GET this run against the vendor's own documented example, /agencies/ogilvy, returned 404 with {"error":{"status":404,"message":"No agency found for slug \"ogilvy\" - find slugs via /api/v1/search"}}. Get slugs from /search or /match first.
limit is capped at 25 and defaults to 10. Ask for more and the API still stops at 25.
The data is under a CC BY 4.0 licence. If you show it in public, you must link back to pickanagency.com, per the meta.attribution field in every response.
Every response, including error responses, carries a meta block with source, attribution, and a docs link. Read errors from error.message, not from the top level.
Availability
Uptime100%
Median latency567 ms
Last checkUp · 200 · Sep 2026
3 checks since Aug 2026. A person runs this check by hand, not an automated monitor.