
So, uhh... Any news?
Really want to edit my user data with an API.
Really want to edit my user data with an API.
3 Yrs✓
beerisvictory
3 Yrs✓
Would also love to use an official api and willing to pay for it
1 Yr✓
felixthecatx
1 Yr✓
Any news on this would be great. I was surprised to see there wasn't a public API.

✓
I'm also pretty interested in something like this. I make a game page on my website for every game that I fully livestream (60+ so far) and would love to be able to integrate HowLongtoBeat into the site in some way.
API or even a simple, customizable cached embed might work well too. For my needs anyway, I can't speak for everyone else here.
This site is really useful, and cool, and I've been using for a while now (probably years through Google) — I just signed up and started adding all of the games I play into it to help contribute a little. Having more links back to it from external sources would probably help reinforce the "brand" even more.
API or even a simple, customizable cached embed might work well too. For my needs anyway, I can't speak for everyone else here.
This site is really useful, and cool, and I've been using for a while now (probably years through Google) — I just signed up and started adding all of the games I play into it to help contribute a little. Having more links back to it from external sources would probably help reinforce the "brand" even more.

I actually couldnt wait anymore and implemented a sort of cache a few weeks ago.
It basically performs the same search request as howlongtobeat.com but afterwards tries to obtain gog and steamappids as well.
I mainly use them to find a time.
The results are stored inside a local or remote db.
Theres a refresh endpoint as well but I still havent thought much about how and when to update the cached entries.
The code can be found here.
I host some weak azure vms behind a load balancer if you want to use it.
Theres additionally an OpenApi-UI ( Scalar ) to test things.
But basically you either POST a search or you GET a single entry using a steam or gog appid:
Currently there are 4 azure free tier vms behind this loadbalancer.
Existing entries are returned pretty fast due to the local sqlite db.
But as you can see if the VM doesnt "feel like it" it might take pretty long
It basically performs the same search request as howlongtobeat.com but afterwards tries to obtain gog and steamappids as well.
I mainly use them to find a time.
The results are stored inside a local or remote db.
Theres a refresh endpoint as well but I still havent thought much about how and when to update the cached entries.
The code can be found here.
I host some weak azure vms behind a load balancer if you want to use it.
Theres additionally an OpenApi-UI ( Scalar ) to test things.
But basically you either POST a search or you GET a single entry using a steam or gog appid:
at 15:02:02 ❯ curl 'https://hltbapi.codepotatoes.de/steam/1091500' | jq .
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 270 0 270 0 0 15 0 --:--:-- 0:00:17 --:--:-- 58
{
"id": 9,
"hltbId": 2127,
"title": "Cyberpunk 2077",
"imageUrl": "https://howlongtobeat.com/games/Cyberpunk-2077-2.jpg",
"steamAppId": 1091500,
"gogAppId": 2093619782,
"mainStory": 25.87,
"mainStoryWithExtras": 62.73,
"completionist": 106.9,
"lastUpdatedAt": "2025-06-28T13:02:24.891379Z"
}
at 15:02:26 ❯ curl 'https://hltbapi.codepotatoes.de/steam/1091500' | jq .
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 271 0 271 0 0 51 0 --:--:-- 0:00:05 --:--:-- 64
{
"id": 6,
"hltbId": 2127,
"title": "Cyberpunk 2077",
"imageUrl": "https://howlongtobeat.com/games/Cyberpunk-2077-2.jpg",
"steamAppId": 1091500,
"gogAppId": 2093619782,
"mainStory": 25.87,
"mainStoryWithExtras": 62.73,
"completionist": 106.9,
"lastUpdatedAt": "2025-06-28T13:02:33.3218513Z"
}
Currently there are 4 azure free tier vms behind this loadbalancer.
Existing entries are returned pretty fast due to the local sqlite db.
But as you can see if the VM doesnt "feel like it" it might take pretty long
at 15:02:33 ❯ curl 'https://hltbapi.codepotatoes.de/steam/1091500'
{"id":9,"hltbId":2127,"title":"Cyberpunk 2077","imageUrl":"https://howlongtobeat.com/games/Cyberpunk-2077-2.jpg","steamAppId":1091500,"gogAppId":2093619782,"mainStory":25.87,"mainStoryWithExtras":62.73,"completionist":106.9,"lastUpdatedAt":"2025-06-28T13:04:45.6165408Z"}⏎
~ via v24.2.0 took 6s
at 15:04:46 ❯ curl 'https://hltbapi.codepotatoes.de/steam/1091500'
{"id":30,"hltbId":2127,"title":"Cyberpunk 2077","imageUrl":"https://howlongtobeat.com/games/Cyberpunk-2077-2.jpg","steamAppId":1091500,"gogAppId":2093619782,"mainStory":25.87,"mainStoryWithExtras":62.73,"completionist":106.9,"lastUpdatedAt":"2025-06-28T13:04:51.8066768Z"}⏎
~ via v24.2.0 took 2s
at 15:04:51 ❯ curl 'https://hltbapi.codepotatoes.de/steam/1091500'
{"id":9,"hltbId":2127,"title":"Cyberpunk 2077","imageUrl":"https://howlongtobeat.com/games/Cyberpunk-2077-2.jpg","steamAppId":1091500,"gogAppId":2093619782,"mainStory":25.87,"mainStoryWithExtras":62.73,"completionist":106.9,"lastUpdatedAt":"2025-06-28T13:02:24.891379"}⏎
~ via v24.2.0
at 15:04:53 ❯ curl 'https://hltbapi.codepotatoes.de/steam/1091500'
{"id":6,"hltbId":2127,"title":"Cyberpunk 2077","imageUrl":"https://howlongtobeat.com/games/Cyberpunk-2077-2.jpg","steamAppId":1091500,"gogAppId":2093619782,"mainStory":25.87,"mainStoryWithExtras":62.73,"completionist":106.9,"lastUpdatedAt":"2025-06-28T13:02:33.3218513"}⏎
~ via v24.2.0
at 15:04:53 ❯ curl 'https://hltbapi.codepotatoes.de/steam/1091500'
{"id":9,"hltbId":2127,"title":"Cyberpunk 2077","imageUrl":"https://howlongtobeat.com/games/Cyberpunk-2077-2.jpg","steamAppId":1091500,"gogAppId":2093619782,"mainStory":25.87,"mainStoryWithExtras":62.73,"completionist":106.9,"lastUpdatedAt":"2025-06-28T13:04:45.6165408"}⏎
~ via v24.2.0
at 15:05:06 ❯ curl 'https://hltbapi.codepotatoes.de/steam/1091500'
{"id":30,"hltbId":2127,"title":"Cyberpunk 2077","imageUrl":"https://howlongtobeat.com/games/Cyberpunk-2077-2.jpg","steamAppId":1091500,"gogAppId":2093619782,"mainStory":25.87,"mainStoryWithExtras":62.73,"completionist":106.9,"lastUpdatedAt":"2025-06-28T13:04:51.8066768"}⏎