---
title: "Create a greeting"
method: POST
path: "/link_greetings"
tags: ["Personal links"]
---

# Create a greeting

`POST /link_greetings`

## Request

- Base URL: `https://api.meetdarwin.ai/v1`
- URL: `https://api.meetdarwin.ai/v1/link_greetings`
- Auth: HTTP bearer

Requires the `agent:write` scope.

## Headers

- `Idempotency-Key` string

## Request body

- LinkGreetingInput
  - `name` string: What your team calls it.
  - `text` string: What the chat says. Put a person's details in braces with words for when the link has none: {first|there}, {company|your team}, {title}, {last}. A field with no fallback is left out with the space before it.
  - `buttons` object[]: Up to four reply buttons. They replace the page's own; an empty list keeps the page's.
    - `label` string, required: What the reply button says. Fields allowed, e.g. "Pricing for {company|your team}".
    - `message` string: What a click sends as the visitor; the label when left out.
  - `agent_note` string, nullable: What the agent should know about people you send this to, e.g. why you reached out. Fields allowed. Null or empty removes it.

## Response `201`

OK

- LinkGreeting
  - `id` string, required
  - `object` 'link_greeting', required
  - `name` string, required
  - `text` string, required
  - `buttons` object[], required
    - `label` string, required
    - `message` string, required
  - `agent_note` string, nullable, required: What the agent is told about people shown this greeting.
  - `fields` string[], required
  - `preview` object, required
    - `with_details` string, required: Filled in for a sample person (Jane Cooper, VP of Operations at Acme).
    - `without_details` string, required: What someone sees when the link carries none of their details.
    - `buttons` string[], required
  - `links` integer, required: How many links use it.
  - `results` object, required: The last 30 days: people who opened it, how many of them chatted, and how many booked. Your team's and test visits are left out.
    - `days` integer, required
    - `visits` integer, required
    - `chats` integer, required
    - `meetings` integer, required

## Other responses

- `400`: Invalid request (`invalid_request`, `unsupported_version`).
- `401`: Missing or invalid key (`authentication_required`, `invalid_api_key`).
- `402`: The workspace must add a card before the API can be used (`payment_required`).
- `403`: The key lacks the scope (`insufficient_scope`), the feature is off (`feature_disabled`), or the workspace's plan doesn't include it (`plan_required`, with `required_plan`).
- `404`: No such object in this workspace (`not_found`).
- `409`: Conflicts with the current state (`conflict`, `idempotency_key_in_use`), or the change would leave a live agent with no calendar or live form (`goal_required`).
- `422`: Refused by a rule (`unprocessable`, `idempotency_key_reused`).
- `429`: Rate limited (`rate_limited`) or a monthly allowance used (`quota_exceeded`); see Retry-After.

## Changes

- **2026-10-20** `f93b0bcb454a`: 24 info
  - added the optional property `feature` to the response with the `400` status
  - added the optional property `feature` to the response with the `401` status
  - added the optional property `feature` to the response with the `402` status
  - added the optional property `feature` to the response with the `403` status
  - …20 more

[Operation history](https://skmtc.dev/meetdarwin/apis/darwin-api/changes/link_greetings/post.md)

---

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