Skip to content
Linq

Create an invitation template

POST/v1/invitation_templates

Creates an invitation template: the name (and optionally the logo file) that fill the card, saved once, referenced by id on every send. The response’s ETag carries the version PUT will want in If-Match.

Errors

  • HTTP 403 code 2029: your brand is not approved for invitations of this shape (with/without a logo); raised with us, not self-service.
  • HTTP 422: field-level validation (name_required, too_long, brand_logo_not_png, logo_too_large).
  • HTTP 413 code 1073: the whole request body exceeds the ceiling: the logo may be at most 143,360 bytes raw.
Body ParametersForm DataExpand Collapse
name: string

REQUIRED. The brand name printed on the card; on-card copy, not an internal label. Empty is 422 name_required; over 200 bytes is 422 too_long.

ReturnsExpand Collapse
id: string

The template id (invt_…); what a send’s template_id references.

created_at: string
formatdate-time
name: string

The brand name printed on the invitation card.

updated_at: string
formatdate-time
version: number

Edit counter that only ever counts up, also returned as this resource’s strong ETag. Echo it in If-Match on the next PUT; a stale one is refused 412 rather than overwriting someone else’s edit.

formatint64

Create an invitation template

curl https://messages.api.linqapp.com/v1/invitation_templates \
    -H 'Content-Type: multipart/form-data' \
    -H "Authorization: Bearer $LINQ_AMB_API_KEY" \
    -F name=name
{
  "id": "invt_a4f2c718d0",
  "name": "Acme Rides",
  "has_logo": true,
  "version": 1,
  "created_at": "2026-08-10T09:00:00Z",
  "updated_at": "2026-08-10T09:00:00Z"
}
Returns Examples
{
  "id": "invt_a4f2c718d0",
  "name": "Acme Rides",
  "has_logo": true,
  "version": 1,
  "created_at": "2026-08-10T09:00:00Z",
  "updated_at": "2026-08-10T09:00:00Z"
}