sendou.ink/docs/dev/api.md
2026-07-31 11:41:02 +03:00

1.8 KiB

API

API for external projects to access sendou.ink data for projects such as streams is available. This API is for reading data, writing is not supported. You will need a token to access the API. If you have permissions (supporters of Supporter tier or higher, or any admin, organizer or streamer of an established organization has access), you can access the https://sendou.ink/api page to generate one.

Rules

Primarily the API is meant to be used to provide data for tournament stream layouts. Check other usecases with Sendou ahead of time. Cache everything that you can. For anything that is not time sensitive prefer times outside of peak hours (EU/NA evenings). API tokens can be rate limited or disabled if the load causes risks other users using the site.

Endpoints

Check out sendou.ink/app/features/api-public/schema.ts

Curl example

sendou@macbook ~ % curl -H "Authorization: Bearer mytoken" https://sendou.ink/api/tournament/1 
{"name":"PICNIC mini","startTime":"2023-05-18T18:00:00.000Z","url":"https://sendou.ink/to/1/brackets","logoUrl":"https://sendou-assets.nyc3.cdn.digitaloceanspaces.com/img/tournament-logos/pn.avif","teams":{"checkedInCount":25,"registeredCount":31},"brackets":[{"name":"Main bracket","type":"double_elimination"}],"organizationId":1,"isFinalized":true}% 

Developing

Some "copy paste" is expected to keep public API separated from internal implementations. This is why we call database on each route handler separately as an exception to how we do it in internal loaders.

This API is lean on purpose and by default new endpoints will not be added. This is to keep maintenance burden low and anyway the project is not designed to support a large number of API consumers.

Clients (unofficial)