---
title: Cow Hunter: public endpoints
description: The two read-only JSON endpoints Cow Hunter publishes.
canonical: https://cowhunter.lol/api.md
last-updated: 2026-09-30
---

# Cow Hunter – public endpoints

Two routes of the world service are public and read-only. No key, no account, no rate-limit headers: they are the same routes the game client itself reads. Everything else under `/api/` belongs to a round in progress, is validated as a replay of that round, and is not an interface for anyone else to call.

## GET /api/runs

The shared table, highest score first.

```sh
curl -s "https://cowhunter.lol/api/runs?limit=10"
```

Returns `{"runs":[...]}`. Each row carries `id`, `name`, `score`, `kills`, `combo`, `explosions`, `car`, `seconds`, `world`, `at` and, when the run was filed with one, a two-letter `country`. `limit` is 1 to 100 and defaults to 10.

## GET /api/world

The modifiers live on the field right now, as the operator set them.

```sh
curl -s "https://cowhunter.lol/api/world"
```

Returns `{"mods":[...]}`. Each modifier carries `key`, `value`, `name` and `until` as an epoch milliseconds timestamp. An empty list is a normal answer: it means the field is unmodified.

## What is not public

Starting, feeding and finishing a run. Those routes exist for the page that is playing the round and only accept a full, consistent replay of one; there is no way to file a score without driving it.

Machine description: [https://cowhunter.lol/openapi.json](https://cowhunter.lol/openapi.json).
