IPSC ELO API Documentation

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.

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.

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.

Endpoint: /api/news

GET /api/news - Get all news items ### Parameters None ### Responses | HTTP Code | Content-Type | Response | |-----------|-------------------------------|------------------------------------| | `200` | `application/json; charset=UTF-8` | JSON response string | ### Example cURL ```bash curl -X GET -H "Content-Type: application/json" https://ipscelo.com/api/news ```
GET /api/news/{newsid} - Get a specific news item ### /api/news/{newsid} Parameters | Name | Type | Data Type | Description | |--------|----------|-----------------|---------------------------------------| | `newsid` | Optional | int | The specific news item's numeric ID | ### /api/news/{newsid} Responses | HTTP Code | Content-Type | Response | |-----------|-------------------------------|------------------------------------| | `200` | `application/json; charset=UTF-8` | JSON response string | ### /api/news/{newsid} Example cURL ```bash curl -X GET -H "Content-Type: application/json" https://ipscelo.com/api/news/100 ```

Endpoint: /api/matchtypes

GET /api/matchtypes - Get all match types ### Parameters None ### Responses | HTTP Code | Content-Type | Response | |-----------|-------------------------------|------------------------------------| | `200` | `application/json; charset=UTF-8` | JSON response string | ### Example cURL ```bash curl -X GET -H "Content-Type: application/json" https://ipscelo.com/api/matchtypes ```

Endpoint: /api/divisions

GET /api/divisions - Get all divisions ### Parameters None ### Responses | HTTP Code | Content-Type | Response | |-----------|-------------------------------|------------------------------------| | `200` | `application/json; charset=UTF-8` | JSON response string | ### Example cURL ```bash curl -X GET -H "Content-Type: application/json" https://ipscelo.com/api/divisions ```

Endpoint: /api/elorankings

GET /api/elorankings?divisionid={divisionid} - Get the ELO rankings for a specified division ID ### 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 ```bash curl -X GET -H "Content-Type: application/json" https://ipscelo.com/api/elorankings?divisionid=4 ```

Endpoint: /api/shooterdivisionrankings

GET /api/shooterdivisionrankings/{shooterid} - Get the ELO rankings in all divisions for a specified shooter ID ### 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 ```bash curl -X GET -H "Content-Type: application/json" https://ipscelo.com/api/shooterdivisionrankings/4 ```

Endpoint: /api/matches

GET /api/matches - Get all matches ### Parameters None ### Responses | HTTP Code | Content-Type | Response | |-----------|-------------------------------|------------------------------------| | `200` | `application/json; charset=UTF-8` | JSON response string | ### Example cURL ```bash curl -X GET -H "Content-Type: application/json" https://ipscelo.com/api/matches ```
GET /api/matches/{matchid} - Get a match by numeric ID ### /api/matches/{matchid} Parameters | Name | Type | Data Type | Description | |---------|----------|-------------|-----------------------------------| | `matchid` | Optional | int | The specific match's numeric ID | ### /api/matches/{matchid} Responses | HTTP Code | Content-Type | Response | |-----------|-------------------------------|------------------------------------| | `200` | `application/json; charset=UTF-8` | JSON response string | ### /api/matches/{matchid} Example cURL ```bash curl -X GET -H "Content-Type: application/json" https://ipscelo.com/api/matches/100 ```
GET /api/matches?matchtypeid={matchtypeid} - Get all matches of a specific match type ID ### /api/matches?matchtypeid={matchtypeid} Parameters | Name | Type | Data Type | Description | |---------------|----------|-------------|-----------------------------------| | `matchtypeid` | Optional | int | The specific match type's numeric ID | ### /api/matches?matchtypeid={matchtypeid} Responses | HTTP Code | Content-Type | Response | |-----------|-------------------------------|------------------------------------| | `200` | `application/json; charset=UTF-8` | JSON response string | ### /api/matches?matchtypeid={matchtypeid} Example cURL ```bash curl -X GET -H "Content-Type: application/json" https://ipscelo.com/api/matches?matchtypeid=1 ```
GET /api/matches?limit={int} - Get a specified maximum number of recently added matches ### /api/matches?limit={int} Parameters | Name | Type | Data Type | Description | |--------|----------|-------------|------------------------------------| | `limit` | Optional | int | The number of matches to be returned | ### /api/matches?limit={int} Responses | HTTP Code | Content-Type | Response | |-----------|-------------------------------|------------------------------------| | `200` | `application/json; charset=UTF-8` | JSON response string | ### /api/matches?limit={int} Example cURL ```bash curl -X GET -H "Content-Type: application/json" https://ipscelo.com/api/matches?limit=3 ```

Endpoint: /api/categories

GET /api/categories - Get all categories ### Parameters None ### Responses | HTTP Code | Content-Type | Response | |-----------|-------------------------------|------------------------------------| | `200` | `application/json; charset=UTF-8` | JSON response string | ### Example cURL ```bash curl -X GET -H "Content-Type: application/json" https://ipscelo.com/api/categories ```

Endpoint: /api/regions

GET /api/regions - Get all IPSC regions ### Parameters None ### Responses | HTTP Code | Content-Type | Response | |-----------|-------------------------------|------------------------------------| | `200` | `application/json; charset=UTF-8` | JSON response string | ### Example cURL ```bash curl -X GET -H "Content-Type: application/json" https://ipscelo.com/api/regions ```

Endpoint: /api/stats

GET /api/stats - Get all site statistics ### Parameters None ### Responses | HTTP Code | Content-Type | Response | |-----------|-------------------------------|------------------------------------| | `200` | `application/json; charset=UTF-8` | JSON response string | ### Example cURL ```bash curl -X GET -H "Content-Type: application/json" https://ipscelo.com/api/stats ```