Create and list links
POST /v1/links accepts url, optional domain, optional customCode, and optional expiresAt. GET /v1/links returns the newest links for the authenticated workspace.
-
POST /v1/links -
GET /v1/links?limit=50
PUBLIC API DOCUMENTATION
Authenticate, create links, control their lifecycle, and inspect account usage with JSON requests.
All authenticated requests use a workspace API key. Store keys in a server-side secret manager or environment variable and never ship them in browser code.
POST /v1/links accepts url, optional domain, optional customCode, and optional expiresAt. GET /v1/links returns the newest links for the authenticated workspace.
POST /v1/linksGET /v1/links?limit=50Use PATCH to pause or resume a link. Expire now is irreversible and future redirects return HTTP 410. Delete removes the link and redirect record.
PATCH /v1/links/:idPOST /v1/links/:id/expireDELETE /v1/links/:idURLMe uses conventional HTTP statuses for invalid requests, authentication, unavailable service access, unsafe destinations, conflicts, and plan limits.
400 invalid request401 authentication required402 service unavailable422 unsafe destination429 plan limit reachedWORKING EXAMPLE
Replace the environment variable with an active workspace key and run the request from server-side code.
const response = await fetch("https://api.urlme.link/v1/links", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.URLME_API_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
url: "https://example.com/campaign/welcome",
expiresAt: "2026-12-31T23:59:59Z"
})
});READY TO CONNECT?