Public API v1 • Reference

Confera Public API

A complete, copy/paste reference — no special tools required.

Reference

This reference is designed for real-world usage: every endpoint includes a plain-English explanation and a ready-to-copy request.

For a non-technical guide, start with Getting Started.

Authentication

Send your key using X-API-Key. Keys are server-only secrets.

Example
bash
curl "https://your-domain/api/public/v1/health" \
  -H "X-API-Key: cat_..."
GET/api/public/v1/health

Health

Use this first to confirm your key works.

Request
bash
curl "https://your-domain/api/public/v1/health" \
  -H "X-API-Key: cat_..."
GET/api/public/v1/website/site

Website: Site

Fetch the website “site document” to render content on your own front-end.

Request
bash
curl "https://your-domain/api/public/v1/website/site" \
  -H "X-API-Key: cat_..."
GET/api/public/v1/website/pages

Website: Pages (deprecated)

Kept for backward compatibility. Prefer /api/public/v1/website/site.

Request
bash
curl "https://your-domain/api/public/v1/website/pages" \
  -H "X-API-Key: cat_..."
GET/api/public/v1/events/events

Events: Events

List schedule events (talks, workshops, etc.).

Request
bash
curl "https://your-domain/api/public/v1/events/events?limit=50" \
  -H "X-API-Key: cat_..."
GET/api/public/v1/events/venues

Events: Venues

List venues (rooms/locations).

Request
bash
curl "https://your-domain/api/public/v1/events/venues" \
  -H "X-API-Key: cat_..."
GET/api/public/v1/events/speakers

Events: Speakers

List speakers for your schedule UI.

Request
bash
curl "https://your-domain/api/public/v1/events/speakers" \
  -H "X-API-Key: cat_..."
GET/api/public/v1/events/workshops

Events: Workshops

List published workshops (capacity, pricing, and availability signals).

Request
bash
curl "https://your-domain/api/public/v1/events/workshops?limit=50" \
  -H "X-API-Key: cat_..."
GET/api/public/v1/events/workshops/registrations

Events: Workshop registrations

List a registration’s workshop enrollments (confirmed/waitlisted/offered).

Request
bash
curl "https://your-domain/api/public/v1/events/workshops/registrations?registrationId=<registration_id>&limit=50" \
  -H "X-API-Key: cat_..."
POST/api/public/v1/events/workshops/registrations

Events: Register for a workshop

Enrolls a registration into a workshop using the same capacity + waitlist rules as the Confera dashboard.

Request
bash
curl -X POST "https://your-domain/api/public/v1/events/workshops/registrations" \
  -H "X-API-Key: cat_..." \
  -H "Content-Type: application/json" \
  -d '{"registrationId":"<registration_id>","workshopId":"<workshop_id>"}'
POST/api/public/v1/events/workshops/payment-proof/upload-url

Events: Workshop payment proof upload URL

Returns a signed upload URL (PUT) plus a storage:// URI. Upload server-side, then attach the URI to the workshop registration.

Request
bash
curl -X POST "https://your-domain/api/public/v1/events/workshops/payment-proof/upload-url" \
  -H "X-API-Key: cat_..." \
  -H "Content-Type: application/json" \
  -d '{"workshopRegistrationId":"<workshop_registration_id>","filename":"receipt.png","contentType":"image/png"}'
GET/api/public/v1/events/workshops/registrations/:id

Events: Get workshop registration

Fetch one workshop registration (status, offer expiry, payment proof).

Request
bash
curl "https://your-domain/api/public/v1/events/workshops/registrations/<workshop_registration_id>" \
  -H "X-API-Key: cat_..."
PATCH/api/public/v1/events/workshops/registrations/:id

Events: Set workshop payment proof

