Skip to main content

Links API

Links endpoints exposed by the Devotel CPaaS API Base path: /api/v1/links Endpoint count: 12
GET /api/v1/links/
List the tenant’s short links with cursor-based pagination and an optional campaign filter.
string
Opaque cursor for the next page (from previous response meta.pagination.cursor)
integer
Number of items per page (1–200, default 25)
string
Filter links by the campaign they were attributed to.

GET /api/v1/links/{id}/stats
Click statistics for a single short link — totals and per-day breakdown.
string
required
Short link identifier.

GET /api/v1/links/insights
Tenant-wide URL-shortener insights — summary KPIs, top-N links, and a per-day click timeline in a single call.
integer
Trailing window in days to aggregate clicks over (1–90, default 7).
integer
Number of top links to return ranked by clicks (1–50, default 10).
string
Restrict insights to links attributed to this campaign.

List landing pages

GET /api/v1/links/landing-pages
List the tenant’s landing pages with cursor-based pagination and an optional lifecycle-status filter.
string (enum: draft|published|archived)
Filter by lifecycle status.
string
Opaque cursor for the next page (from previous response meta.pagination.cursor).
integer
Number of items per page (default 25; silently capped at 200).

Get a landing page

GET /api/v1/links/landing-pages/{id}
Fetch a single landing page by id.
string
required
Landing page identifier.

Get landing page analytics

GET /api/v1/links/landing-pages/{id}/analytics
Per-page visits + conversions rolled up by campaign and by originating message, plus the most recent conversions.
string
required
Landing page identifier.
integer
Max rows per breakdown (by campaign / by message), 1–50, default 10.

POST /api/v1/links/
Create a branded short link that redirects to a destination URL and records click analytics.
string
required
Destination URL the short link redirects to. Must be a valid absolute URL.
string
Optional campaign to attribute clicks to for analytics roll-ups.

Create a landing page

POST /api/v1/links/landing-pages
Create a draft no-code landing page. content is the builder block list, re-validated in depth by the service. The page starts in draft and only mints a trackable short URL once published.
string
required
Human-readable page title.
string
Optional URL slug. Auto-derived from the title when omitted; unique per tenant.
any
Builder block list (page structure). Validated in depth by the service.
string
Optional campaign to attribute visits/conversions to.

Publish a landing page

POST /api/v1/links/landing-pages/{id}/publish
Publish a landing page and mint its trackable short URL. Transitions status to published and returns the page with short_url populated.
string
required
Landing page identifier.

Update a landing page

PATCH /api/v1/links/landing-pages/{id}
Patch a landing page’s title, builder content, campaign attribution, or archive it. Every field is optional; content is re-validated in depth when present.
string
required
Landing page identifier.
string
Human-readable page title.
any
Builder block list (page structure). Validated in depth by the service.
string
Campaign to attribute visits/conversions to. Pass null to clear.
string (enum: draft|archived)
Move the page between draft and archived.

DELETE /api/v1/links/{id}
Delete a short link. The short code stops resolving immediately.
string
required
Short link identifier.

Delete a landing page

DELETE /api/v1/links/landing-pages/{id}
Delete a landing page; its visit/conversion events cascade. Returns 204 on success.
string
required
Landing page identifier.