DEVELOPER

Centar za programere

Sve što vam je potrebno za integraciju sa našom platformom — REST, GraphQL i MCP.

REST /api/v1/orders JSON
GQL query { orders { id } } GraphQL
MCP track_package(number) Tool
Centar za programere

REST API dokumentacija

Istražite, testirajte i integriše sa našim RESTful krajnjim tačkama. Potpun Swagger UI sa interaktivnim kreatorom zahteva i podrškom za autentifikaciju.

GraphQL API dokumentacija

Pretražujte tačno podatke koji su vam potrebni sa našim GraphQL API-jem. Interaktivni playground sa istraživačem šeme i testiranjem operacija.

Vodič za MCP server

Povežite svog AI asistenta sa platformom koristeći protokol konteksta modela. Vodiči za podešavanje za Claude, Cursor i druge.

Početak

1
Nabavite API token

Prijavite se i idite na Podešavanja → API ključevi da biste generisali lični pristupni token.

2
Izaberite API

Koristite REST za standardne CRUD operacije, GraphQL za fleksibilne upite podataka, ili MCP za povezivanje AI asistenata direktno sa vašim logističkim podacima.

3
Počnite da razvijate

Otvorite interaktivnu dokumentaciju za testiranje krajnjih tačaka u pretraživaču i kopirajte isečke koda u svoju aplikaciju.

Autentifikacija

Сва три API-ја користе исти Bearer токен (добијен преко ендпоинта за пријаву). Неки ендпоинти су јавни и не захтевају аутентификацију — укључујући пријаву, јавно праћење и саморегистрацију возача.

Dobijte token putem endpoint-a za prijavu:

# POST /api/v1/user/login
{ "email": "you@example.com", "password": "••••••••" }

Zaglavlje zahteva

Authorization: Bearer YOUR_ACCESS_TOKEN
REST Потребно за већину ендпоинта. Пријава, јавно праћење и саморегистрација возача су јавни (токен није потребан).
GQL Obavezno za autentifikovane operacije. Javne operacije (prijava, praćenje) rade bez tokena.
MCP Opciono. Javni alati rade bez tokena; važeći token omogućava pristup personalizovanim podacima.
Osnovni URL-ovi

 

  • REST API https://api.superroute.ca/api
  • GraphQL https://api.superroute.ca/api/graphql
  • MCP https://api.superroute.ca/mcp

Koji API da koristim?

REST API

Standardne CRUD operacije, webhook-ovi, upravljanje narudžbinama/rutama

GraphQL

Fleksibilni upiti, prilagođeni izveštaji, ugnežđeni upiti

MCP

Integracija AI asistenta (Claude, Cursor, Copilot itd.)

AI integracija

Dajte svom AI asistentu logističke supermoći. Povežite se putem MCP-a bez kodiranja, pozovite naš API direktno iz vašeg AI agenta ili preuzmite datoteku veština za potpuno semantičko vođenje.

Dostupne mogućnosti
Javno praćenje

Proverite status isporuke, vremensku liniju događaja i dokaz o isporuci (potpis/fotografija) bilo kog paketa putem broja za praćenje.

JAVNO
Operativni događaji

Dobijte kompletnu revizijsku evidenciju narudžbina — ko je promenio koji status, kada, gde, sa GPS koordinatama i priloženim fotografijama.

POTREBNA AUTENTIFIKACIJA
Servis nalepnica

Dobijte ponude za slanje od prevoznika, kreirajte nalepnice za slanje, preuzmite PDF nalepnica, otkažite pošiljke i podnesite manifeste na kraju dana.

POTREBNA AUTENTIFIKACIJA
Lokalna dostava

Kreirajte narudžbine za dostavu/preuzimanje, izgradite optimizovane rute za više vozača i upravljajte kompletnim tokom dostave poslednje milje.

POTREBNA AUTENTIFIKACIJA
END USER Korisnički MCP server

Za AI asistente koje koriste vaši klijenti. Nalepite konfiguraciju i vaš AI može odmah pratiti pakete — bez kodiranja.

