Skip to content

Open-source, fast, and scalable API for fetching public HLTV data. Updated monthly and fully extensible with Swagger-documented endpoints.

License

Notifications You must be signed in to change notification settings

Gabrielcnetto/HLTV-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HLTV API Open Source Project

Fetches public data from HLTV and allows you to extend it with additional endpoints. Please submit updates via pull requests for review.

This API can be used by cloning the repository and running it. Access Swagger at http://localhost:8080/swagger/index.html to see all endpoints. If you submit a pull request, make sure any new or updated endpoints are fully documented in Swagger.

Installation

git clone https://github.com/Gabrielcnetto/HLTV-api.git

  cd HLTV-api
  go run main.go

Endpoints

You can access all available endpoints using Swagger or by checking the /controllers/endpoints.go file.

	router.GET("/live-now", livenow.CallLiveNow)
	router.GET("/matches", matches.CallMatches)
	router.GET("/last-results", results.CallResults)
	router.POST("/match", match.GetMatchData)
	router.POST("/match-stats", mapstats.GetMapStats)
	router.POST("/heat-map", heatmapmatch.CallHeatMapMatch)

Example usage Get matches live now

Request Example using curl:

curl -X GET http://localhost:8080/api/live-now

response example:

[
  {
    "matchId": "12345",
    "team1": "Team A",
    "team2": "Team B",
    "map": "Dust2",
    "score": "10-5",
    "time": "15:30"
  },
  {
    "matchId": "12346",
    "team1": "Team C",
    "team2": "Team D",
    "map": "Mirage",
    "score": "3-12",
    "time": "16:00"
  }
]

Get Map Stats

Fetch detailed statistics for a single map from a match. Use the matchId and matchDescription obtained from the /match endpoint.

Endpoint:

Request Example using curl:

curl -X POST http://localhost:8080/api/match-stats \
-H "Content-Type: application/json" \
-d '{
  "matchid": "215455",
  "matchDescription": "furia-vs-natus-vincere"
}'

response example:

{
    "StatsTeam1": {
        "TeamName": "FaZe",
        "PlayersStats": [
            {
                "PlayerName": "Twistzz",
                "KD": "20-10",
                "Swing": 7.5,
                "ADR": 91.3,
                "KAST": 85.7,
                "Rating30": 1.87
            },
            {
                "PlayerName": "jcobbb",
                "KD": "17-10",
                "Swing": 6.19,
                "ADR": 102.6,
                "KAST": 90.5,
                "Rating30": 1.66
            },
            {
                "PlayerName": "broky",
                "KD": "20-13",
                "Swing": -0.1,
                "ADR": 90.7,
                "KAST": 95.2,
                "Rating30": 1.37
            },
            {
                "PlayerName": "karrigan",
                "KD": "12-12",
                "Swing": -0.29,
                "ADR": 53.3,
                "KAST": 81,
                "Rating30": 1
            },
            {
                "PlayerName": "frozen",
                "KD": "13-14",
                "Swing": -2.45,
                "ADR": 87.6,
                "KAST": 71.4,
                "Rating30": 0.97
            }
        ]
    },
    "StatsTeam2": {
        "TeamName": "Natus Vincere",
        "PlayersStats": [
            {
                "PlayerName": "makazze",
                "KD": "14-16",
                "Swing": 0.38,
                "ADR": 78.6,
                "KAST": 76.2,
                "Rating30": 1.1
            },
            {
                "PlayerName": "b1t",
                "KD": "15-16",
                "Swing": -2.86,
                "ADR": 74.7,
                "KAST": 61.9,
                "Rating30": 0.91
            },
            {
                "PlayerName": "Aleksib",
                "KD": "10-15",
                "Swing": -0.81,
                "ADR": 60,
                "KAST": 66.7,
                "Rating30": 0.8
            },
            {
                "PlayerName": "w0nderful",
                "KD": "12-18",
                "Swing": -3.03,
                "ADR": 52.7,
                "KAST": 52.4,
                "Rating30": 0.72
            },
            {
                "PlayerName": "iM",
                "KD": "8-17",
                "Swing": -4.53,
                "ADR": 53.6,
                "KAST": 61.9,
                "Rating30": 0.6
            }
        ]
    }
}

Requirements

  • Go 1.20+ (or latest stable version)
  • Git

Used Packages

Feedback

Don't hesitate to add new features and endpoints! Please keep the code clean and well-structured, and make sure all new endpoints are properly documented. I would love to see the new features you create!

Authors

About

Open-source, fast, and scalable API for fetching public HLTV data. Updated monthly and fully extensible with Swagger-documented endpoints.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages