How do I use the Logentic API?

Last updated: May 18, 2026

Quick answer

Use this article to connect an external system to Logentic through the public API.

At a glance

What you are doingWhat you needGood resultContact us if
Connect an external system to Logentic through the public API.A Logentic API token, server-side storage, the right account and warehouse context, and a clear integration goal.Your system can authenticate, call the needed endpoint, and handle Logentic responses without exposing credentials.You need a token, see repeated 401 or 403 responses, need webhook verification details, or endpoint behavior differs from this reference.

Useful links

Applies to

  • Developers and integration partners.
  • Server-side systems that create or read orders, items, inventory quantities, payment items, or webhook events.
  • API version v1.

Before you start

  • Get a Logentic API token from Logentic.
  • Store the token securely on your server.
  • Do not expose the token in browser code, mobile apps, public repositories, logs, screenshots, or customer-visible errors.
  • Confirm which warehouse, Shopify store, and account the integration should access.
  • Confirm whether the integration is read-only, creates orders, updates orders, or receives webhooks.

Base URL

```plain text https://api.getlogentic.com/v1


### Authentication

Use Bearer token authentication on every request.

```plain text
Authorization: Bearer YOUR_LOGENTIC_API_TOKEN
Accept: application/json
Content-Type: application/json

For GET requests, Content-Type is optional. For POST and PUT requests, send Content-Type: application/json.

Quick start

List orders:

curl "https://api.getlogentic.com/v1/orders" \
  -H "Authorization: Bearer $LOGENTIC_API_TOKEN" \
  -H "Accept: application/json"

Create an order:

curl -X POST "https://api.getlogentic.com/v1/orders" \
  -H "Authorization: Bearer $LOGENTIC_API_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  --data '{
    "order_type": "DELIVERY",
    "warehouse_id": 1,
    "status": "PENDING",
    "recipient": {
      "name": "Customer Name",
      "email": "customer@example.com",
      "phone": "5144145145"
    },
    "stored_items": [
      {
        "item_id": 28488,
        "quantity": 1
      }
    ],
    "place": {
      "address1": "4606 Test Avenue",
      "address2": "Suite 440",
      "postal_code": "H2R 2Y8",
      "city": "Montreal",
      "province_code": "QC",
      "country_code": "CA"
    }
  }'

Response format

Single-resource responses are wrapped in data.

{
  "data": {
    "id": 19015
  }
}

List responses return data plus pagination metadata.

{
  "data": [],
  "meta": {
    "pagination": {
      "total": 150,
      "count": 50,
      "per_page": 50,
      "current_page": 2,
      "total_pages": 3,
      "links": {
        "previous": "https://api.getlogentic.com/v1/orders?page=1",
        "next": "https://api.getlogentic.com/v1/orders?page=3"
      }
    }
  }
}

Pagination

List endpoints use page-based pagination.

ParameterTypeDescription
pageintegerPage number to retrieve.
per_pageintegerPage size where supported.

When meta.pagination.links.next is present, use that URL to fetch the next page. Stop when next is null or absent.

Status codes

CodeMeaning
200Request succeeded.
201Resource was created.
204Request succeeded and no body is returned.
400Request is malformed or missing required parameters.
401Authentication failed or the token is missing.
403The authenticated user cannot access the requested resource.
404Resource was not found.
405HTTP method is not supported for this endpoint.
422Request validation failed.

Orders

Orders represent delivery work that Logentic can fulfill, track, and update.

EndpointPurpose
GET /ordersReturns a paginated list of orders.
GET /orders/{order_id}Retrieves one order by Logentic order ID.
POST /ordersCreates a delivery order.
PUT /orders/{order_id}Updates a pending order.
PUT /shopify_orders/{shopify_order_id}Updates a pending order by Shopify order ID.

Useful GET /orders filters:

QueryTypeRequiredDescription
pageintegernoPage number.
external_namestringnoExternal or ecommerce order reference. Multiple values may be comma-separated.
updated_at_startdatenoInclude orders updated after this date.
updated_at_enddatenoInclude orders updated before this date.
shopify_order_idstringnoFilter by Shopify order ID.

Required fields for POST /orders:

FieldTypeRequiredDescription
order_typestringyesPublic examples use DELIVERY.
statusstringyesUse PENDING when creating a new order.
warehouse_idintegeryesWarehouse to ship from.
recipient.namestringyesRecipient name.
recipient.emailstringyesRecipient email.
recipient.phonestringyesRecipient phone.
stored_itemsarrayyesItems to ship.
stored_items[].item_idintegerconditionalRequired when shopify_variant_id is not present.
stored_items[].shopify_variant_idstringconditionalRequired when item_id is not present.
stored_items[].quantitynumberyesQuantity to ship.
place.address1stringyesFirst address line.
place.postal_codestringyesPostal or ZIP code.
place.citystringyesCity.
place.province_codestringyesProvince or state code.
place.country_codestringyesTwo-character ISO country code.

Known order statuses include PENDING, CANCELLED, IN_TRANSIT, and COMPLETED.

Items

Items represent SKU or product records used by orders and inventory.

EndpointPurpose
GET /itemsReturns a paginated list of items.
GET /items/{item_id}Retrieves one item by Logentic item ID.
POST /itemsCreates an item.
PUT /items/{item_id}Updates an item.
DELETE /items/{item_id}Deletes an item.

