Skip to content

Quick Reference Guide ​

Essential Information ​

Base Configuration ​

Base URL: https://engagifii-prod-event.azurewebsites.net
API Version: 1.0
Auth Type: OAuth 2.0 Bearer Token
Content Type: application/json

Required Headers (All Requests) ​

http
Authorization: Bearer {access_token}
api-version: 1.0
tenant-code: {tenant_code}
Content-Type: application/json

Authentication Quick Start ​

Get Access Token ​

bash
curl -X POST "{IDENTITY_SERVER_URL}/connect/token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "client_id={CLIENT_ID}" \
  -d "client_secret={CLIENT_SECRET}" \
  -d "grant_type=client_credentials" \
  -d "scope=EventsApi"

Most Common Endpoints ​

Events ​

ActionMethodEndpointDescription
List EventsPOST/api/1.0/event/listGet paginated event list
Get EventGET/api/1.0/event/{id}Get event details
Create EventPOST/api/1.0/event/saveCreate new event
Update EventPOST/api/1.0/event/saveUpdate existing (include id)
Check NamePOST/api/1.0/event/CheckEventNameVerify name availability

Registrations ​

ActionMethodEndpointDescription
List RegistrationsPOST/api/1.0/event/registration/GetEventRegistrationsGet event registrations
Create RegistrationPOST/api/1.0/event/registration/saveRegister for event
Get RegistrationGET/api/1.0/event/registration/GetById/{id}Get registration details
Approve RegistrationPOST/api/1.0/event/registration/ApproveRequestProcess approval
Cancel RegistrationPOST/api/1.0/event/registration/cancelCancel registration

Booth Management ​

ActionMethodEndpointDescription
List BoothsPOST/api/1.0/event/boothconfiguration/GetAllBoothconfigurationsGet booth list
Check AvailabilityPOST/api/1.0/event/boothconfiguration/boothAvailableCheck booth status
Submit PreferencePOST/api/1.0/event/boothconfiguration/submitPreferenceSubmit booth choices

Bundles ​

ActionMethodEndpointDescription
List BundlesPOST/api/1.0/eventBundle/listGet event bundles
Get BundleGET/api/1.0/eventBundle/GetBundleDetails/{id}Bundle details
Create BundlePOST/api/1.0/eventBundle/saveCreate new bundle

Common Request Patterns ​

Paginated List Request ​

json
{
  "filter": {
    "searchText": "conference",
    "onlyUpcoming": true
  },
  "pageNumber": 1,
  "pageSize": 20,
  "sortBy": "startDateTime",
  "sortOrder": "ASC"
}

Create Event (Minimal) ​

json
{
  "name": "Tech Conference 2024",
  "startDateTime": "2024-06-15T09:00:00Z",
  "endDateTime": "2024-06-16T18:00:00Z",
  "isFreeEvent": false,
  "defaultPrice": 299.99,
  "registrantsCapacity": 500,
  "isRegistrationOn": true
}

Register for Event ​

json
{
  "eventId": "event-guid",
  "memberId": "member-guid",
  "registrationType": 1,
  "bundleIds": ["bundle-guid"],
  "notifyMe": true
}

Status Codes Quick Reference ​

CodeMeaningAction
200SuccessProcess response
201CreatedNew resource created
400Bad RequestFix request format
401UnauthorizedRefresh token
403ForbiddenCheck permissions
404Not FoundVerify resource ID
429Rate LimitedWait and retry
500Server ErrorRetry with backoff

Common Filter Parameters ​

Event Filters ​

json
{
  "searchText": "string",
  "eventTypeIds": [1, 2],
  "startDateFrom": "2024-01-01",
  "startDateTo": "2024-12-31",
  "onlyUpcoming": true,
  "eventStatus": ["Published"],
  "tags": ["technology"]
}

Registration Filters ​

json
{
  "eventId": "guid",
  "registrationType": 1,
  "registrationStatus": [5],
  "searchText": "john",
  "organizationIds": ["org-guid"]
}

Enums Quick Reference ​

EventRegistrationStatus ​

1 = InProgress
2 = ApprovalPending
3 = EligibleButApprovalPending
4 = ApprovalDenied
5 = ApprovalComplete
6 = Cancelled
7 = BoothAssignmentPending

EventRegistrationType ​

0 = All
1 = Member
2 = Exhibitor

EventExhibitorBoothStatus ​

1 = PreAssigned
2 = Available
3 = Sold

AssignedType ​

0 = None
1 = Person
2 = Organization