Attach the uploaded payment proof (a storage:// URI) to confirm payment.

Request
bash
curl -X PATCH "https://your-domain/api/public/v1/events/workshops/registrations/<workshop_registration_id>" \
  -H "X-API-Key: cat_..." \
  -H "Content-Type: application/json" \
  -d '{"paymentProofUrl":"storage://workshop-payment-evidence/..."}'
POST/api/public/v1/badges/checkin

Badges: Check-in

Record a badge scan/check-in (kiosk usage).

Request
bash
curl -X POST "https://your-domain/api/public/v1/badges/checkin" \
  -H "X-API-Key: cat_..." \
  -H "Content-Type: application/json" \
  -d '{"qr":"ABC123","location":"kiosk-1"}'
POST/api/public/v1/attendance/checkin

Attendance: Check-in

Record an attendance scan (daily badges).

Request
bash
curl -X POST "https://your-domain/api/public/v1/attendance/checkin" \
  -H "X-API-Key: cat_..." \
  -H "Content-Type: application/json" \
  -d '{"qr":"confera-attendance:DAY1-XYZ","location":"gate-a","dayDate":"2026-02-03"}'
GET/api/public/v1/abstracts/abstracts

Abstracts: Accepted

Lists accepted abstracts. Optional include=authors.

Request
bash
curl "https://your-domain/api/public/v1/abstracts/abstracts?limit=50&include=authors" \
  -H "X-API-Key: cat_..."
GET/api/public/v1/abstracts/abstracts/:abstractId

Abstracts: Get accepted

Fetch a single accepted abstract. Optional include=authors.

Request
bash
curl "https://your-domain/api/public/v1/abstracts/abstracts/ABS123?include=authors" \
  -H "X-API-Key: cat_..."
POST/api/public/v1/abstracts/attachments/upload-url

Abstracts: Attachment upload URL

Returns a signed upload URL (PUT) plus a storage:// URI for your submission.

Request
bash
curl -X POST "https://your-domain/api/public/v1/abstracts/attachments/upload-url" \
  -H "X-API-Key: cat_..." \
  -H "Content-Type: application/json" \
  -d '{"registrationId":"<registration_id>","kind":"attachment","filename":"abstract.pdf","contentType":"application/pdf"}'
GET/api/public/v1/abstracts/submissions

Abstracts: List submissions

Lists submissions for a registration (your API key’s conference only). Optional include=authors.

Request
bash
curl "https://your-domain/api/public/v1/abstracts/submissions?registrationId=<registration_id>&include=authors&limit=50" \
  -H "X-API-Key: cat_..."
POST/api/public/v1/abstracts/submissions

Abstracts: Submit

Submits an abstract for a registration. Requires at least one author; attachments can be required by conference settings.

Request
bash
curl -X POST "https://your-domain/api/public/v1/abstracts/submissions" \
  -H "X-API-Key: cat_..." \
  -H "Content-Type: application/json" \
  -d '{
    "registrationId": "<registration_id>",
    "title": "My Research Title",
    "track": "Cardiology",
    "presentationType": "poster",
    "keywords": ["heart", "ecg"],
    "objectiveText": "...",
    "methodsText": "...",
    "resultsText": "...",
    "conclusionText": "...",
    "studyType": "observational",
    "attachments": { "uri": "storage://abstract-attachments/..." },
    "authors": [
      { "fullName": "Aisha Khan", "email": "aisha@example.com", "affiliationInstitutionId": "<university_id>" }
    ],
    "presentingAuthorIndex": 0
  }'
GET/api/public/v1/abstracts/submissions/:abstractId

Abstracts: Get submission

Fetch a single submission by ID. Optional include=authors.

Request
bash
curl "https://your-domain/api/public/v1/abstracts/submissions/<abstract_id>?include=authors" \
  -H "X-API-Key: cat_..."
GET/api/public/v1/exhibition/exhibits

Exhibition: Exhibits

Lists published exhibits/booths.

Request
bash
curl "https://your-domain/api/public/v1/exhibition/exhibits?limit=100" \
  -H "X-API-Key: cat_..."
POST/api/public/v1/exhibition/submissions/payment-proof/upload-url

