UniLink API Overview (Build Apps and Automations on Top of UniLink)

UniLink API Overview (Build Apps and Automations on Top of UniLink)
The UniLink public REST API lets developers build custom integrations, automate workflows, and extend the platform beyond the dashboard.
- Base URL is
https://unilink.us/api/v1— all endpoints return JSON. - Authenticate every request with a Bearer token from your dashboard API settings.
- Rate limits vary by plan: 100 req/hour on Free up to 10,000 req/hour on Business.
UniLink exposes a full REST API so you can read and write data programmatically — pages, contacts, orders, analytics, and content are all accessible. Whether you are building a white-label client portal, syncing orders with a fulfillment system, or pulling analytics into a custom dashboard, the same API that powers the UniLink dashboard is available to you. Every endpoint speaks JSON and follows predictable HTTP conventions, so any language or tool that can make an HTTP request works out of the box.
What the UniLink API Does
The UniLink API is a versioned REST API. The current version is v1, and the base URL for every request is https://unilink.us/api/v1. All responses are JSON objects. Successful responses return a data key containing the requested resource or collection. Error responses return an error object with a machine-readable code and a human-readable message. HTTP status codes follow standard semantics: 200 for success, 201 for created, 4xx for client errors, 5xx for server errors.
The API supports four HTTP methods: GET to fetch resources, POST to create them, PUT to update them, and DELETE to archive them. Most list endpoints are paginated using cursor-based pagination — responses include a meta object with next_cursor and prev_cursor values. Page size defaults to 20 and can be set up to 100 per request. Filtering and sorting parameters are documented per endpoint and passed as query string parameters on GET requests and as JSON body fields on POST and PUT requests.
The API is designed for several core use cases. Agencies use it to create and manage pages in bulk for their clients. Developers build white-label analytics dashboards that pull contact and order data automatically. Automation tools like Zapier or Make use the webhook and API combination to trigger actions in external systems when UniLink events occur. Content teams sync blog and help articles to external CMS platforms. In every case the API provides consistent, authenticated access to the full UniLink data model without requiring manual dashboard interaction.
How to Get Started
- Log in to your UniLink account at app.unilink.us and open the dashboard.
- Go to Settings → API in the left sidebar. If you do not see the API section, your plan may not include API access — upgrade from the Billing page.
- Click Generate API Key. Give the key a descriptive name (for example, "Zapier integration" or "Analytics dashboard") so you can identify it later.
- Copy the key immediately — it is only shown once. Store it in your application's environment variables or a secrets manager, never in source code.
- Make a test request:
curl -H "Authorization: Bearer YOUR_KEY" https://unilink.us/api/v1/pages. A 200 response with your pages confirms the key is working.
How to Use the API
- Include the
Authorization: Bearer YOUR_KEYheader on every request. Requests without this header return 401 Unauthorized. - Set
Content-Type: application/jsonon POST and PUT requests. GET and DELETE requests do not require a body. - Read the response's HTTP status code before parsing the body. A 2xx code means success. A 4xx or 5xx code means you should read the
errorobject to understand what went wrong. - For list endpoints, check
meta.next_cursorin the response. If it is not null, pass it as thecursorquery parameter in your next request to fetch the following page of results. - Respect the rate limit headers (
X-RateLimit-Remaining) returned with every response. If the value reaches zero, wait untilX-RateLimit-Resetbefore sending more requests to avoid 429 errors.
Key Settings
| Setting | What It Does | Recommended |
|---|---|---|
| API Key Name | Label for identifying the key in the dashboard | Use a descriptive name per integration |
| Key Scope | Controls what actions the key can perform (read, write, admin) | Use the most restrictive scope needed |
| Request Timeout | How long your client waits for a response | Set 10–30 seconds on the client side |
| Page Size | Number of items returned per list request (default 20, max 100) | Use 100 for bulk exports, 20 for UI pagination |
| Retry Logic | Whether your client retries on 429 or 5xx responses | Implement exponential backoff with jitter |
Get the Most Out Of the UniLink API
Cache responses wherever possible. Most page and profile data changes infrequently. Caching a GET /pages response for a few minutes dramatically reduces your request count and keeps you well inside rate limits. Use ETags or Last-Modified headers if you need to detect changes efficiently without fetching entire resources.
Use webhooks alongside the API instead of polling. Instead of calling GET /orders every minute to check for new orders, register a webhook endpoint that UniLink calls immediately when an order is created. This is faster, more reliable, and uses far fewer API requests. The webhook and REST API complement each other — webhooks push events, the REST API lets you fetch details and take actions.
Build integrations with idempotency in mind. Network failures can cause requests to time out before you receive a response, leading you to retry a write operation that already succeeded. UniLink's POST endpoints accept an Idempotency-Key header — send a unique UUID with each create request and UniLink returns the same response if the key is replayed within 24 hours, preventing duplicate records.
Monitor your API key usage regularly from Settings → API. The dashboard shows request counts per key over the last 30 days. If a key is making far more requests than expected, it may indicate a polling loop in your code that could be replaced with a webhook, or a bug causing infinite retries.
Troubleshooting
| Problem | Cause | Fix |
|---|---|---|
| 401 Unauthorized on every request | Missing or malformed Authorization header | Confirm the header is Authorization: Bearer YOUR_KEY with no extra spaces or quotes around the key |
| 403 Forbidden on write endpoints | API key has read-only scope | Regenerate the key with write or admin scope from Settings → API |
| 429 Too Many Requests | Exceeded rate limit for your plan | Read X-RateLimit-Reset header and pause requests until that timestamp, then retry with backoff |
Empty data array on list endpoints | No resources exist yet or wrong account context | Verify the API key belongs to the correct account and that resources have been created in the dashboard |
- Full access to pages, contacts, orders, and content via a single consistent API
- JSON responses with predictable structure make integration straightforward in any language
- Versioned endpoints (v1) ensure your integrations do not break when the platform evolves
- Webhook support eliminates polling and reduces API usage significantly
- Free plan rate limit (100 req/hour) is restrictive for high-frequency automations
- API access requires a paid plan for full write capabilities
- Some advanced endpoints (bulk operations) are only available on Business plans
What is the base URL for the UniLink API?
The base URL is https://unilink.us/api/v1. All endpoint paths are appended to this base — for example, https://unilink.us/api/v1/pages.
Do I need a paid plan to use the API?
The API is available on all plans. Free plan users get 100 requests per hour. Pro and Business plans get higher limits and access to additional endpoints including bulk operations and advanced filtering.
What data formats does the API accept and return?
All requests and responses use JSON. Set Content-Type: application/json on requests with a body. Responses always include a data key for successful responses and an error key for error responses.
Can multiple applications share one API key?
Technically yes, but it is strongly discouraged. Create a separate key for each integration so you can revoke access to one application without disrupting others, and so the usage dashboard shows clear per-integration metrics.
Is there an official SDK or client library?
UniLink does not currently publish an official SDK. The API follows REST conventions that work well with standard HTTP clients — fetch in JavaScript, requests in Python, curl on the command line, or any HTTP library in your language of choice.
- The UniLink API base URL is
https://unilink.us/api/v1and all responses are JSON. - Generate your API key from Settings → API in the dashboard and store it securely.
- All requests require an
Authorization: Bearer YOUR_KEYheader. - Rate limits are 100/hour (Free), 1,000/hour (Pro), and 10,000/hour (Business).
- Combine the REST API with webhooks for efficient, event-driven integrations instead of polling.
Ready to build on UniLink? Go to app.unilink.us, open Settings → API, and generate your first API key in under a minute.
Create Your Free Link-in-Bio Page
Join thousands of creators using UniLink. 40+ blocks, analytics, e-commerce, and AI tools — all free.
Get Started Free