Developer API
Integrate Linkos into your applications. Manage links, access analytics, and subscribe to events.
Get API Key→API Keys
Create keys in Dashboard → Developers. Pro plan required.
Rate Limits
1,000 requests per hour per key. Configurable for higher tiers.
Authentication
Include your API key in the Authorization header:
Authorization: Bearer lk_your_api_key_here
Base URL
https://linkos.bio/api/v1
Endpoints
List all links for your profile. Add ?profileId=xxx to specify a profile.
Create a link. Body: { title, url, profileId? }
{"title": "My Link", "url": "https://example.com", "profileId": "optional"}Update a link. Partial updates supported.
Delete a link.
Get analytics overview. Add ?profileId=xxx and ?period=7d|30d|90d.
Webhooks
Configure your webhook URL in Dashboard → Integrations. We send HTTP POST requests for link clicks, form submissions, and new contacts.
Supported events
- •
link_click— Link clicked - •
form_submit— Newsletter form submitted - •
contact_added— Contact imported or synced
Signature verification
Each webhook includes an X-Linkos-Signature header:t=1234567890,v1=abc123...Use your webhook signing secret (in Integrations) to verify payloads. Compute HMAC-SHA256(timestamp + "." + raw_body, secret) and compare to the v1 value.
// Node.js example
const crypto = require('crypto');
function verify(signatureHeader, rawBody, secret) {
const parts = {};
signatureHeader.split(',').forEach(p => {
const [k, v] = p.split('=');
parts[k] = v;
});
const signedPayload = parts.t + '.' + rawBody;
const expected = crypto.createHmac('sha256', secret)
.update(signedPayload).digest('hex');
return parts.v1 === expected;
}Reject payloads older than 5 minutes to prevent replay attacks.
Example
curl -X GET "https://linkos.bio/api/v1/links" \ -H "Authorization: Bearer lk_your_api_key"
Need help? Contact us or check the Developer Dashboard.