Create offer
Create an offer for an application in the Offer stage from your offer form fields.
POST https://cotlet.dev/api/v1/ashby/applications/{application_id}/offers
Fills the Offer Details form with the values you give, keyed by field title as set under Admin > Offers > Offer Custom Fields, and submits it. The application must be in the Offer stage. With request_approval set it also submits the approval request, which notifies the approvers; with approvals on, no letter can go out until every step is done. Needs Organization Admin, or the permissions Can See Candidate Profiles, Can Add/Edit Candidates and Can See Private Fields. By default you confirm each call; you can switch that off for this tool.
Parameters
| Name | Type | Description |
|---|---|---|
| application_id string required | string | Application ID from list_applications or get_candidate. |
| fields object required | object | Offer form values keyed by field title, for example {"Base salary": "95000"}. |
| opening_id string | string | Opening ID, required when your organization turned on Require Openings for Hires. |
| request_approval boolean | boolean | Submit the approval request after creating. Default: false. |
Request
curl -X POST https://cotlet.dev/api/v1/ashby/applications/9c41b7a2-6e03-4d58-a1f9-3b8d25e07c64/offers \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"fields":{"Base salary":"95000","Start date":"2026-11-16"},"request_approval":true}' result = client.call("ashby", "create_offer", {"application_id":"9c41b7a2-6e03-4d58-a1f9-3b8d25e07c64","fields":{"Base salary":"95000","Start date":"2026-11-16"},"request_approval":True}) const result = await cotlet.call('ashby', 'create_offer', {"application_id":"9c41b7a2-6e03-4d58-a1f9-3b8d25e07c64","fields":{"Base salary":"95000","Start date":"2026-11-16"},"request_approval":true}); cotlet call ashby create_offer --data '{"application_id":"9c41b7a2-6e03-4d58-a1f9-3b8d25e07c64","fields":{"Base salary":"95000","Start date":"2026-11-16"},"request_approval":true}' Example response
{
"offer_id": "6b3e90d4-1f87-4a52-8c06-d94a7e215b03",
"application_id": "9c41b7a2-6e03-4d58-a1f9-3b8d25e07c64",
"fields": {
"Base salary": "95000",
"Start date": "2026-11-16"
},
"approval_requested": true,
"approvers": [
"Hiring Manager",
"Finance"
]
}