Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Ninja Van API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fninjavan.co%2Fninjavan" | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fninjavan.co%2Fninjavan" | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Ninja Van API.
Mint an OAuth 2.0 access token through POST /{countryCode}/2.0/oauth/access_token
Create a parcel delivery order through POST /{countryCode}/4.1/orders
Generate a waybill PDF for a created order through GET /{countryCode}/2.0/reports/waybill
Cancel an order before pickup through DELETE /{countryCode}/2.2/orders/{trackingNo}
Estimate delivery tariffs before booking through POST /{countryCode}/1.0/public/price
GET STARTED
Look up Ninja Point pick-up and drop-off locations through GET /{countryCode}/2.0/pudos
Track parcels singly or in batches through /{countryCode}/1.0/orders/tracking-events
Patterns agents use Ninja Van API for, with concrete tasks.
★ E-commerce checkout shipping integration
Online stores selling across Southeast Asia can quote shipping at checkout and create the parcel order at order confirmation. POST /{countryCode}/1.0/public/price returns a tariff estimate; POST /{countryCode}/4.1/orders creates the order and returns a tracking number; GET /{countryCode}/2.0/reports/waybill returns the printable label. The country code in each path keeps SG, MY, ID, PH, TH, and VN orders cleanly separated.
POST an order to /sg/4.1/orders with sender, recipient, and parcel dimensions, then call /sg/2.0/reports/waybill?trackingNo=... to retrieve the label PDF.
Shipping cost estimation
Marketplaces and 3PLs can show buyers a live shipping price before checkout completes. POST /{countryCode}/1.0/public/price accepts origin and destination, weight, and dimensions, and returns the Ninja Van tariff. The endpoint is rate-limited to 20 calls per minute, so callers should cache by route.
POST a tariff request to /vn/1.0/public/price with origin postcode, destination postcode, and 2kg weight; cache the returned price for 10 minutes.
Parcel tracking dashboards
Operations teams need an internal dashboard showing the status of every in-flight parcel. GET /{countryCode}/1.0/orders/tracking-events accepts a list of tracking numbers and returns the latest events for each, while the single-parcel variant returns full event history for one tracking number. Webhooks should be the primary update channel; the GET endpoints are for reconciliation when webhooks fail.
Call GET /my/1.0/orders/tracking-events with tracking_numbers=NV001,NV002,NV003 and write the latest status for each into the operations dashboard.
AI agent shipping operations
An AI agent embedded in a customer-support workflow can look up parcel status, cancel mistakenly created orders, and quote replacement shipping costs without the operator opening the carrier portal. Through Jentic, the agent searches by intent and Jentic returns the right Ninja Van endpoint with its schema. The OAuth client credentials are held in the vault and never enter the agent's chat context.
Search Jentic for 'cancel a Ninja Van order', load DELETE /{countryCode}/2.2/orders/{trackingNo}, and execute it for trackingNo NVSG12345.
11 endpoints — jentic publishes the only available openapi specification for ninja van api, keeping it validated and agent-ready.
METHOD
PATH
DESCRIPTION
/{countryCode}/2.0/oauth/access_token
Mint an OAuth 2.0 access token
/{countryCode}/4.1/orders
Create a parcel delivery order
/{countryCode}/2.2/orders/{trackingNo}
Cancel an order before pickup
/{countryCode}/2.0/reports/waybill
Generate a waybill PDF
/{countryCode}/1.0/public/price
Estimate delivery tariff
/{countryCode}/1.0/orders/tracking-events/{trackingNumber}
Get tracking events for a single parcel
/{countryCode}/1.0/orders/tracking-events
Get tracking events for a batch of parcels
/{countryCode}/2.0/pudos
List Ninja Points in a country
/{countryCode}/2.0/oauth/access_token
Mint an OAuth 2.0 access token
/{countryCode}/4.1/orders
Create a parcel delivery order
/{countryCode}/2.2/orders/{trackingNo}
Cancel an order before pickup
/{countryCode}/2.0/reports/waybill
Generate a waybill PDF
/{countryCode}/1.0/public/price
Estimate delivery tariff
/{countryCode}/1.0/orders/tracking-events/{trackingNumber}
Get tracking events for a single parcel
/{countryCode}/1.0/orders/tracking-events
Get tracking events for a batch of parcels
What agents get from Jentic-routed access to this vendor.
Setup
Wiring Ninja Van by hand means running its OAuth2 access-token exchange, choosing the sandbox or production host, and threading the country code into every path yourself. Through Jentic you install once, import the Ninja Van API from the API Directory, store the client credentials once, and your agent calls it.
Permission scoping
Ninja Van carries the tracking number in the URL path (/{countryCode}/2.2/orders/{trackingNo}), so a rule can pin your agent to one order: it can read tracking events for that order and nothing else. You choose the operations it may call, so destructive ones like cancelling an order are not included unless you add them.
Credential isolation
Your Ninja Van client credentials are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
Intent-based discovery
Agents search Jentic by intent such as 'create a delivery order' or 'track a parcel by tracking number', and Jentic returns the matching Ninja Van operation with its input schema so the agent calls the right endpoint without browsing the reference docs.
Alternatives and complements available in the Jentic catalogue.
Specific to using Ninja Van API through Jentic.
Why is there no official OpenAPI spec for Ninja Van API?
Ninja Van publishes API documentation but does not ship a maintained OpenAPI specification for direct download. Jentic generates and maintains this spec so that AI agents and developers can call Ninja Van API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.
What authentication does the Ninja Van API use?
Ninja Van uses OAuth 2.0 with client credentials issued from the Ninja Dashboard. Call POST /{countryCode}/2.0/oauth/access_token to mint a bearer token, then send it as Authorization: Bearer <token> on every other call. Through Jentic, the client ID and key are held in the vault and the bearer token is refreshed server-side.
Can I cancel an order through the API?
Yes. DELETE /{countryCode}/2.2/orders/{trackingNo} cancels the order before pickup. Note this endpoint targets v2.2 even though order creation is on v4.1 - the spec preserves the version that each operation runs on.
What are the rate limits for the Ninja Van API?
Several endpoints are rate-limited. The tariff estimate endpoint /{countryCode}/1.0/public/price is capped at 20 calls per minute. The OAuth token, waybill, and tracking-events endpoints are also rate-limited; expect HTTP 429 with a retry-after if exceeded.
How do I create a Ninja Van order through Jentic?
Run pip install jentic, search Jentic for 'create a Ninja Van parcel order', and load POST /{countryCode}/4.1/orders. Provide sender and recipient blocks, parcel dimensions, and the country code (sg, my, id, ph, th, vn). Jentic mints and attaches the OAuth bearer token.
Does the Ninja Van API support all six Southeast Asian markets?
Yes. The country code is part of the path (for example /sg, /my, /id, /ph, /th, /vn), and each market has its own developer support contact email. Production access is granted per market after an integration audit.
Can I limit what my agent is allowed to do with the Ninja Van API?
Yes. Because Jentic One is self-hosted, your own rules decide which Ninja Van operations and credentials your agent may use. You pick the operations it can call, so a read-only tracking agent gets GET /{countryCode}/1.0/orders/tracking-events while destructive operations like DELETE /{countryCode}/2.2/orders/{trackingNo} stay off unless you add them. Since the tracking number sits in the URL path, a rule can pin the agent to a single order so it reads events for that order and nothing else.
Know of an official OpenAPI document? Contribute it →
For Agents
Create and cancel cross-border parcel orders, generate waybills, estimate tariffs, and track parcels on Ninja Van's Southeast Asian delivery network across 11 endpoints under api.ninjavan.co.
Use for: Create a Ninja Van parcel order from Singapore to Malaysia, Cancel a Ninja Van parcel order before it is picked up, Generate a waybill PDF for a tracking number, Estimate the cost of shipping a 2kg parcel within Vietnam
Not supported: Does not handle warehousing, fulfilment inventory, or international long-haul outside Southeast Asia - use for Ninja Van last-mile order, waybill, tariff, PUDO, and tracking operations only.
Jentic publishes the only available OpenAPI specification for Ninja Van API, keeping it validated and agent-ready. Ninja Van is a Southeast Asian last-mile express delivery network covering Singapore, Malaysia, Indonesia, the Philippines, Thailand, and Vietnam. The API is structured around country-scoped paths and provides OAuth 2.0 access tokens, order creation and cancellation, waybill PDF generation, tariff price estimates, PUDO (pick-up and drop-off) Ninja Point listings and partner drop-off triggers, parcel tracking by single tracking number or batch, and webhook receivers for parcel lifecycle events.
/{countryCode}/2.0/pudos
List Ninja Points in a country