Hi Andrew @VK3ARR !
Is there any documentation for SOTAData API (is there any API availble?), so we could create some logging, mapping and summit listing apps to android overhere in South America?

I’m not Andrew, but here you are:

I think you want the /api/associations and /api/regions endpoints.

Bogdan YO3SAW


There’s also a separate API for the Database, but that interface isn’t considered stable, so I don’t share the docs for that very widely. @PY1II I’ll reach out to you separately and see what you need from there if API2 doesn’t give you what you want.


It will be a great help! Thanks!

We don’t know exactly everything what we want yet. Still in the begining of the work. But I think it’s enough for now. I let you know if we need something else. Thanks!

I guess you would want this too:
csv list with all summits

Btw. why reinvent the wheel?

Apps like:
SOTA Spotter
and VK- Port-a-log
VK port-a-log | VK3ZPF Ham Radio Blog

… do a very good job in Alerting, Spotting, Logging and finding summits. All over the world.

And of course as webtool

Thank you for your reply and links.
Yeah! You’re right about (re)doing things that’re working well. We’ve already taken a look in other great apps overthere and will take a look on those you mentioned.
But maybe we can bring a new feature and don’t forget the pleasure of messing around… :wink:


Hi @VK3ARR, has something changed with the API recently? Nobody on SOTA Goat can post things right now. I have made no API client changes and now all calls to POST /api/spots are failing with the error “Sequence contains no elements”, which looks like some LINQ thing going on under the hood?

Here’s the body of my POST:

{"activatorCallsign":"WW1X","associationCode":"W1","comments":"Testing (shhh!)","frequency":"14.313","id":371498,"mode":"SSB","posterCallsign":"WW1X","summitCode":"CR-001"}

I am providing the session token in both the Bearer and id_token HTTP headers.

You’re passing an id with the JSON which suggests you are trying to edit a spot (if you’re adding a spot, id must be 0). In this case, that spot has already been deleted (or it’s not in the database).

I’m an idiot. Thanks.

No, no, it’s perfectly reasonable to assume it’s my fault, based on usual history :smiley:

1 Like