Developers
One endpoint. Endless possibilities.
The Nori GraphQL API automates every workflow: create invoices and proposals, sync customers and time, wire Nori into your CRM or ERP.
- Create invoices automatically
- Proposal → invoice in one call
- Sync customers & time
- Connect to your CRM/ERP
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.
-
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.
-
Create a token
Open your profile in Nori and the "API tokens" tab. Create a personal token – it starts with nori_ and is shown only once. Copy it right away.
-
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.
Documentation
Your way into the docs
The full API reference is your fundamental starting point – plus the guides to get you going.
API
The Nori API is a GraphQL API – a single endpoint through which you request exactly the data you need and trigger the actions you want.
Examples
Your first request
Authentication is via a Bearer token (prefix nori_) in the Authorization header. From a connectivity check to your first write.
curl https://api.noridocs.com/graphql \
-H "Authorization: Bearer nori_your_token" \
-H "Content-Type: application/json" \
-d '{ "query": "{ noriPing }" }'
query {
noriInvoices(status: "open") {
data {
id
number
status
due_date
customer { name }
}
}
}
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 schema, write queries and mutations and set your Bearer token – live against the real API.
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.