ENDPOINT
https://api.superroute.ca/mcp
Dostupni alati (11 tools)
track_package Track package by tracking number JAVNO
create_order Create delivery/pickup order AUTH
get_orders List orders with filters AUTH
get_order_detail Get order details by ID AUTH
cancel_order Cancel an order AUTH
get_routes List delivery routes AUTH
get_operation_events Order audit trail AUTH
get_shipping_methods List carriers AUTH
get_shipping_rate Get shipping quote AUTH
create_shipping_label Create shipping label AUTH
search_address Address search/resolve AUTH
// .mcp.json — Autentifikacija nije potrebna { "mcpServers": { "superroute": { "type": "url", "url": "https://api.superroute.ca/mcp" } } }
DEVELOPER Razvojni MCP server

Za AI asistente za kodiranje (Claude Code, Cursor itd.) koji vam pomažu da izgradite Superroute integracije. Vaš AI može direktno pozivati API-je, testirati krajnje tačke i generisati integracioni kod.

ENDPOINT
https://api.superroute.ca/mcp/developer
Dostupni alati
track_package Prati paket po broju za praćenje JAVNO
get_operation_events Dobij revizijsku evidenciju narudžbine AUTH
get_shipping_methods Листа доступних превозника AUTH
get_shipping_rate Dobij ponudu za tarifu slanja AUTH
create_shipping_label Kreiraj nalepnicu za slanje AUTH
get_shipping_label Детаљи етикете и преузимање AUTH
create_order Kreiraj narudžbinu za dostavu/preuzimanje AUTH
get_integration_guide Dobij vodič za integraciju JAVNO
// .mcp.json — Autentifikacija nije potrebna { "mcpServers": { "superroute-dev": { "type": "url", "url": "https://api.superroute.ca/mcp/developer" } } }

Za povezivanje nije potrebna autentifikacija. Alati koji pozivaju API-je će tražiti token tokom izvršavanja i preporučiti čuvanje u .env.

Dva odvojena MCP servera za različite publike. Korisnički server je lagan za krajnje korisnike; razvojni server pruža potpunu API površinu za izgradnju integracija. Možete povezati oba istovremeno.
AI Tool Discovery Endpoints

Structured capability descriptions for AI agents, LLM tool-calling systems, and MCP clients. All endpoints are public, no authentication required.

PRIMARY AI Tools Manifest

Complete manifest with tool definitions, schemas, auth info, and workflows.

GET https://api.superroute.ca/api/.well-known/ai-tools.json
Also available: /llms.txt
FORMAT Multi-Format Export

Get tool definitions in the format native to your AI platform.

# OpenAI function calling GET https://api.superroute.ca/api/ai/tools?format=openai # Anthropic Claude tool_use GET https://api.superroute.ca/api/ai/tools?format=anthropic # MCP tools/list GET https://api.superroute.ca/api/ai/tools?format=mcp # LangChain StructuredTool GET https://api.superroute.ca/api/ai/tools?format=langchain
REST OpenAPI + AI Extensions

OpenAPI spec enriched with x-ai-* extensions (tool names, when to use, categories).

GET https://api.superroute.ca/api/ai/tools/openapi
GQL GraphQL + AI Hints

GraphQL docs enriched with aiHints per operation (when to use, related workflows).

GET https://api.superroute.ca/api/ai/tools/graphql
Quick Integration
Python (OpenAI SDK)
import requests, json tools = requests.get( "https://api.superroute.ca/api/ai/tools?format=openai" ).json()["tools"] # Pass to OpenAI response = client.chat.completions.create( model="gpt-4", messages=messages, tools=tools )
Python (Claude SDK)
import requests, anthropic tools = requests.get( "https://api.superroute.ca/api/ai/tools?format=anthropic" ).json()["tools"] # Pass to Claude response = client.messages.create( model="claude-sonnet-4-20250514", messages=messages, tools=tools )
Node.js (fetch)
const res = await fetch( "https://api.superroute.ca/api/ai/tools?format=openai" ); const { tools } = await res.json(); // Use with any LLM SDK console.log(`Loaded ${tools.length} tools`);
Capabilities summary: For a lightweight overview (just categories and tool names), use GET https://api.superroute.ca/api/ai/capabilities
AI Tools Playground

