Booking

get
Query parameters
datestringRequired
Responses
200
OK
Responseobject
get
GET /api/events/list-events HTTP/1.1
Host: dev-demo.shiftiq.com
Accept: */*
200

OK

{}

Add a new event.

post
Path parameters
eventstring · uuidRequired
Body
EventVenuestring · uuidOptionalExample: 00000000-0000-0000-0000-000000000000
EventStartstring · date-timeOptional
EventExamTypestringOptional
EventExamFormatstringOptional
EventBillingCodestringOptional
RegistrationLimitinteger · int32Optional
Responses
200
OK
Responseobject
post
POST /api/events/{event} HTTP/1.1
Host: dev-demo.shiftiq.com
Content-Type: application/json
Accept: */*
Content-Length: 189

{
  "EventVenue": "00000000-0000-0000-0000-000000000000",
  "EventStart": "2025-07-16T19:53:38.957Z",
  "EventExamType": "text",
  "EventExamFormat": "text",
  "EventBillingCode": "text",
  "RegistrationLimit": 1
}
200

OK

{}
post
Path parameters
eventstring · uuidRequired
Body
ReasonstringOptional
Responses
200
OK
Responseobject
post
POST /api/events/{event}/cancel HTTP/1.1
Host: dev-demo.shiftiq.com
Content-Type: application/json
Accept: */*
Content-Length: 17

{
  "Reason": "text"
}
200

OK

{}
get
Responses
200
OK
Responseobject
get
GET /api/events/classes HTTP/1.1
Host: dev-demo.shiftiq.com
Accept: */*
200

OK

{}
get
Query parameters
idstringRequired
Responses
200
OK
Responseobject
get
GET /api/events/scrap-paper HTTP/1.1
Host: dev-demo.shiftiq.com
Accept: */*
200

OK

{}

Count registrations

post

Count the number of event registration attendance records that match your search criteria.

Please note the date and time parameter assumes the ISO 8601 standard format. For example, "2002-09-01T23:10:50+00:00" means "Sep 1, 2002 at 11:10:50 PM UTC"

Body
NamestringOptional
EmailstringOptional
CodestringOptional
LastChangeTimeSincestring · date-timeOptional
LastChangeTimeBeforestring · date-timeOptional
Responses
200
OK
Responseobject
post
POST /api/registrations/count HTTP/1.1
Host: dev-demo.shiftiq.com
Content-Type: application/json
Accept: */*
Content-Length: 143

{
  "Name": "text",
  "Email": "text",
  "Code": "text",
  "LastChangeTimeSince": "2025-07-16T19:53:38.957Z",
  "LastChangeTimeBefore": "2025-07-16T19:53:38.957Z"
}
200

OK

{}

Search registrations

post

Find registration attendance information that matches your search criteria.

Body
NamestringOptional
EmailstringOptional
CodestringOptional
LastChangeTimeSincestring · date-timeOptional
LastChangeTimeBeforestring · date-timeOptional
Responses
200
OK
Responseobject
post
POST /api/registrations/search HTTP/1.1
Host: dev-demo.shiftiq.com
Content-Type: application/json
Accept: */*
Content-Length: 143

{
  "Name": "text",
  "Email": "text",
  "Code": "text",
  "LastChangeTimeSince": "2025-07-16T19:53:38.957Z",
  "LastChangeTimeBefore": "2025-07-16T19:53:38.957Z"
}
200

OK

{}

Retrieve a registration

get
Path parameters
registrationstring · uuidRequired
Responses
200
OK
Responseobject
get
GET /api/registrations/{registration} HTTP/1.1
Host: dev-demo.shiftiq.com
Accept: */*
200

OK

{}

Delete a registration

delete

The registration identifier must be provided as part of the request URL.

