Developers

A URL shortener for developers that behaves predictably

A URL shortener for developers should behave the same on every request: a CTAurl link answers HTTP 302 with the destination exactly as saved, and a missing link answers 404, not cached. A QR code set to ask for location shows a consent page first.

Last reviewed 27 October 2026 by the CTAurl team

$ curl -I https://buy-it.now/sneaker
HTTP/2 302
location: https://shop.abc.yz/sneaker?utm_source=sms

$ curl -I https://buy-it.now/no-such-link
HTTP/2 404
cache-control: no-store

Illustration of the documented behaviour; your destination will differ.

Editing a destination
Real product screen · sample data

In apps and emails

Short links you can change after the release

A CTAurl link in an app build, a transactional email template or an SMS can point somewhere new later without shipping again. You change the destination in the CTAurl workspace, and the change applies to the very next request. The API, coming soon, will not change destinations.

A cat at a café table reads a social post with the link read-it.now/ocean-brief.

Tracking

Does the query string survive the redirect?

The query string survives the redirect. CTAurl stores the destination as you paste it, apart from standard URL clean-up, and returns it as saved in the Location header, so UTM tags and your own parameters arrive intact. The click is recorded after the redirect is sent.

A plain server-side 302 also keeps link previews working. Apple's documentation says Messages follows server-side redirects but not meta or JavaScript redirects (Apple, TN3156). Preview fetchers request the link too: Slack's developer docs say its servers fetch every URL posted in a message. Those requests can appear in a raw count, which is why CTAurl counts requests, not people.

Developer notes

Frequently asked questions

Is there an API or SDK?

A CTAurl REST API is coming soon: it is built but not switched on yet. When it is, it will create, read and disable links and create, read and restyle QR codes, with bearer tokens from Settings and 60 requests a minute per workspace. Listing links, changing a destination and reading click counts through the API are not available yet, and there are no SDKs or webhooks. The API page has the details.

Make a link you can depend on