---
title: "Create a short link"
method: POST
path: "/v1/links"
tags: ["Links"]
---

# Create a short link

`POST /v1/links`

## Request

- Base URL: `https://app.getshareglow.com`
- URL: `https://app.getshareglow.com/v1/links`
- Auth: HTTP bearer

Creates a short link with its own preview (`og`). Extra `variants` start an A/B test (Starter and up).

## Request body

- object
  - `destination` string, uri, required
  - `slug` string
  - `domainId` string
  - `utm` object
  - `og` LinkOg
    - `title` string
    - `description` string
    - `imageUrl` string, uri
    - `templateId` string
    - `params` object
  - `expiresAt` string, date-time
  - `variants` object[]
    - `title` string
    - `description` string
    - `imageUrl` string, uri
    - `templateId` string
    - `params` object

## Response `201`

Created link

- object
  - `id` string, required
  - `slug` string, required
  - `shortUrl` string, uri, required
  - `destination` string, uri, required
  - `utm` object, nullable
  - `variants` object[]

## Other responses

- `400`: Validation failed (`bad_request`, `invalid_url`, ...).
- `401`: Missing, unknown or revoked API key.
- `402`: A plan cap or feature gate blocked the call (`plan_limit_exceeded`; `details` names the resource and limit).
- `403`: The API key is valid but lacks the scope this endpoint needs (images, templates, scan, links, monitors or ai).
- `413`: The JSON body is over 1 MB (`payload_too_large`).
- `429`: Daily call limit reached. Retry after the `Retry-After` seconds.

---

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