Path parameters
registrationstring · uuidRequired
Responses
200
OK
Responseobject
delete
DELETE /api/registrations/{registration} HTTP/1.1
Host: dev-demo.shiftiq.com
Accept: */*
200

OK

{}

Create a registration

post

Add a new registration based on a lookup of the event using its venue and start date/time rather than its identifier, and based on a lookup of the assessment form based on its code rather than its identifier.

This method for adding a new registration is lax (as opposed to strict) in that it does not specify a unique identifier for the event or the assessment. Instead, it allows the caller to assume a matching event may or may not exist.If no matching event is found then a new event is created automatically. Similarly, it allows the caller to assume at least one published, non-bilingual assessment form exists with a matching assessment form code. If no matching assessment is found, then it returns 400 Bad Request with an error message to indicate the failed match.

The registration ID is provided as part of the request URL.

The following parameters must be provided in the request body:

  • EventVenue: The venue ID.

  • EventStart: The date when the event starts.

  • EventExamType: The exam type, it is required if the exam does not exist and a new one should be created.

  • EventExamFormat: The exam format, it is required if the exam does not exist and a new one should be created

  • EventBillingCode: the exam billing code, it is required if the exam does not exist and a new one should be created.

  • Learner: ID of the learner that will be registered.

  • Assessment: Assessment form code identifying the assessment to be assigned to the registration

  • Accommodations: (Optional) An array of accommodations for the new registration

The date and time parameter uses ISO 8601 standard to specify format. For example "2002-09-01T23:10:50+00:00" means "Sep 1, 2002 at 11:10:50 PM UTC"

Potential Error Messages:

Here are some of the errors that can be returned by this method when there is a problem with your request:

  • Accommodation type cannot be empty.

  • Learner not found.

  • Assessment form not found.

  • Registration already exists. You cannot add a new registration with the same identifier.**

  • EventExamType not specified.

  • Invalid EventExamType value.

  • EventBillingCode not specified.

  • Invalid EventBillingCode value.

  • EventExamFormat not specified.

  • Invalid EventExamFormat value.

  • Invalid EventStartTime value.

  • Venue not found.

Path parameters
registrationstring · uuidRequired
Body
EventVenuestring · uuidOptionalExample: 00000000-0000-0000-0000-000000000000
EventStartstring · date-timeOptional
EventExamTypestringOptional
EventExamFormatstringOptional
EventBillingCodestringOptional
Learnerstring · uuidOptionalExample: 00000000-0000-0000-0000-000000000000
LearnerRegistrantTypestringOptional
AssessmentstringOptional
Responses
200
OK
Responseobject
post
POST /api/registrations/{registration}/commands/register-lax HTTP/1.1
Host: dev-demo.shiftiq.com
Content-Type: application/json
Accept: */*
Content-Length: 334

{
  "EventVenue": "00000000-0000-0000-0000-000000000000",
  "EventStart": "2025-07-16T19:53:38.957Z",
  "EventExamType": "text",
  "EventExamFormat": "text",
  "EventBillingCode": "text",
  "Learner": "00000000-0000-0000-0000-000000000000",
  "LearnerRegistrantType": "text",
  "Assessment": "text",
  "Accommodations": [
    {
      "Type": "text",
      "Name": "text",
      "TimeExtension": 1
    }
  ]
}
200

OK

{}

Transfer a registration

post

Transfer an existing registration from one event to another event based on a lookup of the event using its venue and start date/time rather than its identifier. This method for transferring a registration is lax(as opposed to strict) in that it does not specify a unique identifier for the event. Instead, it allows the caller to assume a matching event may or may not exist.If no match is found then a new event is created automatically. Note the assessment form can NOT be modified in a transfer. The registration ID is provided as part of the request URL.The following parameters must be provided in the request body: EventVenue. The venue ID.EventStart. The date when the event starts.EventExamType.The exam type, it is required if the exam does not exist and a new one should be created.Learner.ID of the learner that will be registered.Reason.The reason for the transfer. The date and time parameter uses ISO 8601 standard to specify format. For example "2002-09-01T23:10:50+00:00" means "Sep 1, 2002 at 11:10:50 PM UTC"

Potential Error Messages:

Here are some of the errors that can be returned by this method when there is a problem with your request:

  • Registration not found.

  • Registration has no assessment form.

  • Learner does not belong to registration.

  • Registration already assigned to event.

  • Learner not found.

