Deployed API — how to reach it. Every command below targets https://api.luchasim.com, the address you used to open this page.
Reachable at api.luchasim.com — the same address as this page. List services:
grpcurl api.luchasim.com list
Inside the container gRPC listens on port 6009, behind the proxy; that port is not reachable from outside.
Base https://api.luchasim.com/v1. Example — list arena:
curl https://api.luchasim.com/v1/arenas
Inside the container HTTP listens on port 8080, behind the proxy; that port is not reachable from outside. Collection paths are plural and kebab-cased.
JWT — sign in for a token, then send Authorization: Bearer <token>. Signin answers with {"Token":"...","Expires":"..."} — the field names are capitalised.
curl -s -X POST https://api.luchasim.com/signin -H 'Content-Type: application/json' -d '{"email":"...","password":"..."}'
End to end:
TOKEN=$(curl -s -X POST https://api.luchasim.com/signin -H 'Content-Type: application/json' -d '{"email":"...","password":"..."}' | jq -r .Token)
curl https://api.luchasim.com/v1/arenas -H "Authorization: Bearer $TOKEN"
grpcurl -H "authorization: Bearer $TOKEN" api.luchasim.com list
Also POST /refresh and POST /validate, on the same address.
These endpoints are served here whether or not a REST API is enabled — a gRPC-only deployment still signs in over HTTP at this address. A 401 from signin means the email matched no user row or the password was wrong; a user row must exist in your user entity with a bcrypt hash in its password column, not a plaintext password.
arena → /v1/arenaswrestler → /v1/wrestlersmatch → /v1/matchesmatch_participant → /v1/match-participantsathlete → /v1/athletesincarnation → /v1/incarnationsuser → /v1/userspromotion → /v1/promotionsevent → /v1/eventsevent_promotion → /v1/event-promotionssource → /v1/sourcesevent_source → /v1/event-sourcesstipulation_tag → /v1/stipulation-tagsmatch_stipulation → /v1/match-stipulationssync_state → /v1/sync-stateswrestler_tag → /v1/wrestler-tagswrestler_tagging → /v1/wrestler-taggings