Event agenda sync: your registration system, feeding Dium

Event partners create the Flow, load sessions, open sponsor Pages and sign attendees in from their own systems, through the partner API.

CategoryEvents
DirectionYour system to Dium
PlanPartner setup
Set up byYour developers, with a key from Dium

What it does

It is one-way: your registration or agenda system pushes to Dium. Dium does not write back to your system.

Each event gets an external ID, so calling create again finds the same Flow instead of making a second one. Sessions and sponsor Pages are also matched, so re-sending an updated agenda updates them in place.

Ticket types map to profile types, so a sponsor lands as a Sponsor with the right to create their Page.

What data moves

DataDirectionWhen
Event (Flow) with your external IDYour system to DiumWhen the event is set up
Agenda sessionsYour system to DiumOn create and on each agenda change
Sponsor and exhibitor PagesYour system to DiumWhen a sponsor registers
Attendee sign-in and profile typeYour system to DiumEach time an attendee opens Dium
Back-to-event linkYour system to DiumStored with the Flow

What you need

  • A partner key with the scopes you need (for example sign-in tokens and Page creation)
  • Your origin on Dium's allowlist
  • Server-side code; the key never goes to the browser
  • Profile types in the Flow for each ticket type

Setup

  1. Get a key

    Talk to us. We register your partner entry, scopes and origin.

  2. Create or find the event

    Call ladder.php create with your external ID. Calling again returns the same Flow.

  3. Load the agenda

    Create session Waves for each talk. Re-sending updates sessions instead of duplicating.

  4. Open sponsor Pages

    Call exhibit.php create when a sponsor registers. Retries do not create a second Page.

  5. Sign attendees in

    Ask auth.php for a one-time token and redirect the browser to Dium with it.

Signing an attendee in

Your server asks for a token, then redirects the browser. The token lasts five minutes and works once.

Issue a one-time sign-in token
curl -X POST https://dium.io/api/auth.php \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: $DIUM_PARTNER_KEY" \
  -d '{"action":"issue_token","email":"[email protected]","name":"Ana L."}'

# Response (shape)
{"success": true, "token": "48-hex-characters", "expires_in": 300}
Keep the partner key on your server. Send it in the X-Api-Key header, not in the request body or a URL. Full details in the API reference.

Troubleshooting

We sent the agenda twice and see no duplicates. Is that right?

Yes. Sessions and Pages are matched, so a second send updates rather than copies.

We get 401 from the API

The key is missing or wrong. Send it in the X-Api-Key header.

We get 403 from the API

The key is valid but lacks the scope for that action. Ask us to add the scope.

Session times look shifted for a global event

Dium anchors times to the event's time zone and shows each member their own local time. Send times with a clear time zone.

Try it on a free Flow.

Free while you are under 50 members. Partner features are set up with our team.