---
title: "Create a short link"
method: POST
path: "/api/links"
---

# Create a short link

`POST /api/links`

## Request

- Base URL: `https://app.whooshly.co`
- URL: `https://app.whooshly.co/api/links`
- Auth: HTTP bearer

## Request body

- object
  - `destination` string, uri, required: http(s) URL
  - `slug` string
  - `title` string
  - `tags` string[]

## Response `201`

Created

- Link
  - `id` string
  - `title` string, nullable
  - `tags` string[]
  - `slug` string
  - `destination` string, uri: http(s) URL
  - `type` string
  - `active` boolean
  - `archivedAt` string, date-time, nullable

## Other responses

- `400`: Error — `error` is a stable code. Common: core_locked (account hasn't purchased — buy at the app), pro_required (feature needs Pro), slug_taken, limit_reached, not_found, rate_limited, invalid (see issues).
- `402`: Error — `error` is a stable code. Common: core_locked (account hasn't purchased — buy at the app), pro_required (feature needs Pro), slug_taken, limit_reached, not_found, rate_limited, invalid (see issues).
- `409`: Error — `error` is a stable code. Common: core_locked (account hasn't purchased — buy at the app), pro_required (feature needs Pro), slug_taken, limit_reached, not_found, rate_limited, invalid (see issues).

---

[API](https://skmtc.dev/whooshly/apis/whooshly-api.md) · [All operations](https://skmtc.dev/whooshly/apis/whooshly-api/llms.txt) · [OpenAPI document](https://skmtc.dev/whooshly/apis/whooshly-api/revisions/ccdcdffb18d5?raw)
