Transipal Developer Documentation
Authentication
Personal Access Token
Generate a token from your account and include it in the Authorization header of every request. No login flow, no refresh: one token for all your integrations.
- Log in, then go to Account → Personal tokens
- Choose a name and a scope (
readorwrite) - Copy the token: it is shown only once
curl -H "Authorization: Bearer tp_your_token" \
"https://{warehouse}.staging.transipal.com/api/missions"
Token scopes
Reads all data, and can also start exports. The recommended scope for AI agents and dashboards.
Full access: create, update and delete resources. For automations that change data.
read token cannot change your data, even if it leaks.
Ways to connect
REST API
A standard REST API for programmatic access: JSON responses, pagination, filters.
| GET | /api/warehouses |
List your warehouses |
| GET | /api/missions |
List missions |
| GET | /api/tasks |
List tasks |
| GET | /api/packs |
List packs |
| GET | /api/products |
Search products |
Each warehouse has its own subdomain. Call /api/warehouses to find yours, then use:
https://{subdomain}.staging.transipal.com/api/...
# List your warehouses
curl -H "Authorization: Bearer tp_..." \
"https://developer.staging.transipal.com/api/warehouses"
# Get missions for a warehouse
curl -H "Authorization: Bearer tp_..." \
"https://{warehouse}.staging.transipal.com/api/missions"
MCP server (AI agents)
Transipal exposes an MCP (Model Context Protocol) server. Connect your AI assistant and ask about your warehouse in plain language.
Claude
- Open Settings, then Connectors (or Integrations)
- Click Add
- Enter the URL:
https://app.staging.transipal.com/_mcp - Click Connect, then sign in with your Transipal account and allow access
ChatGPT
- Open Settings, then Connectors
- Click Add connector
- Enter the URL:
https://app.staging.transipal.com/_mcp - Click Connect, then sign in with your Transipal account and allow access
- Search and list missions, tasks, packs, articles, products, locations and partners
- Show warehouse and partner statistics
- Switch between the warehouses you can access
- List orders, prepare one and submit it
- Read your support tickets and open a new one
Authorization header. See the MCP specification.
Reference
Rate limiting
| Limit | 200 requests per minute per user |
| Pagination | 30 items per page (100 at most) |
Response headers:
X-RateLimit-Limit |
Maximum requests (200) |
X-RateLimit-Remaining |
Requests left in the window |
X-RateLimit-Reset |
When the window resets |
Error codes
| Code | Meaning | What to do |
|---|---|---|
| 400 | Bad Request | Check the request body |
| 401 | Unauthorized | Check the token |
| 403 | Forbidden | Scope or rights too narrow |
| 404 | Not Found | Check the URL or the resource id |
| 429 | Rate Limited | Wait, then retry |
Code examples
TOKEN="tp_your_token"
WAREHOUSE="{warehouse}"
# List warehouses
curl -H "Authorization: Bearer $TOKEN" \
"https://developer.staging.transipal.com/api/warehouses"
# List missions (paginated)
curl -H "Authorization: Bearer $TOKEN" \
"https://$WAREHOUSE.staging.transipal.com/api/missions?page=1&itemsPerPage=10"
# Search products
curl -H "Authorization: Bearer $TOKEN" \
"https://$WAREHOUSE.staging.transipal.com/api/products?name=widget"
const TOKEN = 'tp_your_token';
async function api(path, warehouse = null) {
const host = warehouse
? `${warehouse}.staging.transipal.com`
: 'developer.staging.transipal.com';
const res = await fetch(`https://${host}${path}`, {
headers: { 'Authorization': `Bearer ${TOKEN}` }
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
return res.json();
}
// List warehouses
const warehouses = await api('/api/warehouses');
// Get missions for a specific warehouse
const missions = await api(
'/api/missions',
'{warehouse}'
);
import requests
TOKEN = "tp_your_token"
def api(path, warehouse=None):
host = f"{warehouse}.staging.transipal.com" if warehouse else "developer.staging.transipal.com"
r = requests.get(
f"https://{host}{path}",
headers={"Authorization": f"Bearer {TOKEN}"}
)
r.raise_for_status()
return r.json()
# List warehouses
warehouses = api("/api/warehouses")
# Get missions
missions = api(
"/api/missions",
"{warehouse}"
)
Interactive API Documentation
Browse every endpoint, try requests live and see the response schemas in Swagger UI.
Open Swagger UI