API Documentation
The slopfiles API provides read-only access to the ban database. Query bans, teams, players, events, and aggregate statistics. No authentication is required.
Response Format
All endpoints return JSON. Successful responses include a data field and, for list endpoints, a pagination object.
{
"success": true,
"data": [ ... ],
"pagination": {
"page": 1,
"limit": 25,
"total": 100,
"pages": 4
}
}
Bans
Retrieve a paginated list of all bans in the database. Filter by status to narrow results.
| Parameter | Type | Required | Description |
|---|---|---|---|
| status | string | optional | Filter by status: active, appealed, or revoked |
| page | integer | optional | Page number (default: 1) |
| limit | integer | optional | Results per page (default: 25, max: 100) |
curl "https://slopfiles.com/api/v1/bans?status=active&limit=10"
{
"success": true,
"data": [
{
"id": 42,
"team": "FlagHoarders",
"event": "DEF CON CTF 2025",
"status": "active",
"reason": "Flag sharing between teams",
"date": "2025-08-10"
}
],
"pagination": {
"page": 1,
"limit": 10,
"total": 87,
"pages": 9
}
}
Retrieve full details for a specific ban, including associated team, event, and involved players.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | required | The ban ID |
curl "https://slopfiles.com/api/v1/bans/42"
{
"success": true,
"data": {
"id": 42,
"team": {
"id": 7,
"name": "FlagHoarders"
},
"event": {
"id": 15,
"name": "DEF CON CTF 2025"
},
"players": [
{ "id": 101, "name": "sk1d_r00t" },
{ "id": 102, "name": "x0r_ninja" }
],
"status": "active",
"reason": "Flag sharing between teams",
"evidence": "Identical submissions within 3 seconds across teams",
"date": "2025-08-10"
}
}
Teams
Retrieve a paginated list of all teams. Use the search parameter to filter by name.
| Parameter | Type | Required | Description |
|---|---|---|---|
| q | string | optional | Search query to filter teams by name |
| page | integer | optional | Page number (default: 1) |
| limit | integer | optional | Results per page (default: 25, max: 100) |
curl "https://slopfiles.com/api/v1/teams?q=hoarders"
{
"success": true,
"data": [
{
"id": 7,
"name": "FlagHoarders",
"ban_count": 3,
"player_count": 5
}
],
"pagination": {
"page": 1,
"limit": 25,
"total": 1,
"pages": 1
}
}
Retrieve full details for a specific team, including roster of players and complete ban history.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | required | The team ID |
curl "https://slopfiles.com/api/v1/teams/7"
{
"success": true,
"data": {
"id": 7,
"name": "FlagHoarders",
"players": [
{ "id": 101, "name": "sk1d_r00t" },
{ "id": 102, "name": "x0r_ninja" },
{ "id": 103, "name": "pwn3d_u" }
],
"bans": [
{
"id": 42,
"event": "DEF CON CTF 2025",
"status": "active",
"date": "2025-08-10"
}
]
}
}
Retrieve all bans associated with a specific team.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | required | The team ID |
curl "https://slopfiles.com/api/v1/teams/7/bans"
{
"success": true,
"data": [
{
"id": 42,
"event": "DEF CON CTF 2025",
"status": "active",
"reason": "Flag sharing between teams",
"date": "2025-08-10"
}
],
"pagination": {
"page": 1,
"limit": 25,
"total": 3,
"pages": 1
}
}
Players
Retrieve a paginated list of all players. Use the search parameter to filter by name or handle.
| Parameter | Type | Required | Description |
|---|---|---|---|
| q | string | optional | Search query to filter players by name |
| page | integer | optional | Page number (default: 1) |
| limit | integer | optional | Results per page (default: 25, max: 100) |
curl "https://slopfiles.com/api/v1/players?q=ninja"
{
"success": true,
"data": [
{
"id": 102,
"name": "x0r_ninja",
"team": "FlagHoarders",
"ban_count": 2
}
],
"pagination": {
"page": 1,
"limit": 25,
"total": 1,
"pages": 1
}
}
Retrieve full details for a specific player, including their team affiliations and ban history.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | required | The player ID |
curl "https://slopfiles.com/api/v1/players/102"
{
"success": true,
"data": {
"id": 102,
"name": "x0r_ninja",
"teams": [
{ "id": 7, "name": "FlagHoarders" }
],
"bans": [
{
"id": 42,
"team": "FlagHoarders",
"event": "DEF CON CTF 2025",
"status": "active",
"date": "2025-08-10"
}
]
}
}
Retrieve all bans involving a specific player.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | required | The player ID |
curl "https://slopfiles.com/api/v1/players/102/bans"
{
"success": true,
"data": [
{
"id": 42,
"team": "FlagHoarders",
"event": "DEF CON CTF 2025",
"status": "active",
"reason": "Flag sharing between teams",
"date": "2025-08-10"
}
],
"pagination": {
"page": 1,
"limit": 25,
"total": 2,
"pages": 1
}
}
Events
Retrieve a paginated list of all CTF events in the database. Use the search parameter to filter by name.
| Parameter | Type | Required | Description |
|---|---|---|---|
| q | string | optional | Search query to filter events by name |
| page | integer | optional | Page number (default: 1) |
| limit | integer | optional | Results per page (default: 25, max: 100) |
curl "https://slopfiles.com/api/v1/events?q=defcon"
{
"success": true,
"data": [
{
"id": 15,
"name": "DEF CON CTF 2025",
"date": "2025-08-08",
"ban_count": 12
}
],
"pagination": {
"page": 1,
"limit": 25,
"total": 3,
"pages": 1
}
}
Retrieve full details for a specific event, including all bans issued during that event.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | required | The event ID |
curl "https://slopfiles.com/api/v1/events/15"
{
"success": true,
"data": {
"id": 15,
"name": "DEF CON CTF 2025",
"date": "2025-08-08",
"url": "https://ctftime.org/event/...",
"bans": [
{
"id": 42,
"team": "FlagHoarders",
"status": "active",
"reason": "Flag sharing between teams"
}
],
"ban_count": 12
}
}
Retrieve all bans from a specific event.
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer | required | The event ID |
curl "https://slopfiles.com/api/v1/events/15/bans"
{
"success": true,
"data": [
{
"id": 42,
"team": "FlagHoarders",
"status": "active",
"reason": "Flag sharing between teams",
"date": "2025-08-10"
},
{
"id": 43,
"team": "ScriptK1ddies",
"status": "appealed",
"reason": "Infrastructure attack against other teams",
"date": "2025-08-09"
}
],
"pagination": {
"page": 1,
"limit": 25,
"total": 12,
"pages": 1
}
}
Search
Search across all entity types - teams, players, and events - in a single request. Returns grouped results.
| Parameter | Type | Required | Description |
|---|---|---|---|
| q | string | required | Search query string |
| limit | integer | optional | Max results per category (default: 10) |
curl "https://slopfiles.com/api/v1/search?q=defcon&limit=5"
{
"success": true,
"data": {
"teams": [
{ "id": 7, "name": "FlagHoarders", "ban_count": 3 }
],
"players": [
{ "id": 101, "name": "sk1d_r00t", "ban_count": 1 }
],
"events": [
{ "id": 15, "name": "DEF CON CTF 2025", "ban_count": 12 }
]
}
}
Stats
Retrieve aggregate statistics about the entire slopfiles database, including total counts and breakdowns.
curl "https://slopfiles.com/api/v1/stats"
{
"success": true,
"data": {
"total_bans": 342,
"active_bans": 187,
"appealed_bans": 89,
"revoked_bans": 66,
"total_teams": 156,
"total_players": 891,
"total_events": 73
}
}
No parameters required.