Test Superroute AI tools directly in your browser. Select a tool, fill in the parameters, and see the live API response.

Select Tool
track_package
Response
Click "Run" to execute the tool...
Razvijajte sa REST ili GraphQL

Za programere koji prave prilagođene AI agente, četbotove ili programske integracije. Pozovite naš API direktno iz vašeg koda sa potpunim pristupom svim logističkim mogućnostima.

REST REST API krajnje tačke
# Prati paket (javno) GET https://api.superroute.ca/api/v1/tracking/{number} # Operativni događaji POST https://api.superroute.ca/api/v1/tracking/operationevents # Dobij tarifu za slanje POST https://api.superroute.ca/api/v1/labelservice/rate # Kreiraj nalepnicu za slanje POST https://api.superroute.ca/api/v1/labelservice/submitOrder # Kreiraj narudžbinu za dostavu POST https://api.superroute.ca/api/v1/client/orderCreate # Izgradi optimizovanu rutu POST https://api.superroute.ca/api/v1/client/build-route
Kompletna dokumentacija
GQL GraphQL operacije
# Jedna krajnja tačka POST https://api.superroute.ca/api/graphql # Dostupne operacije trackingPublic ← Prati paket (javno) trackingOperationevents ← Operativni događaji labelserviceRate ← Dobij tarifu za slanje labelserviceSubmitOrder ← Kreiraj nalepnicu za slanje clientOrderCreate ← Kreiraj narudžbinu za dostavu clientBuildRoute ← Izgradi optimizovanu rutu
Kompletna dokumentacija
Preporučujemo REST API za većinu AI integracija — lakši je za debagovanje i svaka krajnja tačka je samostalna. Koristite GraphQL kada vam trebaju fleksibilni upiti ili želite da dohvatite ugnežđene podatke u jednom zahtevu.
Superroute AI veština integracije

Sveobuhvatna datoteka veština sa dubokim znanjem logističkog domena — šta svaki API radi, kada ga koristiti, šta parametri znače u stvarnom poslovnom kontekstu, kako tumačiti rezultate i kako se mogućnosti kombinuju.

Preuzmi datoteku veština (.md)
Kako koristiti datoteku veština
Claude Code
  • 1 Preuzmite gornju datoteku
  • 2 Postavite je u direktorijum .claude/skills/ vašeg projekta
  • 3 Ukucajte /integrate u Claude Code da pokrenete interaktivni čarobnjak
mkdir -p .claude/skills cp superroute-ai-integration.md .claude/skills/
Cursor
  • 1 Preuzmite gornju datoteku
  • 2 Postavite je u direktorijum .cursor/rules/ vašeg projekta
  • 3 Cursor će je automatski koristiti kao kontekst kada pitate o Superroute integraciji
mkdir -p .cursor/rules cp superroute-ai-integration.md .cursor/rules/
Drugi AI alati
  • 1 Preuzmite gornju datoteku
  • 2 Nalepite sadržaj u sistemski prompt ili bazu znanja vašeg AI alata
  • 3 AI će koristiti semantičke opise za vođenje integracije
# Ili nalepite u sistemski prompt cat superroute-ai-integration.md
Одржавајте фајл вештина ажурним
БРЗО Ажурирање једном командом

Преузмите најновију верзију фајла вештина директно са сервера.

# Claude Code curl -sS https://api.superroute.ca/api/ai-skill -o .claude/skills/superroute-ai-integration.md # Cursor curl -sS https://api.superroute.ca/api/ai-skill -o .cursor/rules/superroute-ai-integration.md
API API за проверу верзије

Проверите најновију верзију на серверу пре преузимања. Упоредите хеш са локалним фајлом.

