MeroLink API
Create a workspace key in Settings. Keys are displayed once, expire within 365 days, and can be revoked. Keep keys on your server, never in a public browser bundle. All requests are scoped to the key's workspace.
Authentication and limits
Authorization: Bearer ml_YOUR_KEY
120 requests per minute per key. Responses use 401 for missing scope/revoked key, 429 for rate limits, 409 for collisions or quota, and 400 for invalid fields.
Read links
GET /api/v1/links?limit=50&offset=0
Requires links:read. Follow nextOffset until null. Maximum 100 links per page.
Create or edit
POST /api/v1/links
Content-Type: application/json
{"title":"Summer offer","slug":"summer","destination":"https://example.com/offer","domain":"shared:b.merosms.com","tag":"Summer"}Requires links:write. Include id to edit a link in the same workspace. A live dedicated domain's UUID or "preview" may replace the shared domain. Password hashes are never returned.
Pause, archive or tag
PATCH /api/v1/links
Content-Type: application/json
{"id":"LINK_UUID","status":"paused","tag":"Summer"}Requires links:write. Status may be active, paused or archived. Unknown fields are rejected.
Analytics
GET /api/v1/links?mode=analytics&start=2026-10-01&end=2026-10-31
Requires analytics:read. Dates are inclusive Kathmandu calendar dates, up to 366 days. Optionally add id for one link. Daily unique estimates are not distinct people across the whole period.