Command a small fleet: crew rosters, warp-speed changes with physics-based validation, a breached warp core that refuses orders, and a tribble endpoint that doubles on every GET — a read that mutates, which your test suite should absolutely complain about.
The Starfleet API runs ships and crews under warp-factor limits, and breeds tribbles that multiply exponentially on every read of their population. That growing number is the point: it is the catalog's only endpoint whose response changes on its own between two identical requests, which is exactly what breaks a naive snapshot test.
Base URL: https://funapi.dev/api/starfleet/v1 · 10 endpoints · OpenAPI 3.1 spec and Postman collection available. New here? Read the getting started guide.
GET https://funapi.dev/api/starfleet/v1/ships — List ships, filter by class or status. No token, no signup:
curl -i https://funapi.dev/api/starfleet/v1/ships
answers 200 OK with:
{
"total": 4,
"data": [
{
"id": 1,
"name": "USS Curiosity",
"registry": "NCC-1704",
"class": "Constitution",
"status": "active",
"warpCore": "stable",
"currentWarp": 0
},
{
"id": 2,
"name": "USS Paperwork",
"registry": "NCC-9021",
"class": "Miranda",
"status": "active",
"warpCore": "stable",
"currentWarp": 2
},
{
"id": 3,
"name": "USS Redundancy",
"registry": "NCC-4242",
"class": "Excelsior",
"status": "in-refit",
"warpCore": "offline",
"currentWarp": 0
},
{
"id": 4,
"name": "USS Boldly",
"registry": "NCC-1138",
"class": "Defiant",
"status": "active",
"warpCore": "breached",
"currentWarp": 0
}
]
}
the fleet, mostly functional
GET /starfleet/v1/ships — List ships, filter by class or status · Responds with 200 Link to this endpointGET /starfleet/v1/ships/{id} — Get one ship · Responds with 200 404 Link to this endpointPOST /starfleet/v1/ships — Commission a new ship (requires Bearer auth) · Responds with 201 400 401 409 Link to this endpointPUT /starfleet/v1/ships/{id}/warp — Set warp factor (physics says no above 9.9) (requires Bearer auth) · Responds with 200 400 401 404 409 Link to this endpointrosters and redshirts
GET /starfleet/v1/crew — List crew, filter by species or ship · Responds with 200 Link to this endpointGET /starfleet/v1/crew/{id} — Get one crew member · Responds with 200 404 Link to this endpointPOST /starfleet/v1/crew — Enlist a crew member (requires Bearer auth) · Responds with 201 400 401 404 Link to this endpointDELETE /starfleet/v1/crew/{id} — Discharge a crew member (admin only) (requires Bearer auth) · Responds with 204 401 403 404 Link to this endpointdo NOT keep GETting
GET /starfleet/v1/tribbles — Count tribbles — doubles on EVERY read · Responds with 200 Link to this endpointPOST /starfleet/v1/tribbles/purge — Beam the tribbles away (admin only) (requires Bearer auth) · Responds with 200 401 403 Link to this endpointUnofficial and fan-made. The Starfleet API is a practice API that borrows a theme; it is not affiliated with, sponsored or endorsed by the owners of the names it references, which belong to them. Every record it returns is test data for exercising HTTP behaviour, not an authoritative source on the subject.
Last updated