---
title: "Create a link, QR code or website button that starts one published Hive automation. Instagram Ads sources are prepared from the published automation instead, and Hive says so."
method: POST
path: "/api/v1/tools/create_entry_point"
---

# Create a link, QR code or website button that starts one published Hive automation. Instagram Ads sources are prepared from the published automation instead, and Hive says so.

`POST /api/v1/tools/create_entry_point`

## Request

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

This reaches real people, so the person is asked before it runs. Their own AI client asks them. When the connection was made with Hive approvals switched on, the first call returns a single-use Hive approval link instead of acting, and the exact request is repeated with approvalToken and an Idempotency-Key once they approve it inside Hive.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `flowId` string, required: The published Hive automation it starts.
  - `accountId` string, required: The connected Hive account it belongs to.
  - `kind` 'referral_link' | 'qr_code' | 'website_button', required: What kind of entry point this is.
  - `name` string, required: What to call it.
  - `slug` string, required: Required unique slug: 1–64 lowercase letters, numbers or single hyphens.
  - `status` 'draft' | 'active' | 'disabled': Defaults to draft.
  - `config` object, required
    - `label` string, required: Required visible link, button or QR label.
    - `source` string
    - `medium` string
    - `campaign` string
    - `accessibleLabel` string
    - `allowedDomains` string[]: Website button domains; an empty list allows no websites.
    - `qr` object
      - `size` integer: 100–2000 pixels.
      - `foregroundColor` string: Six-digit hex color.
      - `backgroundColor` string: Six-digit hex color.
      - `logoDataUrl` string: Optional PNG, JPEG or WebP data URL, at most 256 KB.
      - `removeLogoBackground` boolean
  - `approvalToken` string: Single-use token returned by Hive after the owner approves this exact action.

## Response `200`

Tool result or approval challenge

- union
  - ToolResult
    - `data` unknown, required
    - `meta` object, required
      - `tool` string
      - `workspaceId` string, uuid
  - ApprovalChallengeResponse
    - `data` ApprovalChallenge, required
      - `confirmationRequired` unknown, required
      - `challengeId` string, uuid, required
      - `approvalToken` string, required: Secret, single-use token. Retry only after the human approves approvalUrl.
      - `approvalUrl` string, uri, required
      - `expiresAt` string, date-time, required
      - `warning` string
    - `meta` object, required

## 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)
