/v1/linksCreate links
Mint tracking links programmatically — one at a time, or five hundred in a transaction.
The Links API lives at /v1 and authenticates with a Links API key — Authorization: Bearer fk_live_…, minted on Dashboard → Links → API and shown exactly once. It's a separate surface from /api/v1; the gk_ key doesn't work here.
curl -X POST https://api.fictura.co/v1/links \
-H "Authorization: Bearer fk_live_..." \
-H "Content-Type: application/json" \
-d '{"name": "Spring drop", "destination_url": "https://apps.apple.com/app/id123", "slug": "springdrop"}'{
"ok": true,
"link": {
"slug": "springdrop",
"name": "Spring drop",
"url": "https://api.fictura.co/l/springdrop",
"destination_url": "https://apps.apple.com/app/id123"
}
}name and destination_url are the two required fields. slug is optional (one is generated) and must be 3–50 alphanumeric characters — no hyphens; a taken slug answers 409 slug_taken, a malformed body 400 invalid_body with an issues list. In the response, url is the short redirect (/l/<slug>) — the thing you put on the poster — and destination_url is where it points.
Bulk
curl -X POST https://api.fictura.co/v1/links/bulk \
-H "Authorization: Bearer fk_live_..." \
-H "Content-Type: application/json" \
-d '{"links": [
{"name": "Creator A", "destination_url": "https://apps.apple.com/app/id123"},
{"name": "Creator B", "destination_url": "https://apps.apple.com/app/id123"}
]}'POST /v1/links/bulk takes 1–500 links and runs as one transaction — all created or none, answering 201 {"ok": true, "created": n, "links": […]}. Beyond 500, split the batch.