GET https://api.superroute.ca/api/ai-skill/version Одговор: { "version": "1.0.0", "hash": "abc123...", "download_url": "..." }
MCP Аутоматско ажурирање преко MCP

Ако имате повезан Developer MCP сервер, ваш AI асистент може проверити ажурирања помоћу алата check_skill_update. Проследите MD5 хеш локалног фајла.

// Позив преко Developer MCP Сервера { "method": "tools/call", "params": { "name": "check_skill_update", "arguments": { "current_hash": "your_local_file_md5_hash" } } }
CRON Скрипта за аутоматско ажурирање (Cron / CI)

Додајте ову скрипту у CI pipeline или cron задатак да фајл вештина увек буде ажуран.

#!/bin/bash # auto-update-skill.sh SKILL_FILE=".claude/skills/superroute-ai-integration.md" BASE_URL="https://api.superroute.ca" mkdir -p "$(dirname "$SKILL_FILE")" LOCAL_HASH=$(md5sum "$SKILL_FILE" 2>/dev/null | cut -d' ' -f1) SERVER_HASH=$(curl -s "$BASE_URL/api/ai-skill/version" | python3 -c "import sys,json; print(json.load(sys.stdin)['hash'])") if [ "$LOCAL_HASH" != "$SERVER_HASH" ]; then curl -sS "$BASE_URL/api/ai-skill" -o "$SKILL_FILE" echo "Updated!" fi
Datoteka veština prevazilazi API dokumentaciju — uči vašeg AI asistenta poslovno značenje svakog parametra, kako tumačiti odgovore i kako kombinovati mogućnosti za složene logističke tokove rada.

Primeri koda

