UpHunt API

Changelog

API versions, breaking changes, and new features.

We version the UpHunt API under /api/auto-apply-v2/ and document every user-visible change here. Breaking changes are announced 60 days in advance via email to every account with an active API key.

2025-11 — Documentation rewrite

  • Full docs moved to Fumadocs with sidebar, search, and syntax highlighting.
  • Added Rate Limits, SDKs, and Recipes.
  • Machine-readable openapi.json kept in sync with the docs.

2025-09 — v2 endpoint generally available

  • New POST /api/auto-apply-v2/apply accepts job URL, ciphertext, or processed UUID as jobId. No more feed setup required.
  • New POST /api/auto-apply-v2/generate-proposal — AI-written cover letters on demand.
  • applicationOptions renamed to proposal for clarity.
  • Legacy POST /api/auto-apply/external remains supported.

2025-07 — Webhook delivery improvements

  • Added X-UpHunt-Delivery header with a unique ID per attempt (useful for idempotency).
  • Retries now use exponential backoff (30s, 2m, 10m) instead of a flat 5-minute delay.
  • Duplicate events for the same (jobId, jobListenerId) suppressed for 24 hours.

2025-05 — Status endpoint polish

  • New terminal states: not_enough_connects, logged_out.
  • errorMessage now includes a human-readable explanation for every failure.
  • appliedAt and processedAt reported as Unix milliseconds consistently.

2025-01 — Agency profiles

  • New GET /api/auto-apply/external/freelancers endpoint lists agency-linked freelancers and their specialized profiles.
  • /apply now accepts a profileId to route proposals to a specific freelancer / specialization.

Upgrading from legacy

See the Legacy Endpoint → Migrating to v2 table for field-by-field mappings.

On this page