External API

The CE-Go API lets you integrate your systems directly with CE-Go — manage users, register attendees for conferences, and download certificates.

In this guide:


Getting started

Base URL

All API requests should be made to:

https://your-domain.ce-go.com/api/v3

Before you begin

  • You need an active CE-Go account with API access enabled
  • Contact your account manager to get your API credentials
  • All requests must be authenticated
  • All data is scoped to your organization — you can only access your own resources

Authentication

Include your API credentials in the request headers. Your account manager will provide the specific authentication method for your integration.

Important: All endpoints are organization-scoped. You can only access and modify resources that belong to your organization.


User management

Manage users (attendees) within your organization.

Search users

Find users by name, email, phone, or external ID.

GET /api/v3/users/search
📋 View parameters and response

Query parameters:

Parameter Type Description
first_name String Filter by first name
last_name String Filter by last name
email String Filter by email address
phone String Filter by phone number
external_id String Filter by external system identifier
limit Integer Results per page (default: 20)

Response: 200 OK

{
  "data": [
    {
      "id": 12345,
      "first_name": "John",
      "last_name": "Smith",
      "email": "john.smith@example.com",
      "phone": "5551234567",
      "external_id": "EXT-12345",
      "address": {
        "state": "New York",
        "state_code": "NY",
        "country": "United States",
        "country_code": "USA"
      }
    }
  ],
  "meta": {
    "current_page": 1,
    "total": 150
  }
}

Get user details

Retrieve full details for a specific user.

GET /api/v3/users/{user_id}
📋 View parameters and response

URL parameters:

Parameter Type Description
user_id Integer Unique identifier for the user

Response: 200 OK

{
  "data": {
    "id": 12345,
    "first_name": "John",
    "last_name": "Smith",
    "email": "john.smith@example.com",
    "phone": "5551234567",
    "external_id": "EXT-12345",
    "address": {
      "state": "New York",
      "state_code": "NY",
      "country": "United States",
      "country_code": "USA"
    }
  }
}

Errors:

  • 403 Forbidden — User belongs to a different organization
  • 404 Not Found — User ID does not exist

Create user

Add a new user (attendee) to your organization.

POST /api/v3/users
📋 View parameters and response

Request body:

Field Type Required Description
first_name String Yes User's first name
last_name String Yes User's last name
email String Yes Valid email (must be unique in your organization)
state_code String Yes 2-character state code (e.g., "NY", "CA")
country_code String Yes 3-character country code (e.g., "USA")
phone String No Phone number (10-13 digits)
external_id String No Your system's identifier for this user

Example request:

{
  "first_name": "John",
  "last_name": "Smith",
  "email": "john.smith@example.com",
  "state_code": "NY",
  "country_code": "USA",
  "phone": "5551234567",
  "external_id": "CRM-12345"
}

Response: 201 Created

{
  "data": {
    "id": 12345,
    "first_name": "John",
    "last_name": "Smith",
    "email": "john.smith@example.com",
    "phone": "5551234567",
    "external_id": "CRM-12345",
    "address": {
      "state": "New York",
      "state_code": "NY",
      "country": "United States",
      "country_code": "USA"
    }
  }
}

Errors:

  • 400 Bad Request — User with this email already exists
  • 422 Unprocessable Entity — Missing required fields or invalid data

Update user

Update information for an existing user. All fields are optional — only include what you want to change.

PUT /api/v3/users/{user_id}
📋 View parameters and response

Request body (all optional):

Field Type Description
first_name String User's first name
last_name String User's last name
email String Email address
phone String Phone number
state_code String 2-character state code
country_code String 3-character country code
external_id String External system identifier

Example request:

{
  "phone": "5559876543",
  "state_code": "CA"
}

Response: 200 OK

{
  "data": {
    "id": 12345,
    "first_name": "John",
    "last_name": "Smith",
    "email": "john.smith@example.com",
    "phone": "5559876543",
    "external_id": "CRM-12345",
    "address": {
      "state": "California",
      "state_code": "CA",
      "country": "United States",
      "country_code": "USA"
    }
  }
}

Delete user

Remove a user from the system.

DELETE /api/v3/users/{user_id}
📋 View details

Response: 204 No Content (empty response body)

Restrictions:

  • Cannot delete users with ADMIN or ORGANIZER roles
  • Can only delete users within your organization

