Skip to content

Items

Items

Product and service catalog management. Items can be referenced in invoices and include pricing and tax information.

The Item object

object

Attributes

idstring
namestring
descriptionstring
pricenumber

Per-unit net price (before tax). Always stores net price.

gross_pricenumber

Per-unit gross price (includes tax). Only present if user originally sent gross price.

metadata
Other attributes
classificationstring
tax_idsarray of strings
total_taxnumber
entity_idstring
deleted_atstring<date-time>
created_atstring<date-time>
updated_atstring<date-time>

Create a new item

POST/items

Create a new product or service item for use in invoices. Items can include pricing, tax information (inline or by reference), and unit details. All fields except name are optional.

Header parameters

entity_idstringoptional

Entity ID on which the request is made. Auto-selected when only one entity exists, required when multiple entities exist.

Body parameters

namestringrequired
descriptionstringoptional
pricenumberoptional

Net price per unit (before tax). Provide either price OR gross_price, not both.

gross_pricenumberoptional

Gross price per unit (includes tax). If provided, net price is calculated. Provide either price OR gross_price, not both.

taxesarray of objectsoptional

Taxes for the item. Provide rate to auto-create, or classification to lookup existing tax.

metadataobjectoptional

Custom key-value data for your own use. Store any JSON object up to 50 properties. Values must be strings up to 250 characters. Useful for storing external IDs, tags, or integration data.

Other parameters
classificationstringoptional
tax_idsarray of stringsoptional
curl -X POST "https://eu.spaceinvoices.com/items" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-entity-id: YOUR_ENTITY_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Satellite Communication Module",
    "price": 1500
  }'
Example:

Returns

idstring
namestring
descriptionstring
pricenumber

Per-unit net price (before tax). Always stores net price.

gross_pricenumber

Per-unit gross price (includes tax). Only present if user originally sent gross price.

metadata
Other parameters
classificationstring
tax_idsarray of strings
total_taxnumber
entity_idstring
deleted_atstring<date-time>
created_atstring<date-time>
updated_atstring<date-time>
json
{
  "id": "item_6595a27b5d35015c3ef0c3fd",
  "name": "Satellite Communication Module",
  "description": null,
  "price": 1500,
  "gross_price": null,
  "total_tax": 0,
  "tax_ids": [],
  "entity_id": "ent_6595a27b5d35015c3ef0c3fd",
  "metadata": {},
  "deleted_at": null,
  "created_at": "2024-01-01T00:00:00.000Z",
  "updated_at": "2024-09-01T00:00:00.000Z"
}
Example:

List all items

GET/items

Retrieve a paginated list of items (products and services) with optional filtering and sorting. Supports cursor-based pagination, flexible JSON querying with MongoDB-style operators, full-text search, and sorting.

Header parameters

entity_idstringoptional

Entity ID on which the request is made. Auto-selected when only one entity exists, required when multiple entities exist.

Query parameters

limitintegeroptional

Number of results per request.

Default: 10

next_cursorstringoptional

Opaque cursor to fetch the next page of results. Reuse only with the same effective ordering. Use the value from pagination.next_cursor in the previous response.

prev_cursorstringoptional

Opaque cursor to fetch the previous page of results. Reuse only with the same effective ordering. Use the value from pagination.prev_cursor in the previous response.

include_total_countbooleanoptional

Whether to include the total count of items in pagination.total.
Default is true.
When false, pagination.total returns -1 for better performance.

order_byoptional

Sort by one field or provide a repeated array for multi-column ordering. Prefix a field with - for descending order. When paginating, reuse cursors only with the same effective ordering.

querystring<json>optional

JSON query object for filtering results. Supports MongoDB-style operators.

Supported operators:
- equals or direct value - Exact match (default)
- gte - Greater than or equal
- lte - Less than or equal
- gt - Greater than
- lt - Less than
- in - Value in array
- notIn - Value not in array
- contains - String contains (case-insensitive)
- startsWith - String starts with
- endsWith - String ends with
- between - Value between two numbers/dates [min, max]

Allowed fields: id, name, description, price, unit, created_at, updated_at

Examples:
- {"total": {"gte": 1000}} - Invoices over 1000
- {"customer.name": {"contains": "Acme"}} - Customer name contains "Acme"
- {"date": {"between": ["2025-01-01", "2025-12-31"]}} - Date range

searchstringoptional

Full-text search query to filter results across multiple fields.
Searches are case-insensitive and match partial strings.
Searches across all text fields including names, descriptions, addresses, and metadata values.

deletedbooleanoptional

When true, returns only soft-deleted (trashed) items. Default false excludes deleted items.

curl "https://eu.spaceinvoices.com/items" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-entity-id: YOUR_ENTITY_ID"

Returns

dataarray of objects
paginationobject

Pagination metadata including cursors and result counts