Exhibition: Submission payment proof upload URL

Returns a signed upload URL (PUT) plus a storage:// URI. Upload the file (PUT) and then pass payment.paymentProofUrl as the returned URI when submitting. Requires exhibition:write.

Request
bash
curl -X POST "https://your-domain/api/public/v1/exhibition/submissions/payment-proof/upload-url" \
  -H "X-API-Key: cat_..." \
  -H "Content-Type: application/json" \
  -d '{"filename":"receipt.png","contentType":"image/png"}'
POST/api/public/v1/exhibition/submissions

Exhibition: Submit

Submits an exhibit application. Required fields: title, exhibitType, shortDescription, driveUrl, presenter.fullName. Payment fields are required only if the conference has exhibition submission fees enabled. Requires exhibition:write.

Request
bash
curl -X POST "https://your-domain/api/public/v1/exhibition/submissions" \
  -H "X-API-Key: cat_..." \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Acme Health",
    "exhibitType": "sponsor",
    "shortDescription": "AI triage tools for clinics",
    "driveUrl": "https://drive.google.com/...",
    "presenter": { "fullName": "Aisha Khan", "email": "aisha@example.com" },
    "teamPeople": ["Omar Ali", "Sara Noor"],
    "payment": { "paymentMethodId": "<payment_method_id>", "paymentReference": "TXN-123" }
  }'
GET/api/public/v1/registrations/config

Registrations: Config

Returns public registration fields + options (phase/tickets/methods).

Request
bash
curl "https://your-domain/api/public/v1/registrations/config" \
  -H "X-API-Key: cat_..."
GET/api/public/v1/registrations/universities

Registrations: Universities

Search the official university list (autocomplete). Query params: q, limit (max 50).

Request
bash
curl "https://your-domain/api/public/v1/registrations/universities?q=karachi&limit=10" \
  -H "X-API-Key: cat_..."
GET/api/public/v1/registrations/registrations

Registrations: List

List registrations for back-office verification. Supports filters: email, status, verification_status. Uses limit/offset.

Request
bash
curl "https://your-domain/api/public/v1/registrations/registrations?limit=50&offset=0&email=aisha@example.com" \
  -H "X-API-Key: cat_..."
POST/api/public/v1/registrations/registrations

Registrations: Create

Creates a registration record (for external websites/vendors).

Request
bash
curl -X POST "https://your-domain/api/public/v1/registrations/registrations" \
  -H "X-API-Key: cat_..." \
  -H "Content-Type: application/json" \
  -d '{
    "firstName": "Aisha",
    "lastName": "Khan",
    "email": "aisha@example.com",
    "ticketTypeId": "<ticket_type_id>",
    "paymentMethodId": "<payment_method_id>",
    "paymentReference": "TXN-12345",
    "paymentProofUrl": "https://example.com/receipt.png"
  }'
GET/api/public/v1/registrations/registrations/:id

Registrations: Get

Fetch a single registration by ID.

Request
bash
curl "https://your-domain/api/public/v1/registrations/registrations/<registration_id>" \
  -H "X-API-Key: cat_..."
GET/api/public/v1/registrations/registrations/:id/receipt

Registrations: Receipt URL

Returns a short-lived signed URL for a stored receipt (when applicable).

Request
bash
curl "https://your-domain/api/public/v1/registrations/registrations/<registration_id>/receipt" \
  -H "X-API-Key: cat_..."
POST/api/public/v1/registrations/evidence/upload-url

Registrations: Evidence Upload URL

Returns a short-lived signed URL you can upload a receipt/proof file to (server-side), plus astorage:// URI you can pass into paymentProofUrl.

Request
bash
curl -X POST "https://your-domain/api/public/v1/registrations/evidence/upload-url" \
  -H "X-API-Key: cat_..." \
  -H "Content-Type: application/json" \
  -d '{"filename":"receipt.png","contentType":"image/png"}'