The Livelox public API

We provide a public REST API for application developers that want to integrate their applications with Livelox.

Please use the API responsibly. Do not share your API key. Do not embed your API key in end-user client applications (e.g. mobile apps); store it securely in your backend or use OAuth2-based authorization instead. Do not send an excessive number of requests. Cache data on your side when possible. We reserve the right to suspend API users not adhering to these rules without prior notice.

Authorization

There are two ways to access the API.

  • Authorization through API key
  • Authorization through user delegation

Accessing the API through an API key

Your application's API key should be included as an ApiKey HTTP header with each request. Make sure to use your unique API key instead of the example API key below.

ApiKey: 559FCA56B17E48DDB971DEEF1E90C8F2

To acquire an API key, please contact info@livelox.com. Provide a brief description of your application, and why you would like to integrate it with Livelox. The API key must be kept secret and should therefore not be embedded in end-user applications (e.g. mobile apps).

Accessing the API through user delegation

For end-user applications, authorization to access the API should be given by the users rather than by using an API key. The OAuth2 protocol is used, applying the Authorization Code with PKCE Flow. This means that users will experience a one-time redirection to the Livelox website, where they allow your application to access Livelox on their behalf. Please contact info@livelox.com to acquire a client_id. Provide your redirect URI (must not be http if other than localhost), a brief description of your application, and why you would like to integrate it with Livelox.

OAuth2 endpoints

Authorization endpoint: https://api.livelox.com/oauth2/authorize
Token endpoint: https://api.livelox.com/oauth2/token
Token revocation endpoint: https://api.livelox.com/oauth2/revoke
User info endpoint: https://api.livelox.com/oauth2/userinfo

Scopes

events.import - lets the application import course setting information to Livelox events on behalf of a user

Token life lengths

Authorization codes are valid for 10 minutes. Access tokens are valid for 24 hours. Refresh tokens do not expire. Users can revoke tokens or change scopes in their Livelox account settings.

For further information regarding OAuth2, check out these resources:

Bidirectional event integration

Livelox can be integrated with event management systems and entry/result web portals. Those systems provide event information such as classes, courses, start lists and result lists to Livelox, which in turn provides URLs to the Livelox viewer for the classes in the event. It is possible to make a fully-featured bidirectional automatic integration, like the Eventor event management system, but also simpler ones where only part of the event information is exchanged. Learn more about event integration.

API endpoints

GET https://api.livelox.com/events

Returns events in Livelox in JSON format.

Querystring parameters

All parameters are optional.

Name Type Description
from datetime, yyyy-mm-ddThh:mm:ssZ The start of the time interval in UTC to search within.
to datetime, yyyy-mm-ddThh:mm:ssZ The end of the time interval in UTC to search within. The time interval is considered to end immediately before this time.
q string A string used to search for event names or event organisers.
modifiedSince datetime, yyyy-mm-ddThh:mm:ssZ Returns only events that were modified later than this UTC time.
latitude number The latitude of a circle center point to search within. Used together with longitude and radius.
longitude number The longitude of a circle center point to search within. Used together with latitude and radius.
radius number The radius in meters to search within. Used together with latitude and longitude.
south number The latitude of the south edge of a bounding box to search within. Used together with north, west and east.
north number The latitude of the north edge of a bounding box to search within. Used together with south, west and east.
west number The longitude of the west edge of a bounding box to search within. Used together with south, north and east.
east number The longitude of the east edge of a bounding box to search within. Used together with south, north and west.
countryId integer/string The ID of the country where the event is organised. You can use either Livelox's internal country IDs or ISO 3166-1 alpha-3 codes. For a list of country IDs, see the endpoint GET https://api.livelox.com/countries.
onlySearchable boolean Filters the result to only include the events that have been marked as searchable from the Livelox start page. Events without valid map and class course connections are considered non-searchable. Defaults to false.
onlyHavingValidMapAndCourses boolean Filters the result to only include the events that contain a map and courses. Defaults to false.
includeClasses bool Whether to include the event's classes in the response. Defaults to true.
includeProperties bool Whether to include the event's key-value properties in the response. Defaults to true.
cultureCode string Returns culture-specific values (e.g. country names) in this language. Defaults to en-US.
paging string, index:size Paginates the result. index is the zero-based page index; size is the number of search results per page. Example: 1:20 will return search results 21-40.

GET https://api.livelox.com/event/{eventId}

Returns details about a specific event in Livelox in JSON format.

Path parameters

Name Type Description
eventId integer The ID of the event.

Querystring parameters

All parameters are optional.

Name Type Description
includeClasses bool Whether to include the event's classes in the response. Defaults to true.
includeProperties bool Whether to include the event's key-value properties in the response. Defaults to true.
cultureCode datetime, yyyy-mm-ddThh:mm:ssZ Returns culture-specific values (e.g. country names) in this language. Defaults to en-US.

GET https://api.livelox.com/orienteering/courses/iofxml

Returns information about the courses for an event in IOF XML format. Information that is not yet public is not returned.

Querystring parameters

Name Type Description
eventId integer The ID of the event. Required.
projectionEpsgCode integer The code of the EPSG projection that the control coordinates should be expressed in. Omit to use WGS84.
includeControls boolean Whether to include controls for the courses or not.
includeClassConnections boolean Whether to include class connections (i.e. a number of IDs for classes) for the courses or not. Set includeClasses to true to also include class sub objects.
includeClasses boolean Whether to include classes for the courses or not.

GET https://api.livelox.com/countries

Returns all countries present in Livelox in JSON format.

Querystring parameters

Name Type Description
cultureCode string The language that country names should be presented in. Defaults to en-US.
onlyHavingEvents boolean Whether to return only countries that have at least one event related to it.