Developer reference

arkgo API

Create and look up short links from any of our systems. Base URL: https://arkgo.net. All responses are JSON and CORS is enabled, so browser and server callers both work.

Authentication

Every request needs an API key sent as a bearer token. Keys are created by an admin on the API keys page in the dashboard and are shown once — store them as a secret in the calling app, never in client-side code. Revoked keys stop working immediately.

Authorization: Bearer arkgo_xxxxxxxxxxxxxxxxxxxxxxxx

Endpoints

POST/api/public/links

Create a short link. Returns 201 with the new link, or 409 if the slug is already taken.

FieldTypeNotes
destination_urlstring, requiredThe full URL the short link points at.
slugstring, optionalCustom short code (letters, numbers, . _ ~ -). Auto-generated if omitted.
domainstring, optionalShort-link host, e.g. arkgo.link. Defaults to the primary domain.
titlestring, optionalLabel shown in the dashboard.
tagsstring[], optionalTags for filtering in the dashboard.
expires_atISO date-time, optionalAfter this time the link stops resolving.
click_limitinteger, optionalLink stops resolving after this many clicks.
curl -X POST https://arkgo.net/api/public/links \
  -H "Authorization: Bearer $ARKGO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "destination_url": "https://arkassist.co.uk/support",
    "slug": "support",
    "title": "Support page",
    "tags": ["website"]
  }'
{
  "id": "8f0c...",
  "slug": "support",
  "short_url": "https://arkgo.link/support",
  "destination_url": "https://arkassist.co.uk/support",
  "qr_url": "https://arkgo.link/support?qr=1",
  "created_at": "2026-08-31T14:22:10.412Z"
}
GET/api/public/links

List the 100 most recent links, newest first. Add ?slug=support to look up one link.

curl "https://arkgo.net/api/public/links?slug=support" \
  -H "Authorization: Bearer $ARKGO_API_KEY"
{
  "links": [
    {
      "id": "8f0c...",
      "slug": "support",
      "destination_url": "https://arkassist.co.uk/support",
      "title": "Support page",
      "tags": ["website"],
      "click_count": 42,
      "is_active": true,
      "created_at": "2026-08-31T14:22:10.412Z",
      "short_url": "https://arkgo.link/support"
    }
  ]
}

QR codes

Every link has a QR view at https://arkgo.link/<slug>?qr=1. Scans made through it are counted separately from ordinary clicks, so you can tell print traffic apart from web traffic. Branded PNG and SVG downloads are available in the dashboard.

Errors

400 — invalid JSON body or field validation failed (details included).

401 — missing, unknown or revoked API key.

409 — that slug is already in use.

{ "error": "That slug is already in use" }