v0 Overview (Frozen)
API v0 (Frozen)
https://api.dtpr.io/api/v0v0 is preserved, not maintained. It serves exactly what the retired dtpr.io v0 endpoint served — byte for byte, apart from the icon URLs in the response bodies, which now point at /api/v0/icons/ — quirks included, and its content will not change again. New integrations should use v2, or v1 for the device taxonomy.The v0 API returns pre-rendered, locale-specific element data at:
GET /api/v0/{locale}
Where {locale} is one of the six published language codes: en, fr, es, pt, tl, km. Any other value returns an empty array ([]) at 200, not a 404 — that is how the original handler behaved, and it is preserved.
The locales query parameter is ignored on v0: every v0 document is single-locale already.
Icons
GET /api/v0/icons/{icon_id}.svg
v0 serves 123 icons as image/svg+xml. Icon namespaces do not fall back across versions, so the ids that exist only in v1 return 404 here. The icon value in every v0 element record already points at this path.
Differences from v1
| Feature | v0 | v1 |
|---|---|---|
| Locale handling | Separate endpoint per locale | Typed endpoints with a ?locales= filter |
| Schema metadata | Not included | Included on every object |
| Categories | Not available | Full category endpoint |
| Datachain type filtering | Not available | Filter by device or ai |
| Variable definitions | Not included | Full variable schema with labels |
Migration
v0 and v1 are both frozen, so migrating from one to the other buys you nothing durable — the previous advice to replace v0 calls with GET /api/v1/elements?locales=en is moot, and that particular call returns 500 anyway.
If you only need to keep working, repoint each call at the new host and drop the extra dtpr path segment the retired base carried. The English document, for example, is now:
GET https://api.dtpr.io/api/v0/en
If you are building something new, use v2.