Developers

One endpoint. Endless possibilities.

The Nori GraphQL API makes every workflow automatable: create invoices and proposals, sync customers and time, wire Nori into your CRM or ERP. One token, the full schema self-documenting.

  • Create invoices automatically
  • Proposal → invoice in one call
  • Sync customers & time
  • Connect to your CRM/ERP
graphql
Request
query {
  noriInvoices(status: "open") {
    data { number due_date customer { name } }
  }
}
Response
{
  "data": {
    "noriInvoices": {
      "data": [
        { "number": "2026-0042",
          "due_date": "2026-07-15",
          "customer": { "name": "ACME GmbH" } }
      ]
    }
  }
}

API access

How to get access – in three steps

From zero to your first authenticated request. Everything you need, in the right order.

  1. 1

    1. Activate the Team plan

    API access is part of the Team plan. If your team is on a smaller plan, switch to Team to unlock it.

  2. 2

    2. Create a token

    Open your profile in Nori and the "API tokens" tab. Create a personal token – it starts with nori_, is bound to you and your team, and is shown only once. Copy it right away.

  3. 3

    3. Authenticate

    Send the token as a Bearer in the Authorization header to the GraphQL endpoint. From here you are talking to the API – the fastest way to test it is the playground.

Examples

Your first request

Authentication is via a Bearer token (prefix nori_) in the Authorization header. From a connectivity check to your first write.

Test the connection
curl https://api.noridocs.com/graphql \
  -H "Authorization: Bearer nori_your_token" \
  -H "Content-Type: application/json" \
  -d '{ "query": "{ noriPing }" }'
Query open invoices
query {
  noriInvoices(status: "open") {
    data {
      id
      number
      status
      due_date
      customer { name }
    }
  }
}
Create a customer
mutation {
  noriCreateCustomer(input: {
    name: "ACME Ltd"
    tax_id: "GB123456789"
    city: "London"
  }) {
    id
    customer_number
    name
  }
}

What the API covers

The resources you can read and write

Every resource is secured individually through scopes on the token – the token can only do what you allow.

Invoices
Query invoices, filter by status and create new ones. Scope: invoice.read / invoice.write.
Proposals
Read proposals, filter and automate the lifecycle. Scope: proposal.read / proposal.write.
Customers
Create, search and update customers and contacts. Scope: customer.read / customer.write.
Time tracking
Query time entries, time streams and pools. Scope: time_entry.read, time_stream.read.
Documents
Read composed documents and create them via mutation. Scope: document.read / document.write.
Products
Query and maintain products and services – the basis for line items on proposals and invoices. Scope: product.read / product.write.

Try it live

Explore the schema in the playground

Browse the full schema, write queries and mutations and set your Bearer token – all live against the real API. The complete reference is in the API documentation.

Want schema autocomplete? Open it in Apollo Studio

Ready to get started?

Activate the Team plan, generate your token in your profile and fire off your first query.

Coming soon

Join the waitlist

Be the first to know when we open registrations again. We'll only email you when there's news.

  • One email when we launch.
  • Unsubscribe anytime.
Cancel anytime Hosted in the EU GDPR-compliant No credit card required