Quick Code Examples ​

JavaScript - List Events ​

javascript
const response = await fetch('https://engagifii-prod-event.azurewebsites.net/api/1.0/event/list', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${token}`,
    'api-version': '1.0',
    'tenant-code': tenantCode,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    pageNumber: 1,
    pageSize: 10,
    filter: { onlyUpcoming: true }
  })
});

const events = await response.json();

Python - Get Event Details ​

python
import requests

response = requests.get(
    f'https://engagifii-prod-event.azurewebsites.net/api/1.0/event/{event_id}',
    headers={
        'Authorization': f'Bearer {token}',
        'api-version': '1.0',
        'tenant-code': tenant_code
    }
)

event = response.json()

cURL - Create Registration ​

bash
curl -X POST "https://engagifii-prod-event.azurewebsites.net/api/1.0/event/registration/save" \
  -H "Authorization: Bearer {TOKEN}" \
  -H "api-version: 1.0" \
  -H "tenant-code: {TENANT}" \
  -H "Content-Type: application/json" \
  -d '{
    "eventId": "event-guid",
    "memberId": "member-guid",
    "registrationType": 1,
    "bundleIds": ["bundle-guid"]
  }'

Common Troubleshooting ​

Problem: 401 Unauthorized ​

Solution:

  1. Check token expiration
  2. Verify token format (Bearer prefix)
  3. Refresh token if expired

Problem: 400 Bad Request ​

Solution:

  1. Validate JSON format
  2. Check required fields
  3. Verify data types match spec

Problem: 404 Not Found ​

Solution:

  1. Verify endpoint URL
  2. Check resource ID exists
  3. Confirm correct API version

Problem: 429 Rate Limited ​

Solution:

  1. Check Retry-After header
  2. Implement exponential backoff
  3. Cache responses when possible

Useful Patterns ​

Retry with Backoff ​

javascript
async function retryRequest(fn, retries = 3) {
  for (let i = 0; i < retries; i++) {
    try {
      return await fn();
    } catch (error) {
      if (error.status !== 429 && error.status < 500) throw error;
      await new Promise(r => setTimeout(r, Math.pow(2, i) * 1000));
    }
  }
  throw new Error('Max retries exceeded');
}

Token Refresh ​

javascript
let token = null;
let tokenExpiry = null;

async function getValidToken() {
  if (token && tokenExpiry > Date.now()) return token;
  
  const response = await fetch(TOKEN_URL, {
    method: 'POST',
    body: new URLSearchParams({
      client_id: CLIENT_ID,
      client_secret: CLIENT_SECRET,
      grant_type: 'client_credentials',
      scope: 'EventsApi'
    })
  });
  
  const data = await response.json();
  token = data.access_token;
  tokenExpiry = Date.now() + (data.expires_in * 1000) - 60000;
  return token;
}

Pagination Helper ​

python
async def get_all_items(endpoint, filter_obj):
    all_items = []
    page = 1
    
    while True:
        response = await client.post(endpoint, {
            'filter': filter_obj,
            'pageNumber': page,
            'pageSize': 100
        })
        
        all_items.extend(response['data'])
        
        if len(response['data']) < 100:
            break
            
        page += 1
        await asyncio.sleep(0.1)  # Rate limiting
    
    return all_items

Rate Limits ​

  • Default: 1000 requests/minute
  • Burst: 100 concurrent requests
  • File Upload: 10 MB max
  • Batch Operations: 100 items max

Check headers:

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 950
X-RateLimit-Reset: 1705316400

Environment URLs ​

EnvironmentBase URL
Productionhttps://engagifii-prod-event.azurewebsites.net
StagingContact support for URL
DevelopmentContact support for URL

Support Contacts ​

Postman Collection ​

Import this collection for quick testing:

json
{
  "info": {
    "name": "Engagifii Events API",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{access_token}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://engagifii-prod-event.azurewebsites.net"
    },
    {
      "key": "apiVersion",
      "value": "1.0"
    },
    {
      "key": "tenantCode",
      "value": "YOUR_TENANT_CODE"
    }
  ]
}

Health Check ​

Quick API health check:

bash
curl -X POST "https://engagifii-prod-event.azurewebsites.net/api/1.0/event/list" \
  -H "Authorization: Bearer {TOKEN}" \
  -H "api-version: 1.0" \
  -H "tenant-code: {TENANT}" \
  -H "Content-Type: application/json" \
  -d '{"pageNumber":1,"pageSize":1}'

Success = API is operational