curl "https://evento.so/api/public/v1/users/johndoe/events?type=upcoming&limit=10" \
-H "x-evento-api-key: YOUR_API_KEY"
const username = 'johndoe';
const params = new URLSearchParams({
type: 'upcoming',
limit: '10',
offset: '0'
});
const response = await fetch(
`https://evento.so/api/public/v1/users/${username}/events?${params}`,
{
headers: {
'x-evento-api-key': process.env.EVENTO_API_KEY
}
}
);
const payload = await response.json();
import os
import requests
response = requests.get(
'https://evento.so/api/public/v1/users/johndoe/events',
params={'type': 'upcoming', 'limit': 10, 'offset': 0},
headers={'x-evento-api-key': os.environ['EVENTO_API_KEY']}
)
payload = response.json()
{
"success": true,
"message": "Events fetched successfully",
"data": {
"events": [
{
"id": "evt_future1",
"title": "Summer Festival 2026",
"description": "Annual summer celebration",
"cover": "https://cdn.evento.so/covers/future1.jpg",
"location": "Central Park, NY",
"start_date": "2026-06-21T14:00:00Z",
"end_date": "2026-06-21T22:00:00Z",
"timezone": "America/New_York",
"status": "published",
"visibility": "public",
"cost": 25.0,
"created_at": "2026-05-15T09:00:00Z",
"creator": {
"id": "usr_123",
"username": "johndoe",
"image": "https://cdn.evento.so/avatars/123.jpg",
"verification_status": "verified"
},
"links": {
"spotify_url": "https://open.spotify.com/playlist/summer2026",
"wavlake_url": null
},
"contributions": {
"cashapp": "$johndoe",
"venmo": "@johndoe",
"paypal": "johndoe@example.com",
"btc_lightning": null
}
}
],
"pagination": {
"limit": 10,
"offset": 0,
"total": 1
}
}
}
{
"success": false,
"message": "Username missing or user not found"
}
Public API
Fetch user events
List public events by username with filtering and pagination
GET
/
api
/
public
/
v1
/
users
/
{username}
/
events
curl "https://evento.so/api/public/v1/users/johndoe/events?type=upcoming&limit=10" \
-H "x-evento-api-key: YOUR_API_KEY"
const username = 'johndoe';
const params = new URLSearchParams({
type: 'upcoming',
limit: '10',
offset: '0'
});
const response = await fetch(
`https://evento.so/api/public/v1/users/${username}/events?${params}`,
{
headers: {
'x-evento-api-key': process.env.EVENTO_API_KEY
}
}
);
const payload = await response.json();
import os
import requests
response = requests.get(
'https://evento.so/api/public/v1/users/johndoe/events',
params={'type': 'upcoming', 'limit': 10, 'offset': 0},
headers={'x-evento-api-key': os.environ['EVENTO_API_KEY']}
)
payload = response.json()
{
"success": true,
"message": "Events fetched successfully",
"data": {
"events": [
{
"id": "evt_future1",
"title": "Summer Festival 2026",
"description": "Annual summer celebration",
"cover": "https://cdn.evento.so/covers/future1.jpg",
"location": "Central Park, NY",
"start_date": "2026-06-21T14:00:00Z",
"end_date": "2026-06-21T22:00:00Z",
"timezone": "America/New_York",
"status": "published",
"visibility": "public",
"cost": 25.0,
"created_at": "2026-05-15T09:00:00Z",
"creator": {
"id": "usr_123",
"username": "johndoe",
"image": "https://cdn.evento.so/avatars/123.jpg",
"verification_status": "verified"
},
"links": {
"spotify_url": "https://open.spotify.com/playlist/summer2026",
"wavlake_url": null
},
"contributions": {
"cashapp": "$johndoe",
"venmo": "@johndoe",
"paypal": "johndoe@example.com",
"btc_lightning": null
}
}
],
"pagination": {
"limit": 10,
"offset": 0,
"total": 1
}
}
}
{
"success": false,
"message": "Username missing or user not found"
}
Endpoint
GET /api/public/v1/users/{username}/events
Authentication
This endpoint requires a public API key.
x-evento-api-key: YOUR_API_KEY
Path parameters
string
required
Username (case-insensitive, no
@ prefix).Query parameters
string
Optional filter:
upcoming, past, or profile.integer
default:"20"
Results per page (max 100).
integer
default:"0"
Pagination offset.
Request examples
curl "https://evento.so/api/public/v1/users/johndoe/events?type=upcoming&limit=10" \
-H "x-evento-api-key: YOUR_API_KEY"
const username = 'johndoe';
const params = new URLSearchParams({
type: 'upcoming',
limit: '10',
offset: '0'
});
const response = await fetch(
`https://evento.so/api/public/v1/users/${username}/events?${params}`,
{
headers: {
'x-evento-api-key': process.env.EVENTO_API_KEY
}
}
);
const payload = await response.json();
import os
import requests
response = requests.get(
'https://evento.so/api/public/v1/users/johndoe/events',
params={'type': 'upcoming', 'limit': 10, 'offset': 0},
headers={'x-evento-api-key': os.environ['EVENTO_API_KEY']}
)
payload = response.json()
Success response
{
"success": true,
"message": "Events fetched successfully",
"data": {
"events": [
{
"id": "evt_future1",
"title": "Summer Festival 2026",
"description": "Annual summer celebration",
"cover": "https://cdn.evento.so/covers/future1.jpg",
"location": "Central Park, NY",
"start_date": "2026-06-21T14:00:00Z",
"end_date": "2026-06-21T22:00:00Z",
"timezone": "America/New_York",
"status": "published",
"visibility": "public",
"cost": 25.0,
"created_at": "2026-05-15T09:00:00Z",
"creator": {
"id": "usr_123",
"username": "johndoe",
"image": "https://cdn.evento.so/avatars/123.jpg",
"verification_status": "verified"
},
"links": {
"spotify_url": "https://open.spotify.com/playlist/summer2026",
"wavlake_url": null
},
"contributions": {
"cashapp": "$johndoe",
"venmo": "@johndoe",
"paypal": "johndoe@example.com",
"btc_lightning": null
}
}
],
"pagination": {
"limit": 10,
"offset": 0,
"total": 1
}
}
}
{
"success": false,
"message": "Username missing or user not found"
}
Filter semantics
upcoming
upcoming
Returns events where
start_date >= now.past
past
Returns events where
start_date < now.profile
profile
Returns profile-visible events (created by or RSVP-associated to the user).
Pagination pattern
async function getAllEventsForUser(username, apiKey) {
const events = [];
let offset = 0;
const limit = 50;
while (true) {
const params = new URLSearchParams({
type: 'upcoming',
limit: String(limit),
offset: String(offset)
});
const response = await fetch(
`https://evento.so/api/public/v1/users/${username}/events?${params}`,
{ headers: { 'x-evento-api-key': apiKey } }
);
const json = await response.json();
events.push(...json.data.events);
if (offset + limit >= json.data.pagination.total) break;
offset += limit;
}
return events;
}
import os
import requests
def get_all_events_for_user(username):
events = []
offset = 0
limit = 50
while True:
response = requests.get(
f'https://evento.so/api/public/v1/users/{username}/events',
params={'type': 'upcoming', 'limit': limit, 'offset': offset},
headers={'x-evento-api-key': os.environ['EVENTO_API_KEY']}
)
payload = response.json()['data']
events.extend(payload['events'])
if offset + limit >= payload['pagination']['total']:
break
offset += limit
return events
Use cases
Organizer profiles
Show upcoming and past events on user profile pages.
Creator analytics
Build aggregate reports for event volume and cadence by organizer.
Calendar exports
Transform public schedules into external calendars and feeds.
Discovery pages
Curate creators and surface upcoming events by niche.
Next steps
Get /events/{eventId}
Retrieve a single public event.
Get /events/{eventId}/guests
Retrieve guests and RSVP statuses.
⌘I