ProposalsProposals

API & integrations

Beta

Make proposals where you already work

Ask ChatGPT or Claude for a proposal in the middle of a conversation, or let your CRM start one through Zapier, Make or n8n. Proposals writes the draft with the same engine, brand and checks as the app, and hands back the link. The email stays yours to write.

Integrations are in beta and switched on per team. If you don't see Settings → Integrations in your account, write to support@proposals.co and we'll turn it on.

Start a proposal from three places

What it looks like in ChatGPT

A shortened, typical exchange. The question comes from Proposals; the email is written by ChatGPT and sent by you.

  1. You

    Make a proposal for Lila Flowers from these call notes. Six pages, $9,000, half upfront and half on delivery. The contact is Anna Novak.

  2. ChatGPT

    I've started the draft. One question from Proposals first: your notes also mention $12,000. Which amount is current?

  3. You

    $9,000. The $12,000 was the version with product photography.

  4. ChatGPT

    The draft is ready: a six-page store with a delivery-date picker and launch support, $9,000 net, 50% upfront. Nothing blocks publishing. Here's the preview in your Proposals account. Should I publish it?

  5. You

    Publish it and write Anna a short email with the link.

  6. ChatGPT

    Published. Here's a draft email to Anna with the link. Send it from your inbox, then tell me, and I'll mark the proposal as sent.

Proposals never sends the email. You send it from your own mailbox, and you see the proposal in your account like any other.

What stays in your control

Permissions, in plain words

You pick them when you create an API key or approve a connector. A key or connection never has more rights than the person who set it up.

Read brandsbrands:read
See your brands, so the proposal goes out from the right one.
Read proposalsproposals:read
See the status, questions, key facts and link, and whether the client opened or accepted.
Create and changeproposals:write
Create proposals, answer their questions, ask for revisions and mark them as sent.
Publishproposals:publish
Make a proposal's link live or take it down. Off unless you turn it on.

Limits, in plain words

For developers

A REST API with API keys for automations and your own code, and an MCP server with OAuth for assistants. Every POST takes an Idempotency-Key, so a retried request never creates a second proposal.

REST API
https://api.proposals.co/api/public/v1
MCP server
https://api.proposals.co/mcp
OpenAPI
https://api.proposals.co/api/public/v1/openapi.json

Create a proposal

curl -X POST https://api.proposals.co/api/public/v1/proposals \
  -H "Authorization: Bearer $PROPOSALS_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: crm-deal-731-create" \
  -d '{
    "client": {
      "name": "Lila Flowers",
      "contact": { "name": "Anna Novak", "email": "anna@lila-flowers.example" }
    },
    "context": "Call notes: six-page store, delivery-date picker, launch in November...",
    "pricing": { "amount": 9000, "currency": "USD", "tax_basis": "net", "billing": "one_off" },
    "external_reference": "crm-deal-731"
  }'

Response

202 Accepted
{ "id": 123, "status": "generating", "next_poll_after_ms": 4000, ... }
Full API reference →

Setup guides

Step by step, from connecting to your first published proposal.

Questions about integrations

Start today

Send your next proposal as a page your client can say yes to

Paste the notes, review the draft, send one link.

Free for 14 days · 3 proposals included · No card needed