The Evento Public API provides programmatic access to public event data from the Evento platform. This RESTful API allows developers to retrieve event information, user events, and build integrations with Evento.
Base URL: https://api.evento.so/api/public/v1
Version: 1.0.0
Authentication: API key required in x-evento-api-key header

Quick Start

Get up and running with the Evento Public API in minutes.

Available Endpoints

The Evento Public API offers 5 endpoints to access event data:

Events

  • GET /events/ - Retrieve detailed information about a specific event

Users

  • GET /users//events - Get all public events created by a user
  • GET /users//profile-events - Get events created by or RSVP’d to by a user
  • GET /users//upcoming-events - Get upcoming events hosted by a user
  • GET /users//past-events - Get past events hosted by a user
All endpoints return only public, published events. Private or draft events are never accessible via the Public API.

Authentication

All API requests require authentication via an API key. Include your API key in the request headers:
x-evento-api-key: YOUR_API_KEY

Example Request

curl -H "x-evento-api-key: YOUR_API_KEY" \
  https://api.evento.so/api/public/v1/events/EVENT_ID

Obtaining an API Key

To obtain an API key, please contact the Evento development team:

Schedule API Access Call

Our team will provide you with an API key and discuss your use case.

Response Format

All API responses follow a consistent JSON structure:

Success Response

{
  "success": true,
  "message": "Descriptive success message",
  "data": { /* Response data */ }
}

Error Response

{
  "success": false,
  "message": "Error description"
}

Features

Date Filtering

Filter events by date range using since, from, and to parameters

Pagination

Control result sets with limit and offset parameters (max 100 per page)

Event Details

Get comprehensive event information including location, dates, creator, and links

Contribution Methods

Access payment and donation methods for events

Query Parameters

Date Filtering

  • since or from - Filter events starting from this date (ISO 8601)
  • to - Filter events up to this date (ISO 8601)

Pagination

  • limit - Number of results to return (1-100, default varies by endpoint)
  • offset - Number of results to skip for pagination
Example:
curl -H "x-evento-api-key: YOUR_API_KEY" \
  "https://api.evento.so/api/public/v1/users/johndoe/events?since=2024-01-01T00:00:00Z&limit=20&offset=0"

Event Object

Events returned by the API include the following fields:
FieldTypeDescription
idstringUnique event identifier
titlestringEvent title
descriptionstringEvent description (may contain markdown)
coverstringURL to event cover image
locationstringEvent location
start_datestringEvent start date/time (ISO 8601)
end_datestring | nullEvent end date/time (ISO 8601)
timezonestringEvent timezone (IANA timezone)
statusstringAlways “published” for public API
visibilitystringAlways “public” for public API
costnumber | nullEvent cost in USD (null = free)
created_atstringEvent creation timestamp
creatorobjectEvent creator information
linksobjectExternal links (Spotify, Wavlake)
contributionsobjectPayment/donation methods

HTTP Status Codes

Rate Limiting

Currently, there are no enforced rate limits. However, we recommend:
  • Maximum 100 requests per minute per API key
  • Implement exponential backoff for retries
  • Cache responses when appropriate
Please use the API responsibly. Excessive usage may result in rate limiting being implemented.

Best Practices

Caching

Implement appropriate caching to reduce API calls

Error Handling

Always check the success field before processing data

Pagination

Use pagination for large result sets to improve performance

Date Filtering

Use date filters to retrieve only relevant events

Code Examples

JavaScript/Node.js

const EVENTO_API_KEY = 'YOUR_API_KEY';
const BASE_URL = 'https://api.evento.so/api/public/v1';

async function getUserUpcomingEvents(username) {
  const response = await fetch(
    `${BASE_URL}/users/${username}/upcoming-events?limit=10`,
    {
      headers: {
        'x-evento-api-key': EVENTO_API_KEY
      }
    }
  );
  
  const data = await response.json();
  
  if (!data.success) {
    throw new Error(data.message);
  }
  
  return data.data;
}

Python

import requests

EVENTO_API_KEY = 'YOUR_API_KEY'
BASE_URL = 'https://api.evento.so/api/public/v1'

def get_event(event_id):
    headers = {'x-evento-api-key': EVENTO_API_KEY}
    response = requests.get(f'{BASE_URL}/events/{event_id}', headers=headers)
    
    data = response.json()
    
    if not data['success']:
        raise Exception(data['message'])
    
    return data['data']

Need Help?

Changelog

Version 1.0.0 (August 26, 2025)

  • Renamed API path from /api/ext/v1 to /api/public/v1
  • Reorganized endpoints to be more RESTful
  • Added 4 new endpoints for user events
  • Improved documentation and added comprehensive examples