---
title: "Pillar Page API"
method: GET
path: "/v1/pillar/page"
tags: ["Pillar"]
---

# Pillar Page API

`GET /v1/pillar/page`

## Request

- Base URL: `https://api.captapi.com`
- URL: `https://api.captapi.com/v1/pillar/page`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

Pillar link-in-bio → identity, socials{}, links[] with per-link clicks, products[].

Paste a Pillar URL (pillar.io/user) and get the public page as clean JSON. Identity: id (string UUID), handle/username, url, displayName (name is a deprecated alias), firstName/lastName, bio (description is a deprecated alias — may be an empty string), avatar, location, email. socials{} maps Pillar banner + connected channels (instagram/tiktok/youtube/twitter/facebook/spotify/soundcloud/linkedin/snapchat/patreon/discord/twitch/medium/amazon/appleAppStore/googleAppStore/…). links[] are custom link rows with id, type, title, url, clicks (public per-link click counts — Pillar's unique performance signal), and order. products[] carries featured commerce rows (id, title/name, price, url, description, image). Pillar does not expose follower counts or a verified badge on this endpoint. Flat 1 credit via Pillar's public GraphQL API (not HTML scrape). Pass cache=true or cacheMaxAge (1d/3d/7d/14d/30d) for the shared response cache.

Docs: https://captapi.com/apis/pillar-page

## Query parameters

- `url` string, required
- `cache` boolean
- `cacheMaxAge` '1d' | '3d' | '7d' | '14d' | '30d'

## Response `200`

Success. The data object for this endpoint.

- object
  - `success` unknown, required
  - `data` object, required
    - `platform` string: Platform identifier for this response (matches the endpoint's platform).
    - `id` string: Pillar influencer id as a string UUID (catalog-wide id convention).
    - `url` string: On the page: https://pillar.io/{url_key}. On a link/product row: outbound destination.
    - `username` string: Account username / handle.
    - `handle` string: Pillar page url_key (path slug). Canonical alongside username.
    - `displayName` string: Creator display name from Pillar (banner user_alias / full name). Canonical; name is a deprecated alias.
    - `name` string: Deprecated alias of displayName — prefer displayName.
    - `firstName` string: First name.
    - `lastName` string: Last name.
    - `avatar` string: Avatar / profile picture URL. Canonical across profile endpoints.
    - `location` string: Public location string from Pillar page customizations (e.g. México). Null when unset.
    - `email` string: Public email from Pillar EMAIL social and/or account email when published.
    - `linkCount` integer: Number of ACTIVE custom-link rows in links[] (DELETED + referral chrome excluded).
    - `socials` object
      - `tiktok` string: Tiktok URL.
      - `spotify` string: Spotify URL.
      - `twitter` string: Twitter URL.
      - `youtube` string: Youtube URL.
      - `facebook` string: Facebook URL.
      - `linkedin` string: Linkedin URL.
      - `instagram` string: Instagram URL.
      - `soundcloud` string: Soundcloud URL.
    - `bio` string: Creator bio. Always present — empty string when Pillar has none. description is a deprecated alias.
    - `description` string: Deprecated alias of bio — prefer bio.
    - `links` object[]
      - `id` string: Id of this links item.
      - `type` string: On links[]: host-derived social key when obvious (twitter, spotify, …), otherwise lowercase title.
      - `title` string: Title of this links item.
      - `url` string: On the page: https://pillar.io/{url_key}. On a link/product row: outbound destination.
      - `clicks` integer: On links[]: cumulative public click count for that custom link.
      - `order` integer, nullable: Order. Example: 2.
      - `description` string: Deprecated alias of bio — prefer bio.
    - `products` object[]
      - `id` string: Id of this products item.
      - `title` string: Title of this products item.
      - `name` string: Name of this products item.
      - `url` string: On the page: https://pillar.io/{url_key}. On a link/product row: outbound destination.
      - `description` string: Description of this products item.
      - `image` string: Image URL.
      - `price` integer: Price of the item.
      - `showPrice` boolean: Show price. Example: false.

## Other responses

- `400`: Bad request: wrong platform URL, unknown endpoint, or an invalid parameter value. Not billed.
- `401`: Missing, invalid or revoked API key. Not billed.
- `402`: Not enough credits for this request. Not billed.
- `404`: The resource does not exist or is not public. Not billed.
- `422`: A required parameter is missing or has the wrong type. Not billed.
- `429`: Rate limit reached. Wait for Retry-After seconds. Not billed.
- `502`: The platform could not be reached or returned nothing usable. Retryable, not billed. 503 and 504 use the same envelope.

---

[API](https://skmtc.dev/captapi/apis/captapi-api.md) · [All operations](https://skmtc.dev/captapi/apis/captapi-api/llms.txt) · [OpenAPI document](https://skmtc.dev/captapi/apis/captapi-api/revisions/c9b9ac5ff1bd?raw)
