why is goal id deprecated?

Why is the goal id deprecated? It would be nice to have some kind of handle on goals that is guaranteed to not change.

Use case: I have an integration. I want to keep track of the goals that it manages so that I can guarantee that it won’t post data to goals that it shouldn’t. If I store the slug, then the user will never be able to change their slug. There are good reasons why changing slugs is allowed in general.

If the autodata webhook from beeminder included the goal id as well as the slug, I could check against that instead of the slug, and I could store the latest slug in order to interact with the API.

Bonus points: If the API accepted the ID as well as the slug, it would simplify my code and make the system more robust around recent slug changes.


I realized I don’t really need anything added, I just need it to not be removed. If I get a goal I haven’t stored I can request that goal’s data and check the goal ID.

1 Like

Thank you! You’re right. Ever since we allowed changing the goal’s goalname, it has made sense for API clients to identify goals by goal ID. So let me hereby commit to undeprecating that! http://dreev.commits.to/undeprecate_goalid


I didn’t realize goal id existed before. It seems like Beeminder should provide integrations the goal id instead of the goalname, and then the problem of integrations breaking is solved? Or at the very least expose the goal id to IFTTT/Zapier.