---
title: "Generate an offer"
method: POST
path: "/v3/ai-sdr/offers/generate"
tags: ["AI SDR Offers"]
---

# Generate an offer

`POST /v3/ai-sdr/offers/generate`

<Warning>
  **Coming soon.** This endpoint will be available by early July 2026.
</Warning>

<small>_Requires the `ai-sdr:write` scope (or a broader one that includes it)._</small>

Generates an offer from a prompt or company URL, optionally seeded with previously uploaded attachments. The generated offer is persisted directly — clients do not need a separate create call.

Returns a background job to poll via `GET /v3/background-jobs/{jobId}`; on completion its `jsonDataResult` carries the generated offer (`offerId` plus the same company-context fields returned by `GET /v3/ai-sdr/offers/{id}`).

Requires the AI SDR feature on the caller's team.

## Request body

- object
  - `prompt` string, required — Prompt or company URL to seed the generation
  - `attachmentIds` integer[] — Ids of attachments previously uploaded via `POST /v3/ai-sdr/offers/generation-attachments` (max 10)
  - `providerLLM` 'claude' | 'openAi' | 'gemini' | 'mistral' — LLM provider to generate with. Defaults to `claude` when omitted.

## Response `202`

Generation accepted; poll the returned job for progress and the generated offer

- object
  - `jobId` string, uuid, required — Background job id; poll `GET /v3/background-jobs/{jobId}`.

## Other responses

- `400` — Request body validation failure
- `401` — Unauthorized. The response body is empty; check the `WWW-Authenticate` header for the expected scheme.
- `403` — AI SDR feature is not available for the caller's team
- `502` — Upstream AI SDR service failure while starting the generation

---

[API](https://skmtc.net/reply/apis/reply-api.md) · [All operations](https://skmtc.net/reply/apis/reply-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/reply/reply-api/revisions/1c3d32eaf95e/schema)