Errors:

  • 403 Forbidden — Attempting to delete protected roles or users from another organization
  • 404 Not Found — User ID does not exist

Conference registration

Register attendees for conferences programmatically.

List membership options

Get available registration types for a conference (e.g., Standard, VIP, Student).

GET /api/v3/conferences/{conference_id}/membership_options
📋 View parameters and response

URL parameters:

Parameter Type Description
conference_id Integer Unique identifier for the conference

Response: 200 OK

{
  "data": [
    {
      "id": 1,
      "name": "Standard Registration",
      "price": 199.00,
      "description": "Full access to all sessions"
    },
    {
      "id": 2,
      "name": "VIP Registration",
      "price": 399.00,
      "description": "Full access plus exclusive networking events"
    },
    {
      "id": 3,
      "name": "Student Registration",
      "price": 99.00,
      "description": "Discounted rate for students"
    }
  ]
}

Errors:

  • 400 Bad Request — Conference does not belong to your organization
  • 404 Not Found — Conference ID is invalid

Register attendee

Register an existing user for a conference.

POST /api/v3/conferences/{conference_id}/registration
📋 View parameters and response

Request body:

Field Type Required Description
user_id Integer Yes ID of the user to register
membership_option_id Integer Conditional Required if conference has membership options

Example request:

{
  "user_id": 12345,
  "membership_option_id": 1
}

Response: 201 Created

{
  "data": {
    "id": 67890,
    "conference_id": 100,
    "user_id": 12345,
    "membership_option_id": 1,
    "status": "registered",
    "payment_status": "paid",
    "ce_opted_in": true,
    "registered_at": "2025-01-15T10:30:00Z"
  }
}

What happens automatically:

  • Attendee is marked as "Paid" and "Registered"
  • If the conference offers CE credits, attendee is opted-in by default
  • Session assignments are synced in the background

Errors:

  • 400 Bad Request — "Conference has already started!" or "Attendee already registered!"
  • 422 Unprocessable Entity — Invalid user_id or membership_option_id

Typical workflow

  1. Call GET .../membership_options to get available registration types
  2. User selects their preferred option
  3. Call POST .../registration with the selected membership_option_id

Certificates

Get certificate download URL

Generate a secure, temporary URL to download an attendee's certificate.

GET /api/v3/attendees/{attendee_id}/certificates
📋 View parameters and response

URL parameters:

Parameter Type Description
attendee_id Integer Unique identifier for the conference attendee record

Response: 200 OK

{
  "data": {
    "url": "https://api.ce-go.com/conference/certificate/123?auth=eyJhbGciOiJIUzI1..."
  }
}

Important:

  • The URL contains a temporary authentication token — do not share publicly
  • Certificates are available only after the conference ends and attendance is verified
  • Attendee must belong to a user in your organization

Errors:

  • 403 Forbidden — Attendee belongs to a different organization
  • 404 Not Found — Attendee ID does not exist

Error handling

HTTP status codes

Code Meaning Description
200 OK Request successful
201 Created Resource successfully created
204 No Content Request successful, no response body
400 Bad Request Invalid parameters or business logic violation
401 Unauthorized Missing or invalid authentication
403 Forbidden Valid credentials but insufficient permissions
404 Not Found Resource does not exist
422 Unprocessable Entity Validation errors in request data
429 Too Many Requests Rate limit exceeded
500 Internal Server Error Server error — contact support

Error response format

{
  "error": {
    "message": "Detailed error message",
    "code": "ERROR_CODE",
    "fields": {
      "field": "Additional context if applicable"
    }
  }
}

Best practices

  • Use external IDs — Store your system's user IDs in the external_id field for easy mapping
  • Check before creating — Use the search endpoint to avoid creating duplicate users
  • Handle errors gracefully — Implement proper error handling for all status codes
  • Keep certificate URLs secure — They contain sensitive tokens, never log or expose them
  • Test first — Always test in a development environment before going to production
  • Use pagination — Set appropriate limit values when fetching large lists

Need help?

  1. Check this documentation for endpoint details and examples
  2. Review error messages — they often contain helpful details
  3. Contact your CE-Go account manager for API access questions
  4. Reach out to technical support for integration assistance

API Version: v3

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.

Still need help? Contact Us Contact Us