Query parameters
| Field | Type | Description |
|---|---|---|
| url | string | Required. An HTTPS pillar.io/<username> URL. www, case, tracking parameters, and fragments are canonicalized; nested paths and custom domains are unsupported. |
Link in bio API
Retrieve a public Pillar creator profile, social links, link click counts, and featured products.
Read the public shop data that powers a Pillar page. Get profile details, social accounts, ordered links, and product listings in one response.
http://localhost:3010Local development example. Replace with your service origin.
/v1/pillarAccepts a public Pillar profile URL. Returns profile fields, links, and products at the top level, matching the reference API's data shape. Outbound URLs are returned as data and never visited.
| Field | Type | Description |
|---|---|---|
| url | string | Required. An HTTPS pillar.io/<username> URL. www, case, tracking parameters, and fragments are canonicalized; nested paths and custom domains are unsupported. |
| Field | Type | Description |
|---|---|---|
| id | string | Published creator UUID, checked against the requested public shop handle and record ownership. |
| first_name | string | null | Structured account first name from Pillar’s public-client query. Upstream nulls are preserved; this is not inferred from a display name. |
| last_name | string | null | Structured account last name from Pillar’s public-client query; upstream nulls are preserved. |
| email_primary | string | null | Primary account email from Pillar’s public-client account query. This may differ from the displayed social email. Explicit upstream nulls are preserved; a failed or missing account response fails the request. |
| location | string | null | Published location text; unknown or unavailable values are null. |
| string | null | Public EMAIL social value. Other social channels appear as lowercase top-level keys, such as instagram, tiktok, youtube, github, and threads. Source empty strings and nulls are preserved. | |
| links | array | Ordered public link records: id, type, title, url, clicks, and order. type and title are the trimmed, lowercase source tagline. Duplicates and source array order are preserved; no sorting by order is applied. |
| products | array | Featured product records: id, title, price, url, name, description, and image. title and name use the published product name. Prices keep source values; no currency conversion is performed. Descriptions may contain markup and are not executed. |
| requestId | string | Identifier for correlating the request with operational logs. |
| accounting | object | Upstream request count, decoded JSON bytes read, and duration. Rejected error bodies are discarded; these are operational counts, not billing totals. |
| success | boolean | True when usable data is returned, including partial results. |
| status | string | success or partial. Failures use failed or challenged and include a failure object. |
| sourceUrl | string | Canonical public profile URL. |
| fetchedAt | string | UTC timestamp of retrieval. |
| coverage | object | Coverage of supported public profile fields, links, and featured products. Warnings describe missing, malformed, gated, or limited data. |
Nested fields and every response variant are in the OpenAPI specification.
| HTTP | Code / status | Meaning |
|---|---|---|
| 400 | invalid_request | Missing/invalid profile URL, duplicate URL, or unsupported parameters. |
| 401 | unauthorized | Missing or invalid service API key. |
| 403 | restricted_page | The profile requires access or consent. |
| 404 | not_found | The public profile is missing or inactive. |
| 429 | upstream_rate_limited | Pillar rate limited retrieval; no automatic retry. |
| 502 | upstream_challenged | Pillar rejected or challenged the public request. |
| 502 | unsupported_page | Malformed or unsupported JSON, missing identity, or mismatched profile. |
| 502 | response_too_large / payload_too_complex | The public JSON exceeds byte, depth, or node limits. |
| 502 | unsafe_redirect / request_limit / upstream_error | The bounded retrieval could not complete. |
| 503 | busy | All worker slots are in use. |
| 504 | timeout | Retrieval exceeded the total deadline. |
| 502 | public_client_unavailable / account_metadata_unavailable | The public client or required account metadata could not be verified. |
| 200 | partial | Usable data with warnings about missing, invalid, gated, or truncated records. |