Introduction
API documentation for the Smash Map website
This documentation aims to provide all the information you need to work with our API.
Game IDs
| Game | ID |
|---|---|
| 64 | 4 |
| Melee | 1 |
| Brawl | 5 |
| Project M | 2 |
| Project + | 33602 |
| 3DS / WiiU | 3 |
| Ultimate | 1386 |
| HDR | 34157 |
| Rivals 2 | 53945 |
Authenticating requests
This API is not authenticated.
Events
List events with filtering, sorting, and pagination support.
Example request:
curl --request GET \
--get "https://smash-map.com/api/events?games=1%2C+1386&name=Smash&type=offline&continents=NA%2CEU&countries=US%2CCA&orderBy=attendeesASC" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://smash-map.com/api/events"
);
const params = {
"games": "1, 1386",
"name": "Smash",
"type": "offline",
"continents": "NA,EU",
"countries": "US,CA",
"orderBy": "attendeesASC",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());import requests
import json
url = 'https://smash-map.com/api/events'
params = {
'games': '1, 1386',
'name': 'Smash',
'type': 'offline',
'continents': 'NA,EU',
'countries': 'US,CA',
'orderBy': 'attendeesASC',
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
"data": [
{
"id": 1,
"game": {
"name": "Super Smash Bros. Melee",
"color": "#A30010"
},
"address": {
"country": {
"name": "United States",
"timezone": "America/Los_Angeles"
},
"name": "Anaheim Convention Center",
"latitude": 33.8003,
"longitude": -117.9211
},
"image": {
"url": "https://smashmap.example.com/storage/images/events/1.png"
},
"is_online": false,
"name": "Genesis 10",
"iso_start_date_time": "2025-10-11T15:30:00-04:00", # Start date-time in ISO format
"iso_end_date_time": "2025-10-11T23:00:00-04:00", # End date-time in ISO format
"timezone_start_date_time": "11-10-2025 15:30:00", # How the front-end directly displays the start date-time
"timezone_end_date_time": "23:00:00", # How the front-end directly displays the end date-time
"timezone": "UTC -04:00",
"attendees": 5000,
"link": "https://start.gg/tournament/genesis-10",
"user_subscribed": false
}
],
"links": {
"first": "https://smashmap.example.com/api/events?page=1",
"last": "https://smashmap.example.com/api/events?page=10",
"prev": null,
"next": "https://smashmap.example.com/api/events?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 10,
"per_page": 12,
"to": 12,
"total": 120
}
}
Example response (500):
{
"message": "An error occurred while retrieving the events E 006",
"error": "Error message details"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Get event statistics in a format suitable for charts.
Example request:
curl --request GET \
--get "https://smash-map.com/api/events/statistics?type=games" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"https://smash-map.com/api/events/statistics"
);
const params = {
"type": "games",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());import requests
import json
url = 'https://smash-map.com/api/events/statistics'
params = {
'type': 'games',
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
"data": {
"labels": [
"64",
"Melee",
"Brawl",
"Project M",
"Project +",
"3DS / WiiU",
"Ultimate",
"HDR",
"Rivals 2"
],
"datasets": [
{
"data": [
12,
450,
80,
95,
150,
60,
800,
30,
120
],
"backgroundColor": [
"#FAC41A",
"#A30010",
"#660d02",
"#3B448B",
"#6FD19C",
"#AFC1EE",
"#F18A41",
"#015500",
"#B19EEF"
],
"hoverBackgroundColor": [
"#D8A504",
"#82000C",
"#510A01",
"#2F366F",
"#3EC17A",
"#6A8CDF",
"#E46810",
"#013D00",
"#9A85D1"
]
}
],
"eventCount": 1797
},
"message": "Statistics retrieved with success"
}
Example response (200):
(type=months) {
"data": {
"labels": ["January", "February", "March", "April", "May", "June"],
"datasets": [
{
"label": "64",
"backgroundColor": ["#FAC41A"],
"hoverBackgroundColor": ["#D8A504"],
"data": [2, 3, 4, 2, 1, 0]
},
{
"label": "Melee",
"backgroundColor": ["#A30010"],
"hoverBackgroundColor": ["#82000C"],
"data": [80, 95, 120, 85, 70, 0]
},
{
"label": "Brawl",
"backgroundColor": ["#660d02"],
"hoverBackgroundColor": ["#510A01"],
"data": [10, 15, 20, 18, 17, 0]
},
{
"label": "Project M",
"backgroundColor": ["#3B448B"],
"hoverBackgroundColor": ["#2F366F"],
"data": [20, 25, 30, 20, 0, 0]
},
{
"label": "Project +",
"backgroundColor": ["#6FD19C"],
"hoverBackgroundColor": ["#3EC17A"],
"data": [30, 40, 50, 30, 0, 0]
},
{
"label": "3DS / WiiU",
"backgroundColor": ["#AFC1EE"],
"hoverBackgroundColor": ["#6A8CDF"],
"data": [5, 8, 10, 7, 30, 0]
},
{
"label": "Ultimate",
"backgroundColor": ["#F18A41"],
"hoverBackgroundColor": ["#E46810"],
"data": [150, 200, 250, 150, 50, 0]
},
{
"label": "HDR",
"backgroundColor": ["#015500"],
"hoverBackgroundColor": ["#013D00"],
"data": [5, 8, 9, 8, 0, 0]
},
{
"label": "Rivals 2",
"backgroundColor": ["#B19EEF"],
"hoverBackgroundColor": ["#9A85D1"],
"data": [25, 35, 40, 20, 0, 0]
}
],
"eventCount": 0
},
"message": "Statistics retrieved with success"
}
Example response (500):
{
"message": "An error occurred while retrieving the events statistics E 010",
"error": "Error message details"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.