Nusii API

Proposals, built into your own software

Create proposals from your CRM, your product or your internal tools, send them, and hear back the moment a client opens or signs. A REST API with webhooks and official SDKs, included on every Nusii plan.

SDKs for Ruby, PHP, JavaScript, Python and Go, plus an OpenAPI spec.

“It took only 2 hours until we had the ability to push this customer data from our CRM to Nusii. This was really easy.”

Christian Asche Christian Asche, Co-founder & CEO, Coveto Read how Coveto connected their CRM →

Why use the API

Start the proposal where the deal already lives

By the time a deal needs a proposal, its details already live somewhere: the client in your CRM, the scope in your product, the price in your own system. Typing them into a proposal again takes time, and it’s how typos end up in front of clients.

With the Nusii API, those systems create the proposal for you, from your template, with the right client and pricing. Webhooks then tell them when it’s sent, viewed and signed, so your CRM, your project tool and your invoicing stay in step without anyone copying anything across.

What you can build

Connect Nusii to the way you already sell

From a few lines in your CRM’s automations to a full integration with your product. A few ideas to get you started:

CRM

Proposals that start in your CRM

When a deal reaches the proposal stage, create the draft from your template with the client attached. It’s waiting in Nusii for you to polish and send.

# When a deal reaches "Proposal" in your CRM
curl https://app.nusii.com/api/v2/proposals \
  -H "Authorization: Token token=$NUSII_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"proposal": {"title": "Website redesign",
        "client_id": 88123, "template_id": 1187}}'
Your product

Quotes priced by your own system

Turn what a customer picks in your configurator or order form into line items, so every quote uses the prices your system already knows.

# One line item per option they picked: $12,500.00
curl https://app.nusii.com/api/v2/sections/456/line_items \
  -H "Authorization: Token token=$NUSII_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"line_item": {"name": "Annual license, 25 seats",
        "amount": 1250000}}'
Webhooks

Act the moment they sign

Nusii calls your endpoint when a proposal is accepted. Mark the deal won, open the project and send the deposit invoice, all on their own.

// Your endpoint, subscribed to proposal_accepted
app.post('/hooks/nusii', (req, res) => {
  const { event_name, proposal } = req.body
  if (event_name === 'proposal_accepted') {
    crm.markWon(proposal.client_email,
                proposal.accepted_total_formatted)
  }
  res.sendStatus(200)
})
Reporting

Your pipeline in your own dashboard

Pull proposals by status and date, with their activity, into your BI tool or team dashboard. Coveto uses it to flag proposals that are getting old.

# Everything accepted since the start of the quarter
curl "https://app.nusii.com/api/v2/proposals?status=accepted\
&accepted_at_after=2026-10-01" \
  -H "Authorization: Token token=$NUSII_API_KEY"

Webhooks

Hear back the moment it happens

Register an endpoint through the API, or in Nusii under Settings → Integrations, and Nusii sends it the details whenever one of these happens. No polling, no waiting.

Proposals

  • Created proposal_created
  • Updated proposal_updated
  • Sent proposal_sent
  • Viewed by the client proposal_activity_client_viewed_proposal
  • Accepted proposal_accepted
  • Rejected proposal_rejected
  • Deleted proposal_destroyed

Clients

  • Created client_created
  • Updated client_updated
  • Deleted client_destroyed
Set up your first webhook →
POST https://acme.dev/hooks/nusii proposal_accepted
{
  "event_name": "proposal_accepted",
  "proposal": {
    "id": 48213,
    "title": "Website redesign",
    "status": "accepted",
    "accepted_total_formatted": "$8,400.00",
    "client_email": "jane@acme.com",
    "client_business": "Acme Inc"
  }
}
Every delivery is a POST with the event’s name and the proposal or client it’s about. A proposal comes with its client’s details. A few of the fields are shown here.

The building blocks

Clients, proposals, sections, line items, taxes, activity and webhooks, plus your templates, users and themes. Every part of a proposal is one request away.

Proposals

Create one from scratch or from a template, update it, archive it, and send it to one or more recipients with your own subject and message.

  • POST /proposals
  • PUT /proposals/:id/send_proposal

