Not authenticated
POST /api/v1/auth/login
POST /api/v1/auth/signup
GET /api/v1/auth/me
Requires: Bearer Token
GET /api/v1/public/nearby
No Auth Required โœ“

Get cell statistics (post count and active boost count) for nearby H3 cells. Default radius is 10km.

GET /api/v1/public/posts/cell/:h3Cell
No Auth Required โœ“

Get all posts in a specific H3 cell. Use this when a user clicks on a hexagon on the map.

GET /api/v1/public/boosts/cell/:h3Cell
No Auth Required โœ“

Get all boosts covering a specific H3 cell. Use this when a user clicks on a hexagon on the map.

GET /api/v1/public/posts/boost/:boostId
No Auth Required โœ“

Get all posts associated with a specific boost campaign.

GET /api/v1/public/posts/:postId
No Auth Required

Get a single post by its ID. Returns sanitized public data.

GET /api/v1/public/boosts/:boostId
No Auth Required

Get a single boost campaign by its ID. Returns full boost details with live_status.

GET /api/v1/public/feed
No Auth Required โœ“

Combined nearby posts + active boosts in a single efficient call. No authentication required.

GET /api/v1/public/posts/nearby
No Auth Required โœ“

Get nearby posts without authentication. Returns sanitized public data only.

GET /api/v1/public/boosts/nearby
No Auth Required โœ“

Get active boost campaigns near a location without authentication.

โ„น๏ธ Public API Info

Public endpoints are designed for:

  • Pre-login browsing experience
  • Faster responses (no auth overhead)

Rate Limit: 30 requests/minute (vs 100 for authenticated)

Sanitized Fields: Sensitive data like user_id, privy_address, device_id are stripped from responses.

GET /api/v1/user/profile
Requires: Bearer Token

Returns the authenticated user's profile (username, pfp, email)

PATCH /api/v1/user/profile
Requires: Bearer Token, multipart/form-data

Update username and/or profile picture. Both fields are optional.

Click to select profile picture (max 5MB, images only)
๐Ÿ“ฑ Mobile Integration Guide click to toggle
GET /api/v1/user/wallet/balance
Requires: Bearer Token

Returns the authenticated user's Shelbynet wallet balances (APT and ShelbyUSD)

GET /api/v1/user/posts
Requires: Bearer Token

Returns posts created by the authenticated user

POST /api/v1/user/upload
Requires: Bearer Token, multipart/form-data

Upload a file to Shelbynet with geolocation metadata. Creates a post in the database.

Drop file here or click to browse
GET /api/v1/user/posts/nearby?latitude={latitude}&longitude={longitude}&radius={radius}
Requires: Bearer Token

Search for posts near a location using H3 geospatial indexing

GET /api/v1/user/boosts/nearby?latitude={latitude}&longitude={longitude}&radius={radius}
Requires: Bearer Token

Search for active boost campaigns near a location

Map Visualization

Visualizes nearby results with H3 hexagons and boost coverage areas

POST /api/v1/admin/boosts
Requires: Bearer Token (Admin)

Create a new boost campaign with location targeting

๐Ÿ“ท Click to select task image (max 10MB)
GET /api/v1/admin/boosts?live_status={live_status}
Requires: Bearer Token (Admin)
DELETE /api/v1/admin/boosts/:boostId
Requires: Bearer Token (Admin)
Boosts Map
GET /api/v1/admin/posts?boost_status={boost_status}
Requires: Bearer Token (Admin)

Returns all posts in the system with optional filtering

PUT /api/v1/admin/posts/:postId
Requires: Bearer Token (Admin)

Update a post's boost status