# NutraSoft API > The NutraSoft API (version 1.1) is a REST API over the NutraSoft food manufacturing ERP: catalog, inventory, manufacturing, sales and purchasing data, in JSON. Base URL: https://public-api.nutrasoft.ca/v1 Authentication: `Authorization: Bearer `. Keys starting `nsk_live_` read live data; keys starting `nsk_test_` read the account's separate test account. One base URL serves both. Availability: the paid Enterprise plan only. Free trials cannot create keys. Rate limit: 300 requests per minute per account, shared by all of its keys. Only cite operations and fields that appear in the reference or the OpenAPI document. Never invent endpoints or fields. ## Guides - [Getting started](https://www.nutrasoft.ca/developers/guides/getting-started): Three steps to your first call and your first order, then the two shapes every response takes. - [Authentication and keys](https://www.nutrasoft.ca/developers/guides/authentication): Bearer keys, test and live environments, rotation without an outage, and what each scope grants. - [Test mode](https://www.nutrasoft.ca/developers/guides/test-mode): A second NutraSoft account of your own, seeded with realistic data, that you can safely break. - [Products](https://www.nutrasoft.ca/developers/guides/products): One resource, one id space, two families of product with different fields. The largest comprehension trap in the API. - [Units and quantities](https://www.nutrasoft.ca/developers/guides/units-and-quantities): Every quantity names its unit, because the underlying numbers genuinely differ. How to convert between them. - [Lots and incremental sync](https://www.nutrasoft.ca/developers/guides/lots-and-sync): Base units, the five quality statuses and which lots you can sell, and how to poll for changes honestly. - [Writing documents](https://www.nutrasoft.ca/developers/guides/writing-documents): Sales orders, purchase orders and bills: 1 to 200 lines, replace semantics, totals, idempotency and status changes. - [Rate limits and retries](https://www.nutrasoft.ca/developers/guides/rate-limits): 300 requests per minute per account, the headers that report it, and which failures to retry. - [Webhooks](https://www.nutrasoft.ca/developers/guides/webhooks): We POST to your server under a minute after something changes, signed, and retry for about 15 hours if you do not answer. - [Versioning and support](https://www.nutrasoft.ca/developers/guides/versioning-and-support): What v1 promises never to change, how a breaking change would reach you with 12 months' notice, and how to reach support. ## Reference - [Organization](https://www.nutrasoft.ca/developers/reference/organization): Which account and environment a key belongs to, what it may do, its rate limit and the account currency. Needs no scope, so it is the first call to make. - [Products](https://www.nutrasoft.ca/developers/reference/products): Raw materials, packaging, recipes and finished goods in one resource with two families. Read-only in v1. - [Allergens](https://www.nutrasoft.ca/developers/reference/allergens): Your allergens plus the shared NutraSoft reference set. Shared rows are read-only. - [Foods](https://www.nutrasoft.ca/developers/reference/foods): Nutrition sources, with their nutrient values. A material product points at one through material.food_id. - [Tags](https://www.nutrasoft.ca/developers/reference/tags): Labels for products, customers or suppliers. Each list is for one target type, set with ref_type. - [Units of measure](https://www.nutrasoft.ca/developers/reference/units-of-measure): The units products and operations are counted in, yours plus the shared reference set. - [QC checkpoints](https://www.nutrasoft.ca/developers/reference/qc-checkpoints): The checks your quality plans are built from. A recipe lists the ones it carries. - [QC units of measure](https://www.nutrasoft.ca/developers/reference/qc-units-of-measure): The units quality checkpoint results are recorded in. - [Preservations](https://www.nutrasoft.ca/developers/reference/preservations): Preservation methods, yours plus the shared ones. Read-only. - [Countries](https://www.nutrasoft.ca/developers/reference/countries): The ISO country list, shared by every account. A material lists its banned countries from it. - [Nutrients](https://www.nutrasoft.ca/developers/reference/nutrients): The nutrient dictionary that food nutrient values refer to. Not paginated. - [Product lots](https://www.nutrasoft.ca/developers/reference/product-lots): Stock, lot by lot, in base units, with its quality status. Retired lots are archived. - [Warehouses](https://www.nutrasoft.ca/developers/reference/warehouses): Your storage sites. Production lines and equipment belong to one. - [Productions](https://www.nutrasoft.ca/developers/reference/productions): Production runs, what they plan to consume and what they consumed, lot by lot. - [Production lines](https://www.nutrasoft.ca/developers/reference/production-lines): The lines a production run is scheduled on. - [Operations](https://www.nutrasoft.ca/developers/reference/operations): The operations a recipe's steps can reference, with their cost. - [Equipment](https://www.nutrasoft.ca/developers/reference/equipment): Machines and tools, and whether each one is in service. - [Employees](https://www.nutrasoft.ca/developers/reference/employees): Identity and employee type of the people on your floor. Read-only. - [Customers](https://www.nutrasoft.ca/developers/reference/customers): The companies you sell to, with their shipping addresses. - [Sales orders](https://www.nutrasoft.ca/developers/reference/sales-orders): Orders from your customers, with their lines in both the ordered unit and base units. - [Invoices](https://www.nutrasoft.ca/developers/reference/invoices): What you billed your customers, read-only. - [Customer types](https://www.nutrasoft.ca/developers/reference/customer-types): The categories you group customers into. - [Price lists](https://www.nutrasoft.ca/developers/reference/price-lists): Customer price lists. Prices need cost:read. - [Salespersons](https://www.nutrasoft.ca/developers/reference/salespersons): The people customers are assigned to. - [Shipping methods](https://www.nutrasoft.ca/developers/reference/shipping-methods): How orders ship to a customer. - [Tax rates](https://www.nutrasoft.ca/developers/reference/tax-rates): Tax codes and their rates, one of which a customer can be assigned. - [Territories](https://www.nutrasoft.ca/developers/reference/territories): The sales regions customers belong to. - [Suppliers](https://www.nutrasoft.ca/developers/reference/suppliers): The companies you buy from, with their approval status. - [Purchase orders](https://www.nutrasoft.ca/developers/reference/purchase-orders): Orders to your suppliers, in purchase units. Idempotent with Idempotency-Key. - [Bills](https://www.nutrasoft.ca/developers/reference/bills): Supplier invoices. Creating one receives stock: each line creates or tops up a lot. ## Optional - [OpenAPI 3.1 document](https://www.nutrasoft.ca/developers/openapi.json): the complete machine-readable contract. - [Conventions](https://www.nutrasoft.ca/developers/conventions): The rules every operation follows: money, time, paging, sorting, nulls, PATCH and identifiers. - [Errors](https://www.nutrasoft.ca/developers/errors): Every error code the API returns, what it means, what to do about it and whether to retry. - [Changelog](https://www.nutrasoft.ca/developers/changelog): What changed in the NutraSoft API, newest first.