Build Status API

Public JSON endpoint for arch4edu package build status.

Endpoint

Response

{
  "generated_at": 1779683099,
  "total": 1472,
  "packages": [
    {
      "key": "aarch64/browsh-bin",
      "category": "aarch64",
      "pkgbase": "browsh-bin",
      "status": "PUBLISHED",
      "detail": "",
      "workflow": "23004641077",
      "workflow_url": "https://github.com/arch4edu/cactus/actions/runs/...",
      "aur_url": "https://aur.archlinux.org/pkgbase/browsh-bin",
      "timestamp": 1773408990
    }
  ]
}

Usage

curl -s https://api.arch4edu.org/status/builds.json | jq '.packages[] | select(.status=="FAILED")'

Notes

  • Data is refreshed periodically and cached at the edge (TTL ~5 min).
  • Schema may grow with new fields; existing fields remain stable.

Traffic API

Geographic request distribution from Cloudflare Analytics for repository.arch4edu.org.

Endpoint

Response

{
  "generated_at": 1780000000,
  "days": 7,
  "total_requests": 28463,
  "countries": [
    { "country": "US", "percent": 32.548 },
    { "country": "NL", "percent": 14.289 },
    { "country": "FR", "percent": 5.207 }
  ]
}

Usage

curl -s https://api.arch4edu.org/status/traffic.json | jq '.countries[:5]'

Notes

  • Regenerated once per day from the Cloudflare Analytics GraphQL API.
  • Country / Region labels are provided by Cloudflare and do not represent the views or positions of arch4edu.

Mirror Status API

Sync status of arch4edu repository mirrors.

Endpoint

Response

{
  "generated_at": 1780913640,
  "total": 15,
  "mirrors": [
    {
      "country": "China",
      "url": "https://mirrors.tuna.tsinghua.edu.cn/arch4edu/",
      "status": "ok",
      "timestamp": 1780862104,
      "detail": null
    }
  ]
}

Usage

curl -s https://api.arch4edu.org/status/mirrors.json | jq '.mirrors[] | select(.status=="error")'

Notes

  • status is "ok" or "error".
  • timestamp is the last successful sync (Unix epoch). null when status is error.
  • detail contains the error reason when applicable (e.g. Timeout, ConnectionError).