Developer Portal

Build on DepotLite

API access is available exclusively to depots with an active DepotLite contract. A complete platform with comprehensive features across 10 categories, 9 role-based access levels, and real-time webhooks.

Complete

Platform

9

Role-Based Levels

Real-time

Webhook Events

Secure

JSON over HTTPS

Quick Start

Up and Running in 3 Steps

Get from zero to your first API call in minutes.

1

Get Your API Key

Contact our team to request API access. API credentials are issued exclusively to depots with an active DepotLite contract.

2

Make Your First Call

Authenticate and call any endpoint. Start with /v1/journeys/search to query container status or /v1/containers/stock for inventory.

3

Set Up Webhooks

Register a webhook URL to receive real-time events for gate-in, gate-out, approvals, EDI generation, and invoice creation.

API Reference

10 Categories, Comprehensive Coverage

Every operation in the container depot lifecycle is accessible through a clean, versioned platform. 9 role-based access levels control what each user can read or write.

Comprehensive coverage across all categories

Code Samples

Container Status Check

See how to query container status using TypeScript or curl. Every endpoint returns consistent JSON with typed responses.

TypeScriptSDK Preview
import { DepotLite } from "@depotlite/sdk";

const client = new DepotLite({
  apiKey: process.env.DEPOTLITE_API_KEY!,
  baseUrl: "https://api.depotlite.com/v1",
});

// Check container status
async function getContainerStatus(containerNumber: string) {
  const journey = await client.journeys.search({
    containerNumber,
    status: ["GATE_IN", "UNDER_REPAIR", "READY"],
    limit: 1,
  });

  if (journey.data.items.length === 0) {
    return { status: "NOT_FOUND" };
  }

  const container = journey.data.items[0];
  return {
    status: container.status,
    liner: container.liner.name,
    gateInDate: container.gateInDate,
    condition: container.condition,
    depot: container.depot.name,
    estimationTotal: container.estimationTotal,
    approvalStatus: container.approvalStatus,
  };
}

const status = await getContainerStatus("MSCU1234567");
console.log(status);
curl
# Check container status
curl -X POST https://api.depotlite.com/v1/journeys/search \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "containerNumber": "MSCU1234567",
    "status": ["GATE_IN", "UNDER_REPAIR", "READY"],
    "limit": 1
  }'

# Response
{
  "success": true,
  "data": {
    "items": [{
      "journeyId": "j_8f3k2m1n",
      "containerNumber": "MSCU1234567",
      "status": "UNDER_REPAIR",
      "liner": { "name": "Mediterranean Shipping" },
      "gateInDate": "2026-03-18T09:30:00Z",
      "condition": "DAMAGED",
      "estimationTotal": 1250.00,
      "approvalStatus": "APPROVED",
      "depot": { "name": "Chennai CFS" }
    }],
    "total": 1
  }
}
Webhooks

Real-Time Event Notifications

Subscribe to depot events and receive instant HTTP POST callbacks. HMAC-SHA256 signed for security.

journey.gate_inContainer has been gated in at the depot
journey.gate_outContainer has been gated out from the depot
journey.surveyedSurvey completed with damage assessment
journey.estimatedRepair estimation created and ready for approval
journey.approvedLiner approved the repair estimation
journey.rejectedLiner rejected the repair estimation
journey.repair_completeRepair work completed on the container
edi.generatedCODECO EDIFACT message generated and stored
invoice.createdNew invoice created for a journey
invoice.paidPayment received and recorded for an invoice
container.registeredNew container registered in the system
approval.reminderFollow-up reminder for pending approval
Webhook Payload Example
POST https://your-app.com/webhooks/depotlite

Headers:
  Content-Type: application/json
  X-DepotLite-Signature: sha256=a1b2c3d4e5...
  X-DepotLite-Event: journey.gate_in

{
  "id": "evt_9k4m2n8p",
  "event": "journey.gate_in",
  "timestamp": "2026-03-24T09:30:00Z",
  "data": {
    "journeyId": "j_8f3k2m1n",
    "containerNumber": "MSCU1234567",
    "liner": "MSC",
    "depot": "depot_maa01",
    "condition": "DAMAGED",
    "gateInDate": "2026-03-24T09:30:00Z"
  }
}
Authentication

Secure Authentication

DepotLite uses a hybrid authentication system. Web dashboard users get secure cookie-based sessions. API consumers use Bearer tokens with automatic refresh. Both share the same 9-level role-based permission system.

HTTP-only cookies with CSRF protection for web
Access tokens (15min) + refresh tokens (7 days)
9 role levels: Owner to Liner
1,000 req/min standard, 10,000 req/min enterprise
All endpoints versioned under /v1/
Role Hierarchy
L1Owner
L2Admin
L3Surveyor
L4GateKeeper
L5Estimator
L6Repairer
L7Billing Admin
L8Operator
L9Liner
SDKs

Official SDKs Coming Soon

Type-safe client libraries that make integration even easier. The platform is available now.

TypeScript SDK

Fully typed client with auto-complete for every endpoint, request parameter, and response field. Built for Node.js, Deno, and edge runtimes.

In Development

Python SDK

Pythonic client with async support, Pydantic models, and comprehensive type hints. Ideal for data pipelines, analytics, and automation scripts.

Planned
FAQ

Developer Questions

Common questions about API access, authentication, webhooks, and integration patterns.

API access is available exclusively to depots with an active DepotLite contract. Contact your account manager or reach out to our team at support@zitrino.com to request credentials. Once provisioned, you will authenticate via the /v1/auth/login endpoint.

DepotLite supports both browser-based dashboard access (using secure cookies) and token-based authentication for integrations and server-to-server communication. Both share the same role-based permission system.

Access tokens expire after 15 minutes. When you receive a 401 response, call POST /v1/auth/refresh with your refresh token to obtain a new access token. Refresh tokens are valid for 7 days. Store refresh tokens securely — they grant the same access level as the original login.

Yes. Each API key is tied to a user account with a specific role. You can create service accounts with read-only Liner Viewer access for reporting, or Depot Operator access for gate integrations. Contact your admin to set up role-specific service accounts.

Yes. Every webhook payload includes an X-DepotLite-Signature header containing an HMAC-SHA256 signature. Verify this against your webhook secret to ensure the payload is authentic and has not been tampered with.

Ready to Build?

Get your API key and start integrating DepotLite into your systems today. Full documentation, code samples, and webhook support included.