Create Events API
Programmatically create events for your group using the Radius REST API.
The Radius API allows you to programmatically create events for your group. This is perfect for automating event creation from external systems, integrating with your own applications, or building custom workflows.
Read more about this feature in our blog post announcing the Events API.
Overview
The Events API provides a RESTful endpoint for creating events. Key features include:
- Simple REST API: Standard HTTP POST requests with JSON payloads
- Secure authentication: Bearer token authentication using API keys
- Group-scoped: Each API key is scoped to a specific group
- Full event support: Create events with all standard fields and options
Note: The API is included on all plans, including the Free tier. No upgrade required.
Authentication
All API requests require authentication using a Bearer token in the Authorization header.
Authorization: Bearer your_api_key_hereAPI keys are prefixed with rad_live_ for production use. Keep your API keys secure and never share them publicly.
Security: Treat your API key like a password. If you suspect it has been compromised, revoke it immediately and create a new one.
Creating an API key
To create an API key for your group:
- 1Navigate to your group's page
- 2Go to
Settings→API - 3Enter a descriptive name for your key (e.g., "Production Integration")
- 4Click
Create API Key - 5Copy your new API key immediately — it won't be shown again
Important: Your full API key is only displayed once when created. Make sure to copy it before leaving the page.
Endpoint
Create a new event by sending a POST request to:
https://radius.to/api/v1/groups/{group_slug}/events| Parameter | Description |
|---|---|
group_slug | Your group's URL slug (e.g., "toronto-tech-meetup") |
Request body
Send a JSON payload with the following fields:
| Field | Type | Description |
|---|---|---|
title | string | Event title (minimum 5 characters) |
description | string | Event description (minimum 50 characters, HTML supported) |
starts_at | datetime | Start time in ISO 8601 format (must be in the future) |
ends_at | datetime | End time in ISO 8601 format |
| Field | Type | Description |
|---|---|---|
location | string | Event location or address |
online | boolean | Set to true for virtual events |
attendance_limit | integer | Maximum number of attendees |
waitlist_enabled | boolean | Enable waitlist when event is full |
category_id | integer | Category ID for the event |
time_zone | string | Time zone (defaults to group's time zone). Example: America/New_York |
Example request
Here's an example using cURL:
curl -X POST https://radius.to/api/v1/groups/your-group-slug/events \
-H "Content-Type: application/json" \
-H "Authorization: Bearer rad_live_your_api_key" \
-d '{
"event": {
"title": "Monthly Tech Meetup",
"description": "Join us for our monthly gathering where we discuss the latest trends in technology. Network with fellow developers and learn something new!",
"starts_at": "2026-03-15T18:00:00-04:00",
"ends_at": "2026-03-15T21:00:00-04:00",
"location": "123 Main Street, Toronto, ON",
"attendance_limit": 50
}
}'Tip: Times are interpreted in UTC by default. Specify a time_zone field to use a different time zone.
Response
A successful request returns a 201 Created response with the event details:
{
"id": 12345,
"title": "Monthly Tech Meetup",
"description": "Join us for our monthly gathering...",
"starts_at": "2026-03-15T18:00:00Z",
"ends_at": "2026-03-15T21:00:00Z",
"location": "123 Main Street, Toronto, ON",
"attendance_limit": 50,
"url": "https://radius.to/e/monthly-tech-meetup-12345",
"created_at": "2026-02-06T10:30:00Z"
}Error handling
The API returns appropriate HTTP status codes and error messages:
| Status | Meaning | Common Causes |
|---|---|---|
| 400 | Bad Request | Invalid JSON syntax |
| 401 | Unauthorized | Missing or invalid API key |
| 403 | Forbidden | API key doesn't have permission, or key is for a different group |
| 404 | Not Found | Group not found |
| 422 | Unprocessable | Validation errors (title too short, past date, etc.) |
Error responses include a message explaining what went wrong:
{
"error": "Validation failed",
"message": "Title is too short (minimum 5 characters)"
}Rate limits
To ensure fair usage and prevent spam, the API has the following rate limits:
| Limit Type | Limit | Scope |
|---|---|---|
| API requests | 20/minute | Per API key |
| Event creation | 10/hour | Per group |
| Event creation | 50/day | Per group |
If you exceed these limits, you'll receive a 429 Too Many Requests response with a Retry-After header indicating when you can try again.
{
"error": "Rate limit exceeded",
"message": "Hourly limit exceeded. Groups can create up to 10 events per hour.",
"code": "rate_limited",
"retry_after": 1847
}Need higher limits? Contact us at hello@radius.to if you need higher rate limits for your integration.
Next steps
Now that you've learned how to use the Events API, here are some next steps: