Hugging Face
Inference Endpoints state changes + Spaces builds.

Hugging Face has account-level webhooks (`huggingface.co/settings/webhooks`) plus per-Inference-Endpoint webhooks. The account-level config covers repo updates, discussions, and Spaces builds. The per-endpoint config covers Inference Endpoint state transitions (`initializing`, `running`, `paused`, `failed`).
Chirp's @huggingface schema renders both kinds. For Inference Endpoints, the card mirrors the endpoint's lifecycle (paused while idle, working when handling load, red on failure). For repo events, Chirp surfaces them as one-shot notifications rather than persistent activities.
Prerequisites
- A Hugging Face account.
- (For endpoint webhooks) An Inference Endpoint configured.
- A Chirp inspector / webhook URL.
Setup
- 1
Account-level webhook for repo + Spaces events
huggingface.co/settings/webhooks → "Add a new webhook". Target URL is your Chirp inspector. Select repos/Spaces from the picker - leave empty to subscribe to everything you own.
shell# Target URL: https://api.chirpapp.dev/v1/webhooks/huggingface?key=YOUR_KEY # Events to enable: # • repo.update - model/dataset push events # • discussion.create - new community discussions # • discussion.comment - replies on your discussions - 2
Per-endpoint webhook for Inference Endpoint state
Inference Endpoints have their own webhook config under each endpoint's settings (UI: Endpoints → your endpoint → Webhooks). Target URL is the same Chirp inspector. Subscribe to state-change events.
shell# Endpoints → your-endpoint → Settings → Webhooks → Target URL: https://api.chirpapp.dev/v1/webhooks/huggingface?key=YOUR_KEY - 3
Pick the right schema variant
Chirp's @huggingface schema auto-detects the event type from the payload. Repo events → one-shot notification (no activity). Endpoint events → persistent activity that updates as the endpoint transitions states. You don't need to pick a sub-schema; the normalizer handles dispatch.
What you’ll see
Endpoint events: card header is HF yellow logo + "HF · RUNNING" (or PAUSED/FAILED) + endpoint name. Action line shows the model and accelerator (e.g. "meta-llama/Llama-3-8B · A10G"). State transitions update the card in place. Repo events: one-shot push notification with the repo path and the discussion title or commit SHA - no persistent card.
Troubleshooting
- Webhook saved but I'm not getting cards on commits.
- HF's account webhooks have a per-event delay of up to ~30s. If you push and check immediately, you might miss it. Also confirm you ticked the right repos in the picker - by default new webhooks subscribe to nothing.
- Endpoint card never closes when the endpoint goes to PAUSED.
- PAUSED is a stable state, not a terminal state - the card stays in PAUSED until the endpoint resumes (going to RUNNING) or fails (going to FAILED). If you want PAUSED to close the card, configure your inspector to treat paused as terminal in the dashboard's per-event settings.
- I want webhooks for fine-tuning jobs.
- HF's AutoTrain and fine-tuning APIs don't yet expose webhooks. For those, use the @track decorator pattern with the HF Python SDK - same shape as the @together walkthrough.