Path parameters
registrationstring · uuidRequired
Body
EventVenuestring · uuidOptionalExample: 00000000-0000-0000-0000-000000000000
EventStartstring · date-timeOptional
EventExamTypestringOptional
Learnerstring · uuidOptionalExample: 00000000-0000-0000-0000-000000000000
ReasonstringOptional
Responses
200
OK
Responseobject
post
POST /api/registrations/{registration}/commands/transfer-lax HTTP/1.1
Host: dev-demo.shiftiq.com
Content-Type: application/json
Accept: */*
Content-Length: 248

{
  "EventVenue": "00000000-0000-0000-0000-000000000000",
  "EventStart": "2025-07-16T19:53:38.957Z",
  "EventExamType": "text",
  "Learner": "00000000-0000-0000-0000-000000000000",
  "Reason": "text",
  "Accommodations": [
    {
      "Type": "text",
      "Name": "text",
      "TimeExtension": 1
    }
  ]
}
200

OK

{}

Cancel a registration

post

The registration ID is provided as part of the request URL. The following parameters must be provided in the request body: Reason - Short description of the reason for the cancellation.

Potential Error Messages:

Here are some of the errors that can be returned by this method when there is a problem with your request:

  • Registration not found.

Path parameters
registrationstring · uuidRequired
Body
ReasonstringOptional
Responses
200
OK
Responseobject
post
POST /api/registrations/{registration}/commands/cancel HTTP/1.1
Host: dev-demo.shiftiq.com
Content-Type: application/json
Accept: */*
Content-Length: 17

{
  "Reason": "text"
}
200

OK

{}

Assign an assessment to a registration

post

Change the assessment form assigned to an existing event registration. If the registration does not exist, then return a 404 Not Found error. Allow the caller to assume at least one published, non-bilingual match for the assessment form code in the request.If no matching assessment is found, then return 400 Bad Request with an error message to indicate the failed match. The registration ID is provided as part of the request URL. The following parameters must be provided in the request body: Assessment - Form code identifying the assessment to be assigned to the registration.

Potential Error Messages:

Here are some of the errors that can be returned by this method when there is a problem with your request:

  • Registration not found.

  • Assessment form not found.

  • Assessment already assigned to registration.

Path parameters
registrationstring · uuidRequired
Body
AssessmentstringOptional
Responses
200
OK
Responseobject
post
POST /api/registrations/{registration}/commands/change-assessment HTTP/1.1
Host: dev-demo.shiftiq.com
Content-Type: application/json
Accept: */*
Content-Length: 21

{
  "Assessment": "text"
}
200

OK

{}

Add an accommodation to a registration

post

Grant an accommodation to an existing event registration. If the registration does not exist, then return a 404 Not Found error. The registration ID is provided as part of the request URL. The following parameters must be provided in the request body: Type - Uniquly identifies the type of accommodationName - (optional) Short clarifying descriptionTimeExtension - (optional) Time extension in minutes

Potential Error Messages:

Here are some of the errors that can be returned by this method when there is a problem with your request:

  • Registration not found.

Path parameters
registrationstring · uuidRequired
Body
TypestringOptional
NamestringOptional
TimeExtensioninteger · int32Optional
Responses
200
OK
Responseobject
post
POST /api/registrations/{registration}/commands/grant-accommodation HTTP/1.1
Host: dev-demo.shiftiq.com
Content-Type: application/json
Accept: */*
Content-Length: 47

{
  "Type": "text",
  "Name": "text",
  "TimeExtension": 1
}
200

OK

{}

Remove an accommodation from a registration

post

Revoke an existing accommodation from an existing event registration. If the registration does not exist, then return a 404 Not Found error. The registration ID is provided as part of the request URL. The request body MUST include the Type parameter, which identifies the type of accommodation.

Potential Error Messages:

Here are some of the errors that can be returned by this method when there is a problem with your request:

  • Registration not found.

Path parameters
registrationstring · uuidRequired
Body
TypestringOptional
Responses
200
OK
Responseobject
post
POST /api/registrations/{registration}/commands/revoke-accommodation HTTP/1.1
Host: dev-demo.shiftiq.com
Content-Type: application/json
Accept: */*
Content-Length: 15

{
  "Type": "text"
}
200

OK

{}

Was this helpful?