Useful GET /items filters:

QueryTypeRequiredDescription
pageintegernoPage number.
shopify_variant_idstringnoFilter by Shopify variant ID.
external_namestringnoFilter by SKU or external reference.

Required fields for POST /items:

FieldTypeRequiredDescription
namestringyesProduct name.
width_innumberyesWidth in inches.
depth_innumberyesDepth in inches.
height_innumberyesHeight in inches.
weightnumberyesItem weight. Confirm account-specific unit expectations before bulk imports.

Optional item fields include description, price, notify_email, expiration_warning_in_days, ht_code, country_of_origin, back_order_limit, is_prepackaged, external_name, and shopify_variant_id.

Payment items

Payment items represent charges such as shipping, handling, picking, and storage.

EndpointPurpose
GET /payment_itemsReturns payment items.
GET /payment_items/{payment_item_id}Retrieves one payment item.

Useful GET /payment_items filters:

QueryTypeRequiredDescription
startdatenoPayment start date, YYYY-MM-DD.
enddatenoPayment end date, YYYY-MM-DD.
billed_date_startdatenoBilled-date start, YYYY-MM-DD.
billed_date_enddatenoBilled-date end, YYYY-MM-DD.
pageintegernoPage number.
group_by_invoicebooleannoGroup charges by invoice.
payment_idintegernoFilter by payment ID.
exclude_storage_infobooleannoExclude storage-specific fields.

Inventory history

Inventory endpoints expose item quantity, volume, and storage data over time.

EndpointPurpose
GET /items/inventoryReturns inventory history across items.
GET /items/inventory/{item_id}Returns inventory history for one item.

Required query parameters:

QueryTypeRequiredDescription
startdateyesStart date, YYYY-MM-DD.
enddateyesEnd date, YYYY-MM-DD.

Optional query parameters include page, per_page, and exclude_storage_price.

Inventory history responses may include id, name, external_name, cubic_size, weight, date, total_volume, total_storage_price, prepared, receiving, and supply.

Item quantities

Item quantity endpoints expose point-in-time stock state.

EndpointPurpose
GET /items/item_quantitiesReturns item quantity records.
GET /items/{item_id}/item_quantitiesReturns quantity history for one item.

Useful filters:

QueryTypeRequiredDescription
updated_at_startdatetimenoInclude records updated after this timestamp.
updated_at_enddatetimenoInclude records updated before this timestamp.
shopify_variant_idstringnoFilter by Shopify variant ID.
pageintegernoPage number.

Item quantity responses may include id, item_id, sku, supply, receiving, prepared, back_ordered, delivered, updated_at, and created_at.

Webhooks

Logentic can send webhook events for order lifecycle changes.

Supported event families include:

EventDescription
Order CreatedAn order was created.
Order PickedAn order was picked.
Order PackedAn order was packed.
Order In TransitAn order moved into transit.
Order CompletedAn order was completed.

Webhook deliveries include headers similar to:

```plain text Signature: <hex signature> Logentic-Api-Version: V1 Logentic-Topic: order-completed User-Agent: GuzzleHttp/6.5.5 curl/7.79.1 PHP/7.4.24


Receiver guidance:

- Return a `2xx` response after the webhook is durably queued.
- Treat webhook delivery as at-least-once.
- De-duplicate repeated events before applying side effects.
- Use `Logentic-Topic` to route event handling.
- Fetch the order by ID after important lifecycle events if your integration needs the latest canonical state.
- Confirm webhook signature verification details before production launch.

### Machine-readable route catalog

This compact route catalog can be used by AI systems, SDK generators, and integration scaffolding tools. It is not a full OpenAPI schema.

api_name: Logentic Public API version: v1 base_url: https://api.getlogentic.com/v1 auth: type: bearer header: Authorization format: "Bearer ${LOGENTIC_API_TOKEN}" default_headers: Accept: application/json Content-Type: application/json resources: orders: operations:

  • operation_id: list_orders

method: GET path: /orders query: [page, external_name, updated_at_start, updated_at_end, shopify_order_id]

  • operation_id: get_order

method: GET path: /orders/{order_id}

  • operation_id: create_order

method: POST path: /orders

  • operation_id: update_order

method: PUT path: /orders/{order_id}

  • operation_id: update_shopify_order

method: PUT path: /shopify_orders/{shopify_order_id} items: operations:

  • operation_id: list_items

method: GET path: /items query: [page, shopify_variant_id, external_name]

  • operation_id: get_item

method: GET path: /items/{item_id}

  • operation_id: create_item

method: POST path: /items

  • operation_id: update_item

method: PUT path: /items/{item_id}

  • operation_id: delete_item

method: DELETE path: /items/{item_id} payment_items: operations:

  • operation_id: list_payment_items

method: GET path: /payment_items

  • operation_id: get_payment_item

method: GET path: /payment_items/{payment_item_id} inventory: operations:

  • operation_id: list_inventory_history

method: GET path: /items/inventory required_query: [start, end]

  • operation_id: get_item_inventory_history

method: GET path: /items/inventory/{item_id} required_query: [start, end] item_quantities: operations:

  • operation_id: list_item_quantities

method: GET path: /items/item_quantities

  • operation_id: get_item_quantity_history

method: GET path: /items/{item_id}/item_quantities