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.

HTTP Header
Authorization: Bearer your_api_key_here

API 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:

  1. 1Navigate to your group's page
  2. 2Go to SettingsAPI
  3. 3Enter a descriptive name for your key (e.g., "Production Integration")
  4. 4Click Create API Key
  5. 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:

POST
https://radius.to/api/v1/groups/{group_slug}/events
ParameterDescription
group_slugYour group's URL slug (e.g., "toronto-tech-meetup")

Request body

Send a JSON payload with the following fields:

Required Fields
FieldTypeDescription
titlestringEvent title (minimum 5 characters)
descriptionstringEvent description (minimum 50 characters, HTML supported)
starts_atdatetimeStart time in ISO 8601 format (must be in the future)
ends_atdatetimeEnd time in ISO 8601 format
Optional Fields
FieldTypeDescription
locationstringEvent location or address
onlinebooleanSet to true for virtual events
attendance_limitintegerMaximum number of attendees
waitlist_enabledbooleanEnable waitlist when event is full
category_idintegerCategory ID for the event
time_zonestringTime zone (defaults to group's time zone). Example: America/New_York

Example request

Here's an example using cURL:

bash
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:

JSON Response201 Created
{
"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:

StatusMeaningCommon Causes
400Bad RequestInvalid JSON syntax
401UnauthorizedMissing or invalid API key
403ForbiddenAPI key doesn't have permission, or key is for a different group
404Not FoundGroup not found
422UnprocessableValidation errors (title too short, past date, etc.)

Error responses include a message explaining what went wrong:

JSON Response422 Unprocessable Entity
{
"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 TypeLimitScope
API requests20/minutePer API key
Event creation10/hourPer group
Event creation50/dayPer 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.

JSON Response429 Too Many Requests
{
"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: