PUBLIC API v1
List products of the company
GET /api/v1/companies/{company_pk}/products/
Active products by default; pass `status=archived` or `status=all` for the rest. `search` matches name, SKU and description.
Permission: read_invoices · Direct link
Company-scoped. Account permissions, plan limits and document state still apply.
Path and query parameters
| Parameter | Location / type | Description |
|---|---|---|
company_category | query · string (uuid) | Not specified |
company_pkRequired | path · string (uuid) | Company's public id (primary key) |
ordering | query · "-created" | "-modified" | "-name" | "-price" | "created" | "modified" | "name" | "price"[] | Ordering * `name` - Name * `-name` - Name (descending) * `price` - Price * `-price` - Price (descending) * `created` - Created * `-created` - Created (descending) * `modified` - Modified * `-modified` - Modified (descending) |
page | query · integer | A page number within the paginated result set. |
page_size | query · integer | Number of results to return per page. |
search | query · string | Not specified |
status | query · "active" | "all" | "archived" | * `active` - Active * `archived` - Archived * `all` - All |
type | query · "GOODS" | "SERVICES" | * `GOODS` - Goods * `SERVICES` - Services |
unit | query · "days" | "hours" | "items" | "kilograms" | "liters" | "meters" | "square_meters" | * `items` - Piece * `hours` - Hour * `days` - Day * `kilograms` - Kilogram * `liters` - Liter * `meters` - Meter * `square_meters` - Square meter |
Responses
200 Response fields
application/json
| Field | Type / accepted values | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
countRequired | integer | Not specified | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
next | string (uri) | null | Not specified | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
previous | string (uri) | null | Not specified | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
resultsRequired | object[] | Not specifiedNested fields
|
400 Response fields
application/json
| Field | Type / accepted values | Description |
|---|---|---|
detailRequired | string | Not specified |
code | integer | Not specified |
type_ | string | Not specified |
fieldRequired | string | Not specified |
401 Response fields
application/json
| Field | Type / accepted values | Description |
|---|---|---|
detailRequiredRead only | string | Not specified |
403 Response fields
application/json
| Field | Type / accepted values | Description |
|---|---|---|
detailRequiredRead only | string | Not specified |
429 Rate limit exceeded. Wait for the Retry-After header before retrying.
Use the base URL https://api.norman.finance/api/v1. Sign up or log in to Norman to create an API key, then send it as a Bearer token. For an OpenAPI JSON file, contact support.