OMSCourse Search API
API reference

Response schema

Every field is always present. Fields marked nullable may be null; arrays may be empty.

Top level

request_id
string
Unique id for this request, e.g. req_RRcfY89zFzXCEAfXjy0f.
api_version
string
Contract version date, currently 2026-10-01.
status
enum
results · no_results · clarification_needed · out_of_scope.
confidence
enum · nullable
high (direct match) · medium (likely relevant to a described need). null when there are no results. Loose partial matches are never returned as results.
answer
string
Short AI-written explanation, 2–4 sentences, plain text.
follow_up_question
string · nullable
A question to show the visitor when it would improve results.
interpreted
object
How the question was understood: topic, location, delivery (in_person · online), date_from / date_to (YYYY-MM-DD, UK dates), date_label, max_price_inc_vat, max_price_ex_vat, available_only, notes (e.g. a vague date that wasn't applied).
courses
Course[]
Matching courses, best first (max 6).
online_activities
OnlineActivity[]
Self-paced online learning with no fixed dates.
supporting_content
Content[]
Up to 2 related OMS articles or case studies.
unavailable_facts
string[]
Things the visitor asked for that OMS data doesn't include, e.g. "places remaining".
context
string
Opaque token. Send it back with the visitor's next question. Valid for 2 hours.

Course

id
string (uuid)
Stable OMS search id.
arlo_template_id
integer
OMS booking-system course id.
code / name
string · nullable / string
Course code and name, e.g. "First Aid at Work".
summary
string · nullable
Short course description.
duration
string · nullable
Advertised duration text, e.g. "3 days".
categories
string[]
OMS categories.
reason
string · nullable
One AI-written sentence on why it fits the question.
course_url
string · nullable
OMS course page.
register_interest_url
string · nullable
Use when a course has no upcoming dates.
has_upcoming_events
boolean
false means no bookable dates right now: show register_interest_url instead of dates.
events
Event[]
Up to 5 upcoming dates that match the question's filters, soonest first.

Event

id / arlo_event_id
string / integer
Ids for the scheduled date.
name
string
Event name.
start / end
string (ISO 8601) · nullable
With UTC offset, e.g. 2026-11-11T08:30:00+00:00. Display in timezone.
timezone
"Europe/London"
Always UK time.
delivery
enum
in_person · online · unknown.
location
object · nullable
name (e.g. "OMS - Leicester"), venue, city, postcode (all nullable).
price
object · nullable
amount_inc_vat, amount_ex_vat (numbers, nullable), currency (ISO code, "GBP"). null when no price is published.
booking_status
enum
open (bookable) · full · waiting_list · unavailable · unknown.
booking_message
string · nullable
OMS's own button text, e.g. "Register" or "Join waiting list".
places_remaining
integer · nullable
Only when OMS publishes a number. null means unknown, not zero: never show a place count when null.
booking_url
string · nullable
OMS booking link (registration or waiting list). Link to it unchanged.
event_url
string · nullable
Event details page.
A full event may still have a booking_url pointing at OMS's waiting list. Use booking_message as the button label.

OnlineActivity

id, code, name, summary
As for courses.
delivery_description
string · nullable
How it's delivered, e.g. e-learning.
price, booking_status, booking_url, url, reason
As for events and courses.

Content

id
string (uuid)
Stable OMS search id.
wordpress_id
integer
Original WordPress post id on oms.uk.com.
type
enum
article · case_study.
title, excerpt, url
string
From the OMS website. Link to url.
published_at
string · nullable
ISO 8601.
image_url
string · nullable
Featured image if available.

Example

"request_id": "req_RRcfY89zFzXCEAfXjy0f",
"api_version": "2026-10-01",
"status": "results",
"confidence": "high",
"answer": "These look like the most relevant first aid options for staff training. The course data shows both in-person and open/waiting list sessions in Leicester, with durations ranging from 1 to 3 days. If you need a basic option, Emergency First Aid at Work is available; if you need a fuller workplace qualification, First Aid at Work and the requalification course are also listed. Mental Health First Aid (England) is included as a related staff course if you also want mental health support training.",
"follow_up_question": null,
"topic": "first aid",
"location": null,
"delivery": null,
"date_from": null,
"date_to": null,
"date_label": null,
"max_price_inc_vat": null,
"max_price_ex_vat": null,
"available_only": false,
"notes": []
},
"id": "7eeed02e-9c94-4e14-80e4-4e993e2e66c0",
"arlo_template_id": 30,
"code": "FA02",
"name": "First Aid at Work",
"summary": "First Aid can literally be a life saver when it comes to workplace accidents, and every workplace should have responsible first aiders on their team. On this course, we cover all the subjects first aiders need to know, and make sure they have the knowledge to step in when accidents or illness strikes. CITB funding is available for this course - per person, per day – for ALL registered companies.",
"duration": "3 Day",
"reason": "First Aid at Work is a 3-day course aimed at nominated first aiders in the workplace, which suits staff needing fuller first aid training.",
"course_url": "http://oms.uk.com//?object_post_type=event&arlo_id=30",
"register_interest_url": "https://oms.arlo.co/register-interest?t=0&e=a918fdb2-4898-41ca-919f-6e862b1faadb",
"has_upcoming_events": true,
},
"id": "e895eb65-9260-4cb5-9fce-22045ee24f39",
"arlo_template_id": 31,
"code": "FA03",
"name": "Emergency First Aid at Work",
"summary": "The qualification will equip the first aider with skills to be able to confidently undertake emergency first aid if someone becomes ill or injured at work and consists of 6 hours of instructor led tuition with the emphasis on practical application of first aid skills",
"duration": "1 Day",
"reason": "Emergency First Aid at Work is a 1-day workplace first aid course designed to give staff the basic skills to respond to illness or injury at work.",
"course_url": "http://oms.uk.com//?object_post_type=event&arlo_id=31",
"register_interest_url": null,
"has_upcoming_events": true,
}
],
"online_activities": [],
"id": "64a1f0c3-0fb1-45b7-bd1a-15c7c6506b6a",
"wordpress_id": 5583,
"type": "article",
"title": "World First Aid Day",
"excerpt": "Every year a the second Saturday in September is World First Aid Day. It’s a day to ensure everyone takes first aid at work seriously by encouraging people to learn and practice first aid techniques so should anything happen to colleagues or indeed family members then you are well placed to provide ",
"url": "https://oms.uk.com/world-first-aid-day/",
"published_at": "2024-09-14T09:10:16+00:00",
"image_url": "https://oms.uk.com/wp-content/uploads/2024/09/First-aid-day.png"
},
"id": "e9a64dd6-bf63-44bf-a846-2922fb0728f3",
"wordpress_id": 5330,
"type": "article",
"title": "The Vital Role of First Aid Training in the Workplace",
"excerpt": "Accidents and medical emergencies can happen at any time and being prepared to respond swiftly can make a significant difference in saving lives. In this blog we will explore the importance of First Aid training, relevant legislation and the significance of hands-on training for nominated first aide",
"url": "https://oms.uk.com/the-vital-role-of-first-aid-training-in-the-workplace/",
"published_at": "2024-01-03T14:15:25+00:00",
"image_url": null
}
],
"unavailable_facts": [],
"context": "eyJwIjp7InYiOjEsInR1cm4iOjEsImxhc3QiOnsi…"
}

Compatibility promise

Within v1, fields are never removed, renamed or retyped. New fields and new enum values may be added: ignore unknown fields and treat unknown enum values like unknown.