The Liinks Public API lets you manage your profiles, blocks, and styles programmatically through a REST interface. It's designed for developers, agencies, and AI agents that need to build or update Liinks pages without using the dashboard.
Who can use the API?
The Public API is currently in beta and available to select accounts. During the beta, access is being rolled out gradually. If you're on a paid plan, you can join the waitlist by going to Settings > API Keys and clicking Create API Key. We'll email you as soon as access is enabled for your account.
Getting started
Create an API key
- Go to Settings in your admin dashboard.
- Scroll down to the API Keys section.
- Click Create API Key.
- Give your key a descriptive name (e.g., "Zapier integration" or "Content sync").
- Copy the key immediately -- it will only be shown once.
If you lose a key, revoke it and create a new one.
Authenticate your requests
Include your API key in the Authorization header of every request:
Authorization: Bearer liinks_live_xxxxxxxxxx
Base URL
All API endpoints are served from:
https://liinks.co/api/v1
What you can do
Profiles
- List profiles --
GET /profilesreturns all profiles associated with your account. - Get a profile --
GET /profiles/{profileId}retrieves a single profile by ID. - Create a profile --
POST /profilescreates a new managed profile (requires a Pro or Agency plan with multi-profile support). - Update a profile --
PATCH /profiles/{profileId}updates profile fields like display name, bio, tagline, profile picture, and social links. - Delete a profile --
DELETE /profiles/{profileId}permanently removes a managed child profile. Your own profile cannot be deleted via the API.
Blocks
- List blocks --
GET /profiles/{profileId}/blocksreturns all blocks on a profile. - Get a block --
GET /profiles/{profileId}/blocks/{blockId}retrieves a single block. - Create a block --
POST /profiles/{profileId}/blocksadds a new block (link, text, divider, media, or folder). - Update a block --
PATCH /profiles/{profileId}/blocks/{blockId}modifies an existing block. - Delete a block --
DELETE /profiles/{profileId}/blocks/{blockId}removes a block. - Reorder blocks --
POST /profiles/{profileId}/blocks/reorderchanges the display order of blocks on a page.
Styles
- Get styles --
GET /profiles/{profileId}/stylesreturns the current design settings for a profile. - Update styles --
PATCH /profiles/{profileId}/stylesmodifies fonts, colors, backgrounds, and other design options.
Screenshots
- Capture a screenshot --
POST /profiles/{profileId}/screenshotrenders your live profile in a headless browser and returns one or more JPEG images. This is useful for verifying what your page looks like after making changes via the API. The response includes an array of page images in top-to-bottom order, each with a public CDN URL. You can customize the viewport size (defaults to 375×812 for mobile) and the maximum number of pages to capture.
Interactive documentation
Full endpoint details, request/response schemas, and live examples are available in the interactive API docs:

The docs are powered by the OpenAPI specification, which you can also access directly at /api/v1/openapi.json. If you're building with AI agents, liinks.co/llms.txt provides a machine-readable overview of the API for LLM-based tools.
Managing API keys
You can view and manage all of your API keys from Settings > API Keys in the dashboard. Each key shows:
- The key name and prefix
- When it was created
- When it was last used
To revoke a key, click Revoke next to it. Revoking a key immediately stops any integrations using it. This cannot be undone -- you'll need to create a new key and update your integrations.
Rate limiting
API requests are rate-limited to protect service quality. If you exceed the limit, the API returns a 429 status code with a retryAfterSeconds value in the error response. Wait the indicated time before retrying.
Error handling
All errors follow a consistent format:
{
"error": {
"code": "validation_error",
"message": "Human-readable description of what went wrong.",
"details": {}
}
}
Common error codes include validation_error, unauthorized, not_found, rate_limited, and conflict.
Need help?
If you have questions about the API or run into issues, contact our support team. For detailed endpoint documentation, visit the interactive API docs.