Live streaming
Every attendee receives a certificate of participation. Virtual passes let you join the main stage live from anywhere.
Overview
More than eighty speakers share what they have learned the hard way. Clear prices, honest advice and no surprises along the way. Sponsors meet decision-makers in a relaxed, friendly setting. We listen first, then build a plan around what you actually need.
Installation
Install the SDK with the package manager your project already uses. It needs Node 18 or newer.
$ npm install @opal/sdk$ yarn add @opal/sdk$ pnpm add @opal/sdkConfiguration
Thousands of attendees already trust us, and we work hard to keep it that way. Every attendee receives a certificate of participation. Create a file named opal.config.json in the project root:
{
"project": "opal",
"region": "us-east",
"categories": ["keynote", "workshop", "panel"],
"retries": 3,
"timeoutMs": 12000,
"webhooks": { "enabled": true }
}| Option | Type | Default | Description |
|---|---|---|---|
project | string | - | Your project key from the dashboard. |
region | string | "us-east" | Data centre closest to your attendees. |
retries | number | 3 | How often a failed call is retried. |
timeoutMs | number | 10000 | Time before a request is cancelled. |
webhooks.enabled | boolean | false | Send events to your endpoint. |
Your first request
Friendly people answer your questions quickly, by phone, chat or email.
- Create an API keyOpen the dashboard, choose Settings › API keys and copy a new secret key.
- Store it safelyKeep the key in an environment variable, never in your source code.
- Make the callRun the snippet below; it prints the first page of results.
import { Client } from "@opal/sdk";
const client = new Client({ apiKey: process.env.API_KEY });
// list the newest tickets in one category
const page = await client.tickets.list({ category: "keynote", limit: 20 });
for (const item of page.data) {
console.log(item.name, item.price);
}API reference
Every endpoint returns JSON and uses standard HTTP status codes.
/v1/ticketsList tickets with paging and filters./v1/ticketsCreate a new ticket./v1/tickets/{id}Update some fields of a ticket./v1/tickets/{id}Archive a ticket; it can be restored for 30 days.{
"data": [
{ "id": "ticket_1967", "name": "Workshop ticket", "price": 143 }
],
"has_more": true
}Troubleshooting
Next steps
Start in minutes and get help from a real person whenever you need it.