> **For coding agents and LLMs:** This is one Social Fetch marketing page (markdown export). For API orientation start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for auth and crawl rules use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for every operation use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt).

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/platforms/lnk-bio/profiles-handle-links-search>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/lnk-bio/profiles-handle-links-search.mdx>

---

# Lnk.Bio Link Search API

Search inside one public Lnk.Bio profile's links and get the matching link boxes as JSON.

`GET /v1/lnk-bio/profiles/{handle}/links/search?query=draft` searches the text of one profile's links. `query` is required and is 1 to 100 characters.

On `found`, `data.links` holds at most 30 matching links, each with the same fields as the links route: `id`, `title`, `url`, `type`, `thumbnailUrl`, `position`, `group`, `badge` and `blockType`. `data.query` is the search text you sent, `data.truncatedAtLimit` is true when the 30-match cap was hit, and `data.page` is `{ hasMore: false, nextCursor: null }` because search has no paging. `position` is null for links not in the profile's first 48; a match on that first page carries its zero-based position. A query with no match is still a `found` profile with an empty `data.links` list.

A missing profile returns HTTP 200 with `lookupStatus: "not_found"` and an empty list. This searches only the links of the profile in the path. It is not a search across profiles; use the directory route to walk public profiles.

## Request

- **Endpoint:** `GET /v1/lnk-bio/profiles/{handle}/links/search`
- **Credits:** 1 credit
Failed requests are free
- **Input:** by handle and query
- **Full reference:** [docs](https://www.socialfetch.dev/docs/api/v1/lnk-bio/profiles/handle/links/search/get)
- **Platform page:** [/platforms/lnk-bio](https://www.socialfetch.dev/platforms/lnk-bio)

## FAQ

### Does search page through results?

No. Search returns at most 30 matches in one response and always sets data.page.hasMore to false. Use the links route with a cursor if you need every link on the profile.

### What happens when nothing matches?

You get HTTP 200 with data.lookupStatus found, data.query as sent, and an empty data.links list. The profile still exists; only the search had no match.

### Can I search across all Lnk.Bio profiles?

No. Search is scoped to one profile's links. To find public profiles, walk GET /v1/lnk-bio/profiles and its cursor.

### How long can the query be?

query is required and is 1 to 100 characters. A missing or empty query is refused with HTTP 400.

### How many credits does a search cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged: that field is the billing source of truth.