Clients

Create, update, find and delete clients, so Nusii always has the same contacts as your CRM.

  • GET /clients
  • POST /clients

Sections and line items

Add and change the content and pricing of any proposal, section by section and line by line.

  • POST /sections
  • POST /sections/:id/line_items

Taxes

Add the taxes a proposal needs, like VAT or sales tax, and Nusii does the math on the total.

  • POST /proposals/:id/taxations

Activity

Every email open, view, PDF download, signature and payment, for one proposal or for everything a client has done.

  • GET /proposal_activities

Webhooks

Subscribe your endpoints to the proposal and client events, and remove them when you no longer need them.

  • POST /webhook_endpoints

Get started

Your first request in a minute

  1. 1

    Get an API key

    Create one in Settings → API and send it with every request. Building an app for other Nusii users? Register it there for OAuth instead.

    Authorization: Token token=YOUR_API_KEY
  2. 2

    Make your first request

    Check that your key works by asking the API which account it belongs to.

    curl https://app.nusii.com/api/v2/account/me \
      -H "Authorization: Token token=YOUR_API_KEY"
  3. 3

    Pick your SDK

    Or skip the plumbing and install the client for your language. The API reference shows every call in each of them.

    npm install @nusii/nusii

Official SDKs

API, CLI or MCP?

Three ways in, one account

The CLI puts the API behind ready-made commands, and MCP lets AI assistants like Claude and ChatGPT draft proposals for you. Pick whichever fits the job, or use all three.

Compare API CLI MCP
How you use it From your own code Commands and scripts A conversation with your AI assistant
Best for Integrations with your CRM, product and internal tools Cron jobs, bulk imports and quick automations Drafting, rewriting and pipeline questions
Sending proposals From your code From the command line You review and send in Nusii
Who it suits Developers Developers and power users Your whole team

New to Nusii? Start in the app, connect it later

Set up your templates and branding in Nusii, then let your own systems fill them in. API access is included on every plan.

Create winning proposals →
Free 14-day trial 60-day money-back guarantee

Frequently asked questions

Questions about the Nusii API

What is the Nusii API?

A REST API for your Nusii account. Your own software can create clients and proposals, fill them in from your templates, send them and read their activity, and webhooks tell it when a proposal is sent, viewed, accepted or rejected.

Is the API included in my plan?

Yes. API access is included on every Nusii plan, with nothing extra to buy.

How do I get an API key?

Create one in Settings → API and send it in the Authorization header of every request. If you’re building an app for other Nusii users, register it there for OAuth instead, so they can approve access with their own login.

Can I create proposals from my templates?

Yes. Pass a template_id when you create a proposal and it starts with that template’s sections and pricing. From there you can change any section or line item before you send it.

Can I send proposals through the API?

Yes. Send a proposal to its client, or to several recipients at once, with your own subject and message.

Which webhooks can I subscribe to?

Proposals created, updated, sent, viewed by the client, accepted, rejected and deleted, and clients created, updated and deleted. See the full list above, or set one up in a couple of minutes.

Are there SDKs?

Yes, for Ruby, PHP, JavaScript and TypeScript, Python and Go, plus the Nusii CLI. They’re all open source on GitHub.

Is there an OpenAPI spec?

Yes, an OpenAPI 3.1 spec. Import it into Postman or Insomnia, or generate a client for a language we don’t have an SDK for yet.

Can I connect Nusii to other apps without writing code?

Yes. Zapier, Make, Pabbly Connect and Integrately connect Nusii to thousands of apps, and our CRM integrations work with HubSpot, Pipedrive, OnePageCRM and Less Annoying CRM. See all integrations.

What's the difference between the API, the CLI and MCP?

The API is for your own software. The CLI wraps it in ready-made commands for your terminal and scripts, and MCP lets AI assistants like Claude and ChatGPT report on your proposals and draft new ones.

Where can I get help?

The API reference covers every endpoint with examples in each language. Stuck anyway? Email us at support@nusii.com.

Unanswered questions? Email us at support@nusii.com.