IPSC ELO API Documentation

Version 1.5 - 2026-01-31
Added endpoint search
Version 1.4 - 2025-05-08
Added endpoint shooterdivisionrankings
Version 1.3 - 2025-05-07
Removed www from URL
Version 1.2 - 2025-02-27
Added regions endpoint
Version 1.1 - 2025-02-25
Fixes: Typos, clarifications on endpoints, enhanced CSS styling for dark mode
Version 1.0 - 2025-02-20
Initial release of the documentation and API


Table of Contents


Disclaimer

This document serves as the public API documentation for ipscelo.com. It outlines the public API endpoints suitable for private third-party use.
Unauthorized and commercial use is prohibited.

The API is available at https://ipscelo.com/api.


General Information

Generally, this API follows RESTful principles with CRUD operations, responding to HTTP requests with JSON-encoded data and a HTTP status code.

Below are the main API endpoints you can interact with, along with their documentation. The curl examples provided can be executed from a command-line interface for easy testing of the API. Alternatively, opening the URL in a browser like Firefox (which features integrated JSON display mode) is another straightforward method to test and navigate the responses.

The JSON response structure is not detailed here since JSON is generally readable, and its format is quickly understandable using any JSON parsing tool or browser. If you encounter any discrepancies, missing details, or have questions about this documentation, please contact us at api@ipscelo.com.

Base URL:
https://ipscelo.com/


API Endpoints

1. News

Get All News Items

Endpoint:
GET /api/news

Parameters: None

Responses:

HTTP Code Content-Type Response
200 application/json; charset=UTF-8 JSON response string

Example cURL:

curl -X GET -H "Content-Type: application/json" https://ipscelo.com/api/news

Get Specific News Item

Endpoint:
GET /api/news/{newsid}

Parameters:

Name Type Data Type Description
newsid Optional int The specific news item's numeric ID

Responses:

HTTP Code Content-Type Response
200 application/json; charset=UTF-8 JSON response string

Example cURL:

curl -X GET -H "Content-Type: application/json" https://ipscelo.com/api/news/100

2. Match Types

Get All Match Types

Endpoint:
GET /api/matchtypes

Parameters: None

Responses:

HTTP Code Content-Type Response
200 application/json; charset=UTF-8 JSON response string

Example cURL:

curl -X GET -H "Content-Type: application/json" https://ipscelo.com/api/matchtypes

3. Divisions

Get All Divisions

Endpoint:
GET /api/divisions

Parameters: None

Responses:

HTTP Code Content-Type Response
200 application/json; charset=UTF-8 JSON response string

Example cURL:

curl -X GET -H "Content-Type: application/json" https://ipscelo.com/api/divisions

4. ELO Rankings

Get ELO Rankings for a Division

Endpoint:
GET /api/elorankings?divisionid={divisionid}

Parameters:

Name Type Data Type Description
divisionid Required int The specific division's numeric ID

Responses:

HTTP Code Content-Type Response
200 application/json; charset=UTF-8 JSON response string
400 application/json; charset=UTF-8 JSON error message

Example cURL:

curl -X GET -H "Content-Type: application/json" https://ipscelo.com/api/elorankings?divisionid=4

5. Shooter Division Rankings

Get ELO Rankings in All Divisions for a Shooter

Endpoint:
GET /api/shooterdivisionrankings/{shooterid}

Parameters:

Name Type Data Type Description
shooterid Required int The specific shooter's numeric ID

Responses:

HTTP Code Content-Type Response
200 application/json; charset=UTF-8 JSON response string
400 application/json; charset=UTF-8 JSON error message

Example cURL:

curl -X GET -H "Content-Type: application/json" https://ipscelo.com/api/shooterdivisionrankings/4

6. Matches

Get All Matches

Endpoint:
GET /api/matches

Parameters: None

Responses:

HTTP Code Content-Type Response
200 application/json; charset=UTF-8 JSON response string

Example cURL:

curl -X GET -H "Content-Type: application/json" https://ipscelo.com/api/matches

Get Match by ID

Endpoint:
GET /api/matches/{matchid}

Parameters:

Name Type Data Type Description
matchid Optional int The specific match's numeric ID

Responses:

HTTP Code Content-Type Response
200 application/json; charset=UTF-8 JSON response string

Example cURL:

curl -X GET -H "Content-Type: application/json" https://ipscelo.com/api/matches/100

Get Matches by Match Type

Endpoint:
GET /api/matches?matchtypeid={matchtypeid}

Parameters:

Name Type Data Type Description
matchtypeid Optional int The specific match type's numeric ID

Responses:

HTTP Code Content-Type Response
200 application/json; charset=UTF-8 JSON response string

Example cURL:

curl -X GET -H "Content-Type: application/json" https://ipscelo.com/api/matches?matchtypeid=1

Get Recent Matches (Limit)

Endpoint:
GET /api/matches?limit={int}

Parameters:

Name Type Data Type Description
limit Optional int The number of matches to be returned

Responses:

HTTP Code Content-Type Response
200 application/json; charset=UTF-8 JSON response string

Example cURL:

curl -X GET -H "Content-Type: application/json" https://ipscelo.com/api/matches?limit=3

7. Categories

Get All Categories

Endpoint:
GET /api/categories

Parameters: None

Responses:

HTTP Code Content-Type Response
200 application/json; charset=UTF-8 JSON response string

Example cURL:

curl -X GET -H "Content-Type: application/json" https://ipscelo.com/api/categories

8. Regions

Get All IPSC Regions

Endpoint:
GET /api/regions

Parameters: None

Responses:

HTTP Code Content-Type Response
200 application/json; charset=UTF-8 JSON response string

Example cURL:

curl -X GET -H "Content-Type: application/json" https://ipscelo.com/api/regions

9. Statistics

Get Site Statistics

Endpoint:
GET /api/stats

Parameters: None

Responses:

HTTP Code Content-Type Response
200 application/json; charset=UTF-8 JSON response string

Example cURL:

curl -X GET -H "Content-Type: application/json" https://ipscelo.com/api/stats

Search for Shooters, Divisions, Matchtypes, Matches, Matchlocations

Endpoint: GET /api/search?text={string} GET /api/search?shooterbyname={string}

Parameters:

Name Type Data Type Description
text Optional string The search text for a general search
shooterbyname Optional string The search text for a specific shooters name

Responses:

HTTP Code Content-Type Response
200 application/json; charset=UTF-8 JSON response string

Example cURL:

curl -X GET -H "Content-Type: application/json" https://ipscelo.com/api/search?text=grauffel