Request: Public API

I maintain my club’s website and it’d be great to be able to do things like displaying the best rounds for each course, a record of when people have got aces, calculating people’s handicaps for the course, and tracking the bag tag standings, all of which is just managed manually at the moment.

I’ve seen similar requests on Reddit too, for example:

https://www.reddit.com/r/discgolf/comments/vjzpah/best_way_to_get_at_udisc_score_data/

https://www.reddit.com/r/discgolf/comments/1099ua5/udisc_api_solutions/

Cheers,
Peter

26 Likes

I’d also like to be able to pull our weekly tournament scores via the api into a place where we have handicaps to make our end of the round calculations and payouts faster.

Hey Peter and Ryan,

Really appreciate you adding this here! Suggestions like this are taken to heart and we’ll be sure to keep this mind for future updates. I’m sure you’ve used this feature before, but you are able to Export to CSV in your League Tools and can import these into a database if you already have one created. I know not exactly what you may be trying to achieve, but a great option for the time being. Keep the ideas coming!

2 Likes

I and a few of my compatriots are chomping at the bit for a UDisc public API. I run a number of python modules for random draw doubles, triples, monthly bag tag and annual unsanctioned tournaments and manually exporting to csv, and then using an in excel formula to match registrant names with UDisc results is cumbersome.
Some of my colleagues are also looking at a pet project that would benefit from UDisc integration.

I’m not sure if what I would like to see fits in here with this situation but I am also currently running a league that plays mostly out of the course I am an ambassador for. It’s a handicap league where handicaps are created after a player completes two rounds in the league. I’m currently taking the scores out of UDisc and entering them into another site that we run the league out of because it gives leagues the option of using handicaps. I’d love it if we could just do it all in UDisc , any chance that might be something added to the app in the ( NEAR) future?

2 Likes

I would love to run a handicapped league but honestly I don’t have the time to create all the necessary spreadsheets to make the calculations. I would totally pay extra if UDisc could handle that side for me.

A public API is something we would also love, but isn’t currently on the roadmap for the near-term. However, being able to provide some helpful information for player handicaps is on the roadmap.

Keep in mind that offering a public API is a huge + low cost marketing opportunity. Just put in the terms of service that any time statistics or content derived from the API is published, that a credit be included and a link back to UDisc.

This would be the cheapest ad spend you guys will have ever made, and continue to keep UDisc in the public consciousness. With the recent loss of the live scoring of the pro tour, it might be the best time in fact to go on the offensive with expanded public promotion, and this is low hanging fruit.

1 Like

In what universe is developing a public API low cost? This would require development, documentation, support, etc. Would be a massive undertaking for uDisc and likely raise costs again.

1 Like

I’ve been a software architect for more than 20 years, and I’ve written multiple REST API’s in that time and they are neither difficult, nor costly (at least when done property they don’t need to be). They obviously already have something generating their CSV files, so the core data tools are already there, they just need to repackage the delivery into a REST API and that is a long established standard. Seriously, you could spin out the first endpoints in a day.

1 Like

I agree with Kevin Farley here … creating a web api wouldn’t be much work … at least let me export the results using a URL … right now I have to manually go to each of my 15 league’s pages and click on the button … but if there was a way I could construct a URL and have it download it automatically would be amazing.

I could then write a program to hit the URL, download the file, then automatically import the results into my system (a Google Spreadsheet) to do the stats on all my leagues that I do.

1 Like

While it’s true there is not any major technical challenge with creating a REST endpoint, creating a public API requires a lot more thought and due diligence to do well.

We have to consider many factors like security, privacy, and abuse prevention. And one of the biggest factors is maintaining the API and managing changes: if we publish an API, folks will expect it to not break, so we would have to version APIs in backwards compatible ways.

At this point, it’s helpful to understand what use-cases folks have for an API, but building a public API is not on our near-term roadmap.

@brianhannan I do think a URL-based download for event exports makes sense though and is something we can roll in to our upcoming league updates.

7 Likes

“security, privacy, and abuse prevention”

Please accept this high-five from a Security Guy.

1 Like

Can someone put into english all this geek stuff ? API public or not security privacy and abuse prevention of what ? Look all I know is i enter score in the app and then after its all done I gotta go to another app and enter scores cause UDisc can’t add a handicap league function ? It sure seems like it should be possible. I mean Disc Golf Scene did it .

Honestly, the URL-based download solves most of what I’m looking to accomplish though an API would allow me to have more reliable code.

Let me us know when you get the URL-based download feature in place! I will start using it immediately.

Thanks so much!!

Geek here … any time you have an API someone can abuse it and shut it down with denial of service (DOS) attacks. You want to make sure any data you’re sharing publicly doesn’t violate someone else’s private data … you’d be surprised what it takes to prevent attacks and privacy of data.

I also have to input scores into another app for what I’m doing but I wouldn’t expect UDisc to provide the feature I am providing. Having an API would make it easier and more reliable to create an interface from UDisc to any other code you or someone else might want to program. But having a URL-based download of the export would allow anyone to do just about the same … the difference is you’d have to be able to have your code digest an Excel file as opposed to JSON or XML. I’m going to download the Excel file and generate XML from it and then do my programming based on the XML.

With an API, your users will begin to create things that you had never thought of. Features that you could use to inform development of the app itself. Asking for use-cases up front is missing the forest for the trees.

For such a data-rich app, building an API should have been on the roadmap a long long time ago. I’m not trying to be flippant, I just think it’s a poor business decision.

1 Like

Just another user here saying I would love a public API and could do a lot of cool things with it, such as posting results to a league website, posting hot rounds to a discord channel, and creating a digital bag tag league.

But if it’s not going to happen, then it would be really helpful to have some way to download CSVs without asking all league members to manually download and send them.

We just want more social features. And we will do the work if you give us the tools.

Thank you for creating this wonderful app.

2 Likes

@smerchek Thanks for recognizing the importance of an API, though I wish it was more positive news about where it sits on your priority list, there’s an army of us out here chomping at the bit to create for you guys.

Of course security, versioning, and privacy are real concerns but a reverse proxy, and limiting your V1 deliverables to the same data you’re already providing takes care of all of those concerns, and provides both you and your community a solid foundation to build on. Really, it’s not even a full REST API, you only need to implement the GET interface to get us started.

A URL based download of what you’re offering would have the same issues as a properly structured API, you’ll still need a reverse proxy to enforce rate limiting, you still need to enforce the same security you already have at a minimum, and you still have the same question of anonymizing the data for privacy. If you’re going to put your efforts into one, why not the proper one, it’s not a stop gap if you have to do the same work.

Anyhow, thank you for considering the idea and our desire, we can’t wait… seriously… :wink:

2 Likes

@smerchek a few use cases from my own experience:

As a disc golf scorekeeper
I want to automate the download of league round/event scores by player
So that I may:

  • apply my league’s unique scoring system
  • test/simulate changes to the scoring system
  • present results in a format/place that my players are accustomed to
  • add extra data that is unique to my league
  • eliminate/exclude results from certain players

I’m sure there are many more, but I bet these are some of the most common.

Also, +1 for a nearer-term solution as URL-based downloads. Key requirement would be to make the url pattern predictable enough to support automation.

3 Likes