REST REST API — Праћење пакета
Праћење пакета (без токена)
curl https://api.superroute.ca/api/v1/tracking/SR123456
Праћење пакета (без токена)
<?php $res = (new \GuzzleHttp\Client())->get('https://api.superroute.ca/api/v1/tracking/SR123456'); print_r(json_decode($res->getBody(), true));
Праћење пакета (без токена)
import requests res = requests.get('https://api.superroute.ca/api/v1/tracking/SR123456') print(res.json())
Праћење пакета (без токена)
resp, _ := http.Get("https://api.superroute.ca/api/v1/tracking/SR123456") var result map[string]interface{} json.NewDecoder(resp.Body).Decode(&result)
Праћење пакета (без токена)
const res = await fetch('https://api.superroute.ca/api/v1/tracking/SR123456'); const data = await res.json();
Праћење пакета (без токена)
HttpClient client = HttpClient.newHttpClient(); HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://api.superroute.ca/api/v1/tracking/SR123456")) .build(); HttpResponse<String> res = client.send(req, HttpResponse.BodyHandlers.ofString()); System.out.println(res.body());
Праћење пакета (без токена)
require 'net/http' puts Net::HTTP.get(URI('https://api.superroute.ca/api/v1/tracking/SR123456'))
GQL GraphQL — Upitaj narudžbine
Upitaj narudžbine
curl -X POST https://api.superroute.ca/api/graphql \ -H "Content-Type: application/json" \ -d '{"query":"query { trackingPublic(trackingNumber: \"SR123456\") { trackingNumber status events { timestamp description } } }"}'
Upitaj narudžbine
$query = 'query { trackingPublic(trackingNumber: "SR123456") { trackingNumber status } }'; $res = (new \GuzzleHttp\Client())->post('https://api.superroute.ca/api/graphql', [ 'json' => ['query' => $query, 'variables' => []], ]); print_r(json_decode($res->getBody(), true));
Upitaj narudžbine
import requests query = 'query { trackingPublic(trackingNumber: "SR123456") { trackingNumber status } }' res = requests.post('https://api.superroute.ca/api/graphql', json={'query': query, 'variables': {}}) print(res.json())
Upitaj narudžbine
payload, _ := json.Marshal(map[string]interface{}{ "query": `query { trackingPublic(trackingNumber: "SR123456") { trackingNumber status } }`, "variables": map[string]interface{}{}, }) req, _ := http.NewRequest("POST", "https://api.superroute.ca/api/graphql", bytes.NewBuffer(payload)) req.Header.Set("Content-Type", "application/json") resp, _ := http.DefaultClient.Do(req)
Upitaj narudžbine
const res = await fetch('https://api.superroute.ca/api/graphql', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ query: `query { trackingPublic(trackingNumber: "SR123456") { trackingNumber status } }` }), }); const data = await res.json();
Upitaj narudžbine
String body = "{\"query\":\"query { trackingPublic(trackingNumber: \\\"SR123456\\\") { trackingNumber status } }\"}"; HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://api.superroute.ca/api/graphql")) .header("Content-Type", "application/json") .POST(HttpRequest.BodyPublishers.ofString(body)).build(); HttpResponse<String> res = HttpClient.newHttpClient().send(req, HttpResponse.BodyHandlers.ofString());
Upitaj narudžbine
require 'net/http'; require 'json' uri = URI('https://api.superroute.ca/api/graphql') req = Net::HTTP::Post.new(uri, 'Content-Type' => 'application/json') req.body = JSON.dump({ query: 'query { trackingPublic(trackingNumber: "SR123456") { trackingNumber status } }' }) puts Net::HTTP.start(uri.hostname, uri.port) { |h| h.request(req) }.body
MCP MCP — Prati pošiljku
Prati pošiljku (bez tokena)
curl -X POST https://api.superroute.ca/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"track_package","arguments":{"tracking_number":"SR123456"}}}'
Prati pošiljku (bez tokena)
$payload = [ 'jsonrpc' => '2.0', 'id' => 1, 'method' => 'tools/call', 'params' => ['name' => 'track_package', 'arguments' => ['tracking_number' => 'SR123456']], ]; $res = (new \GuzzleHttp\Client())->post('https://api.superroute.ca/mcp', ['json' => $payload]); print_r(json_decode($res->getBody(), true));
Prati pošiljku (bez tokena)
import requests payload = { 'jsonrpc': '2.0', 'id': 1, 'method': 'tools/call', 'params': {'name': 'track_package', 'arguments': {'tracking_number': 'SR123456'}}, } res = requests.post('https://api.superroute.ca/mcp', json=payload) print(res.json())
Prati pošiljku (bez tokena)
payload, _ := json.Marshal(map[string]interface{}{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": map[string]interface{}{ "name": "track_package", "arguments": map[string]interface{}{"tracking_number": "SR123456"}, }, }) req, _ := http.NewRequest("POST", "https://api.superroute.ca/mcp", bytes.NewBuffer(payload)) req.Header.Set("Content-Type", "application/json") resp, _ := http.DefaultClient.Do(req)
Prati pošiljku (bez tokena)
const res = await fetch('https://api.superroute.ca/mcp', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ jsonrpc: '2.0', id: 1, method: 'tools/call', params: { name: 'track_package', arguments: { tracking_number: 'SR123456' } }, }), }); const data = await res.json();
Prati pošiljku (bez tokena)
String body = "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"track_package\",\"arguments\":{\"tracking_number\":\"SR123456\"}}}"; HttpRequest req = HttpRequest.newBuilder() .uri(URI.create("https://api.superroute.ca/mcp")) .header("Content-Type", "application/json") .POST(HttpRequest.BodyPublishers.ofString(body)).build(); HttpResponse<String> res = HttpClient.newHttpClient().send(req, HttpResponse.BodyHandlers.ofString());
Prati pošiljku (bez tokena)
require 'net/http'; require 'json' uri = URI('https://api.superroute.ca/mcp') req = Net::HTTP::Post.new(uri, 'Content-Type' => 'application/json') req.body = JSON.dump({ jsonrpc: '2.0', id: 1, method: 'tools/call', params: { name: 'track_package', arguments: { tracking_number: 'SR123456' } } }) puts Net::HTTP.start(uri.hostname, uri.port) { |h| h.request(req) }.body