# Find creators to work with > Markdown version of https://docs.postlake.dev/api/get-discover-creators . The canonical page for humans. > PostLake is the social media API for AI agents: https://postlake.dev/llms.txt `GET /v1/discover/creators` Search the network's creator marketplace for people a brand could partner with. Instagram needs a connection made through Facebook. IMPORTANT: until Meta grants the app Advanced Access, the results are SIMULATED creators for testing, and every row carries `sample: true` to say so. Acting on a sample means pitching a partnership to somebody who does not exist, so check it before you use a result. ## Request Authenticate with a bearer API key. Agents calling over MCP authorise with OAuth instead and never handle the key. ```bash curl -X GET https://api.postlake.dev/v1/discover/creators \ -H "Authorization: Bearer $POSTLAKE_API_KEY" ``` ### Parameters | Field | Type | Required | What it is | | --- | --- | --- | --- | | `account` | string | Yes | Query string. Which connected account to search from, so we know which network. | | `q` | string | No | Query string. Free-text search. | | `countries` | string | No | Query string. Comma-separated country codes. | | `interests` | string | No | Query string. Comma-separated content categories. | | `limit` | integer | No | Query string. | | `cursor` | string | No | Query string. | ## Response Creators (`200`). | Field | Type | Required | What it is | | --- | --- | --- | --- | | `items` | array of object | Yes | | | `cursor` | string | Yes | | | `platform` | object | Yes | | ### Example ```json { "items": [ { "id": "…", "handle": "…", "displayName": "…", "avatarUrl": "…", "followers": "…", "bio": "…", "categories": "…", "sample": "…" } ], "cursor": "…", "platform": "…" } ``` ## Calling this from an agent Agents working over the hosted MCP server reach the same product through tools rather than REST, and authorise with OAuth so your API key is never pasted into a chat. ## Errors Every failure uses one shape: a stable `type`, a granular `code`, the field at fault in `param`, and a plain-language `fix`. See https://docs.postlake.dev/errors.md . Retries are safe: send the same `Idempotency-Key` and a call that already succeeded returns its original result rather than repeating it. ## Common questions **How often can I call this?** Reads are rate limited per account and every response carries X-RateLimit-Remaining and X-RateLimit-Reset. On a 429 the Retry-After header tells you how long to wait. **What happens when it fails?** You get one error shape: a stable type, a granular code you can branch on, the offending field in param, and a fix written so an agent can correct itself rather than stop. Full list on Errors and retries. ## Related - [Find a place to tag on a post](https://docs.postlake.dev/api/get-discover-places.md) `GET /v1/discover/places` - [Search public posts](https://docs.postlake.dev/api/get-discover-posts.md) `GET /v1/discover/posts` - [Look someone up](https://docs.postlake.dev/api/get-discover-profiles-by-handle.md) `GET /v1/discover/profiles/{handle}` - [Someone else's public posts](https://docs.postlake.dev/api/get-discover-profiles-by-handle-posts.md) `GET /v1/discover/profiles/{handle}/posts`