REST API Documentation

Mateusz Oleksy API

One platform, one key. A REST API with unified access to my services — starting with shipment tracking across every carrier, and soon a StockX sneaker database as well. Every response is JSON, authorized with a single X-API-Key header.

Base URL
https://api.mateuszoleksy.pl
Format
application/json
Authorization
X-API-Key

Start

Authorization

Every request to /api/* requires an X-API-Key header carrying your key. Without it the API responds with 401 Not authenticated. Keep your key server-side — never ship it in browser code.

Authorization header
X-API-Key: YOUR_API_KEY

Today, a single key grants full access to every endpoint included in its plan — there's no self-service management, scoping, or rotation yet. That's next.

PlannedAuthorization roadmap

Self-service key management

Create, inspect usage, and revoke your own keys from a dashboard — no need to ask us.

Scopes

Restrict a key to only the services it needs, e.g. tracking:read or sneakers:read.

Key rotation

Issue a new key while the old one keeps working for a grace period, so nothing breaks mid-rotation.

GET/api/keys/me
draft — subject to change
{
  "id": 42,
  "name": "Production key",
  "plan": "Pro",
  "scopes": ["tracking:read"],
  "createdAt": "2026-05-12T09:00:00Z",
  "lastUsedAt": "2026-07-29T07:40:40Z"
}
POST/api/keys/rotate

Issues a new key. The old one keeps working until it expires, so in-flight deployments don't break mid-rotation.

draft — subject to change
{
  "newKey": "mo_live_9f2c...",
  "oldKeyValidUntil": "2026-08-05T00:00:00Z"
}

Tracking

Shipment tracking

A single GET request returns the shipment's full event history (traces) as reported by the carrier — the latest entry reflects the current status. The carrier is detected automatically from the number, no need to specify it.

GET/api/track

Query parameters

ParameterTypeRequiredDescription
labelNumberstringrequiredThe shipment / waybill number to track.

Request

curl -G https://api.mateuszoleksy.pl/api/track \
  --data-urlencode "labelNumber=00159123456789012345" \
  -H "X-API-Key: YOUR_API_KEY"

Example response — live capture

{
  "traces": [
    {
      "code": "DPD_030103",
      "status": "Zarejestrowano dane przesyłki, przesyłka jeszcze nie nadana",
      "date": "2026-07-20T23:49:39+02:00"
    },
    {
      "code": "DPD_500500",
      "status": "Nadanie paczki za granicą",
      "date": "2026-07-24T16:16:44+02:00"
    },
    // ...7 more events omitted
    {
      "code": "DPD_170310",
      "status": "Powiadomienie mail",
      "date": "2026-07-29T07:40:40+02:00"
    }
  ],
  "courier": {
    "id": 1,
    "name": "DPD",
    "logo": "https://www.epaka.pl/img/kurierIkony/dpd-logo.svg"
  }
}

Both responses above were captured live from the API. The endpoint passes through the raw JSON returned by the upstream data provider (epaka.pl), so field values — and their language — mirror what the carrier itself reports. Use the live tester below with a real shipment number to see the exact shape for your case.

Response fields

ParameterTypeRequiredDescription
tracesarrayoptionalTracking events for the shipment. Ordering is set by the carrier and is not guaranteed to be chronological.
traces[].codestringoptionalCarrier-specific event code, e.g. "UPS_D", "DPD_170310".
traces[].statusstringoptionalHuman-readable status text for the event, as reported by the carrier (may be empty).
traces[].datestringoptionalEvent timestamp, ISO 8601 with offset.
courierobjectoptionalCarrier metadata (id, name, logo). Not present for every carrier — e.g. omitted for InPost international.
detailstringoptionalPresent only on error responses — description of what went wrong.

Tracking

Live tester

Enter a shipment number and check its status in real time. The request goes through this page's server-side proxy, so the API key never reaches the browser.

Interactive tester — track a shipment
Try:

Tracking

Supported carriers

The carrier is detected automatically from the shipment number. Supported carriers include:

InPostDPDDHLGLSUPSFedExPoczta PolskaOrlen PaczkaPocztexGEIS

Sneakers

SnkrsDB

Live69,000+ sneakers, streetwear, and collectible items

Search StockX-sourced product data by name, SKU, or colorway and get back pricing, release dates, and images. The same catalog also powers the public SnkrsDB browser — no key needed there, just use this endpoint if you want the data in your own app.

Browse public catalog
GET/api/snkrsdb/sneakers?query=...

Query parameters

ParameterTypeRequiredDescription
querystringrequiredSearch phrase — model name, SKU, or colorway. Minimum 2 characters.
limitnumberoptionalMaximum number of results (default 20, max 100).

Request

curl -G https://api.mateuszoleksy.pl/api/snkrsdb/sneakers \
  --data-urlencode "query=yeezy boost 350 v2 onyx" \
  -H "X-API-Key: YOUR_API_KEY"

Example response — live capture

200 OK
[
  {
    "sku": "HQ4540",
    "name": "adidas Yeezy Boost 350 V2 Onyx",
    "brand": "adidas",
    "colorway": "Onyx/Onyx/Onyx",
    "retailPrice": 230,
    "releaseDate": "2022-03-05",
    "image": "https://images.stockx.com/images/adidas-Yeezy-Boost-350-V2-Onyx-Product.jpg",
    "weeklyOrders": null,
    "popularityRank": null
  },
  {
    "sku": "FZ6049",
    "name": "adidas Yeezy Boost 350 V2 Onyx (Infants)",
    "brand": "adidas",
    "colorway": "Onyx/Onyx/Onyx",
    "retailPrice": 140,
    "releaseDate": "2024-08-05",
    "image": "https://images.stockx.com/images/adidas-Yeezy-Boost-350-V2-Onyx-Infants.jpg",
    "weeklyOrders": null,
    "popularityRank": null
  }
]

Captured live from the API. The response is a plain array ordered by name — most items don't have sales-volume data yet, so weeklyOrders and popularityRank are frequently null.

Response fields

ParameterTypeRequiredDescription
skustringoptionalStyle code / SKU, when known.
namestringoptionalProduct title.
brandstringoptionalBrand name.
colorwaystringoptionalColorway description.
retailPricenumberoptionalOriginal retail price in USD.
releaseDatestringoptionalRelease date, when known.
imagestringoptionalProduct image URL.
weeklyOrdersnumberoptionalRecent sales-volume signal — null until tracked.
popularityRanknumberoptionalRank across the catalog, lower is more popular — null until tracked.
Browse the public catalog — SnkrsDB

Reference

Response codes

The API uses standard HTTP status codes. Error response bodies include a detail field describing what went wrong.

200OK — data returned successfully.
401Not authenticated — missing or invalid X-API-Key header.
404No resource found for the given identifier.
422Validation Error — a required parameter is missing.
429Too Many Requests — rate limit exceeded for this key.
5xxServer error or upstream data-provider error.

Platform

Service status

Current status of the Mateusz Oleksy API platform components.

All key systems are operational

API Gateway

api.mateuszoleksy.pl

Operational

Tracking

/api/track

Operational

SnkrsDB

/api/snkrsdb/sneakers

Operational

Platform

Changelog

Change history and planned API releases.

  1. v1.32026-07
    • Breaking: all endpoints moved under /api/* — /v1/track is now /api/track, /snkrsdb/sneakers is now /api/snkrsdb/sneakers.
    • Dropped path versioning in favor of one consistent prefix for every service.
  2. v1.22026-07
    • StockX sneakers module is live — search by name, SKU, or colorway across 69,000+ items.
    • Added the public Stock catalog browser — search, filter, and sort with no API key required.
  3. v1.12026-07
    • New live tracking tester added to the docs.
    • Expanded list of supported carriers.
  4. v1.02026-05
    • Public release of the /v1/track endpoint.
    • Authorization via the X-API-Key header.