---
title: "Prepare the exact Hive short-link address, destination, schedule, routing and tracking settings for review. Resolves current defaults without reserving an address or creating a link. Send its unchanged proposal to create_bio_short_link after the person reviews it."
method: POST
path: "/api/v1/tools/prepare_bio_short_link"
---

# Prepare the exact Hive short-link address, destination, schedule, routing and tracking settings for review. Resolves current defaults without reserving an address or creating a link. Send its unchanged proposal to create_bio_short_link after the person reviews it.

`POST /api/v1/tools/prepare_bio_short_link`

## Request

- Base URL: `https://hivepublish.com`
- URL: `https://hivepublish.com/api/v1/tools/prepare_bio_short_link`
- Auth: HTTP bearer

## Request body

- object
  - `destinationUrl` string, required: Where the short link goes. A full web address.
  - `title` string: A name for it inside Hive.
  - `slug` string: A custom ending, 3 to 64 letters, numbers, hyphens or underscores. Leave it out for a generated one.
  - `domain` string, nullable: An active branded domain owned by this workspace; otherwise use its Hive default.
  - `startsAt` string, nullable: Optional start time in ISO format.
  - `expiresAt` string, nullable: Optional expiry time in ISO format.
  - `routingRules` object[]
    - `id` string
    - `enabled` boolean
    - `kind` 'country' | 'referrer-platform' | 'device'
    - `operator` 'is' | 'is-not' | 'in'
    - `value` union
      - string
      - string[]
    - `action` 'route' | 'block' | 'alternate'
    - `alternateUrl` string
  - `tags` string[]
  - `campaignId` string, nullable: An existing campaign in this workspace; its tracking defaults are merged during preparation.
  - `socialPostId` string, nullable: An existing saved Publishing post you can access in this workspace.
  - `platform` string: Optional social network attribution.
  - `utm` object
    - `utm_source` string
    - `utm_medium` string
    - `utm_campaign` string
    - `utm_content` string
    - `utm_term` string

## Response `200`

Tool result

- ToolResult
  - `data` unknown, required
  - `meta` object, required
    - `tool` string
    - `workspaceId` string, uuid

## Other responses

- `400`: Invalid input
- `401`: Missing or invalid credential
- `403`: Missing workspace scope, role permission, or plan entitlement
- `409`: Idempotency conflict, replay, or request still in progress
- `429`: Rate limit exceeded

---

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