json
{
  "data": [
    {
      "id": "item_7595a27b5d35015c3ef0c3fe",
      "name": "Orbital Navigation License",
      "description": "Annual software license for orbital trajectory planning",
      "price": 5000,
      "gross_price": null,
      "total_tax": 1100,
      "tax_ids": [
        "tax_6595a27b5d35015c3ef0c3fd"
      ],
      "entity_id": "ent_6595a27b5d35015c3ef0c3fd",
      "metadata": {
        "category": "software",
        "unit": "license"
      },
      "deleted_at": null,
      "created_at": "2024-01-01T00:00:00.000Z",
      "updated_at": "2024-09-01T00:00:00.000Z"
    }
  ],
  "pagination": {
    "total": 1,
    "next_cursor": null,
    "prev_cursor": null,
    "has_more": false
  }
}

Update an item

PATCH/items/{id}

Update an existing product or service item. Only the provided fields are updated. Pricing and taxes are recalculated consistently with item creation rules.

Header parameters

entity_idstringoptional

Entity ID on which the request is made. Auto-selected when only one entity exists, required when multiple entities exist.

Path parameters

idstring<resource-id>required

Unique resource identifier

Body parameters

namestringoptional
descriptionstringoptional
pricenumberoptional

Net price per unit (before tax). Provide either price OR gross_price, not both.

gross_pricenumberoptional

Gross price per unit (includes tax). If provided, net price is calculated. Provide either price OR gross_price, not both.

taxesarray of objectsoptional

Taxes for the item. Provide rate to auto-create, or classification to lookup existing tax.

metadataobjectoptional

Custom key-value data for your own use. Store any JSON object up to 50 properties. Values must be strings up to 250 characters. Useful for storing external IDs, tags, or integration data.

Other parameters
classificationstringoptional
tax_idsarray of stringsoptional
curl -X PATCH "https://eu.spaceinvoices.com/items/{id}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-entity-id: YOUR_ENTITY_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Satellite Communication Module v2"
  }'
Example:

Returns

idstring
namestring
descriptionstring
pricenumber

Per-unit net price (before tax). Always stores net price.

gross_pricenumber

Per-unit gross price (includes tax). Only present if user originally sent gross price.

metadata
Other parameters
classificationstring
tax_idsarray of strings
total_taxnumber
entity_idstring
deleted_atstring<date-time>
created_atstring<date-time>
updated_atstring<date-time>
json
{
  "id": "item_6595a27b5d35015c3ef0c3fd",
  "name": "Satellite Communication Module v2",
  "description": null,
  "price": 1500,
  "gross_price": null,
  "total_tax": 0,
  "tax_ids": [],
  "entity_id": "ent_6595a27b5d35015c3ef0c3fd",
  "metadata": {},
  "deleted_at": null,
  "created_at": "2024-01-01T00:00:00.000Z",
  "updated_at": "2024-09-02T00:00:00.000Z"
}
Example:

Delete an item

DELETE/items/{id}

Soft delete an item. The item will be moved to the trash and can be restored later.

Header parameters

entity_idstringoptional

Entity ID on which the request is made. Auto-selected when only one entity exists, required when multiple entities exist.

Path parameters

idstring<resource-id>required

Unique resource identifier

curl -X DELETE "https://eu.spaceinvoices.com/items/{id}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-entity-id: YOUR_ENTITY_ID"

Permanently delete an item

DELETE/items/{id}/permanent

Permanently delete a soft-deleted item. Only items in the trash can be permanently deleted.

Header parameters

entity_idstringoptional

Entity ID on which the request is made. Auto-selected when only one entity exists, required when multiple entities exist.

Path parameters

idstring<resource-id>required

Unique resource identifier

curl -X DELETE "https://eu.spaceinvoices.com/items/{id}/permanent" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-entity-id: YOUR_ENTITY_ID"

Restore a deleted item

POST/items/{id}/restore

Restore a soft-deleted item from the trash.

Header parameters

entity_idstringoptional

Entity ID on which the request is made. Auto-selected when only one entity exists, required when multiple entities exist.

Path parameters

idstring<resource-id>required

Unique resource identifier

curl -X POST "https://eu.spaceinvoices.com/items/{id}/restore" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "x-entity-id: YOUR_ENTITY_ID"

Returns

idstring
namestring
descriptionstring
pricenumber

Per-unit net price (before tax). Always stores net price.

gross_pricenumber

Per-unit gross price (includes tax). Only present if user originally sent gross price.

metadata
Other parameters
classificationstring
tax_idsarray of strings
total_taxnumber
entity_idstring
deleted_atstring<date-time>
created_atstring<date-time>
updated_atstring<date-time>
json
{
  "id": "item_6595a27b5d35015c3ef0c3fd",
  "name": "Satellite Communication Module",
  "description": null,
  "price": 1500,
  "gross_price": null,
  "total_tax": 0,
  "tax_ids": [],
  "entity_id": "ent_6595a27b5d35015c3ef0c3fd",
  "metadata": {},
  "deleted_at": null,
  "created_at": "2024-01-01T00:00:00.000Z",
  "updated_at": "2024-09-01T00:00:00.000Z"
}
Example: