Every request will be authenticated with your personal API key, sent as a Bearer token in the
Authorization header:
Authorization: Bearer treads_4a7f9b2c1e8d3f6a0b5c7d9e2f4a6b8c1d3e5f7a9b0c2d4e6f8a0b1c3d5e7f9a
Get a key from Account → API & Webhooks - see Getting started if you haven't generated one yet.
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/v1/photos |
List your uploaded photos |
| POST | /api/v1/photos |
Upload a new photo |
| GET | /api/v1/status |
List your recent status posts |
| POST | /api/v1/status |
Create a new status post |
This list will grow as endpoints are built - check back here for updates.
A rough idea of what calling the (not-yet-live) API will look like from PHP, using only cURL - no SDK required:
<?php
$api_key = 'treads_4a7f9b2c1e8d3f6a0b5c7d9e2f4a6b8c1d3e5f7a9b0c2d4e6f8a0b1c3d5e7f9a';
$ch = curl_init('https://treads.nz/api/v1/status');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $api_key,
'Accept: application/json',
],
]);
$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($http_code === 200) {
$status_posts = json_decode($response, true);
// ...
}
{
"data": [
{
"id": 771234,
"body": "Just laced up a new pair.",
"created_at": "2026-09-16T04:12:01+00:00"
}
],
"meta": {
"page": 1,
"per_page": 20,
"total": 1
}
}
Want to be notified the moment something happens instead of polling an endpoint like this? See Webhooks - those work today.