---
title: "Create a sponsor"
method: POST
path: "/api/v1/sponsors"
tags: ["Records"]
---

# Create a sponsor

`POST /api/v1/sponsors`

## Request

- Base URL: `https://api.agendaforge.app`
- URL: `https://api.agendaforge.app/api/v1/sponsors`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

Creates a sponsor on an event owned by the key's organization and fires the sponsor.added trigger.

## Headers

- `Idempotency-Key` string

## Request body

- CreateSponsorRequest
  - `eventId` string, required: The event the sponsor belongs to; must be owned by the key's organization.
  - `name` string, required
  - `website` string
  - `description` string
  - `hasBooth` boolean
  - `tierId` string: A sponsor tier id scoped to the same event; validated server-side.

## Response `200`

The created sponsor.

- Sponsor: Emitted identically by webhook deliveries, trigger samples, and the create response.
  - `id` string
  - `eventId` string
  - `orgId` string
  - `name` string
  - `tierId` string, nullable
  - `tierName` string, nullable
  - `website` string, nullable
  - `description` string, nullable
  - `logoUrl` string, nullable
  - `logoLightUrl` string, nullable
  - `hasBooth` boolean
  - `assignedPortal` string, nullable
  - `primaryContactId` string, nullable
  - `primaryContact` ContactSummary
    - `id` string
    - `firstName` string
    - `lastName` string
    - `email` string
    - `phone` string, nullable
    - `company` string, nullable
    - `jobTitle` string, nullable
  - `customFields` object, nullable
  - `submissionId` string, nullable
  - `createdAt` string: ISO-8601 UTC timestamp.

## Other responses

- `400`: A required field is missing or invalid, an unknown event was supplied, or a referenced record is not owned by the key's organization.
- `401`: The API key is missing, malformed, invalid, expired, or revoked.
- `403`: The API key is valid but does not include the public_api scope. Create a key with the public_api scope in Settings > API Tokens.
- `404`: No such endpoint under /api/v1. The message lists the valid endpoints.
- `409`: The Idempotency-Key was already used on a different endpoint within the 24 hour retention window.
- `429`: The fixed window for this API key (120 requests per minute) or IP (30 per minute, unauthenticated) is exhausted. Wait Retry-After seconds and retry.
- `500`: An unexpected server failure. The body still follows the JSON error contract; retry with exponential backoff.
- `default`: Any other failure, including 404 NOT_FOUND for an unknown path and transient 5xx errors. Always the same JSON error contract.

---

[API](https://skmtc.dev/agendaforge/apis/agendaforge-public-rest-api.md) · [All operations](https://skmtc.dev/agendaforge/apis/agendaforge-public-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/agendaforge/apis/agendaforge-public-rest-api/revisions/b8956ce1e5f3?raw)
