Feeds
Create, list, update, and delete AI job feeds programmatically.
/api/v1/feedsList all feeds on your account.
/api/v1/feedsCreate a new feed.
/api/v1/feeds/:feedIdFetch a single feed.
/api/v1/feeds/:feedIdPartially update a feed.
/api/v1/feeds/:feedIdDelete a feed and all of its matched jobs.
A feed is a saved search plus an AI scoring profile: UpHunt matches every new job against your feed's filters, scores it against your profilePrompt, and surfaces jobs at or above minScore in your dashboard and notifications.
Feeds created through the API start empty. They match jobs from creation time forward only, with no historical backfill. Feeds created in the dashboard also scan recent past jobs, but the API create intentionally skips that.
Authentication
Same x-api-key header as the other endpoints, scoped to your UpHunt account. Generate it from Dashboard → Auto-Apply → API & Webhooks.
Feed fields
These fields are writable on create (POST) and update (PATCH). On PATCH, every field is optional and only the provided fields change.
| Parameter | Type | Description |
|---|---|---|
title | stringrequired | Display name of the feed. Required on create. |
profilePrompt | stringrequired | Plain-language description of what you do and what a great job looks like for you. The AI scores every matching job against this. Required on create. |
minScore | numberrequired | Score threshold from 0 to 10. Jobs scoring at or above this show up in the feed and trigger notifications. Required on create. |
includes | string[] | Keywords a job must contain to enter the feed. Defaults to |
excludes | string[] | Keywords that exclude a job from the feed. Defaults to |
minHourlyRate | number | null | Minimum hourly rate filter. Non-negative. On PATCH, pass |
minFixedPrice | number | null | Minimum fixed-price budget filter. Non-negative. On PATCH, pass |
clientMinSpent | number | null | Minimum total amount the client has spent on the platform. Non-negative. On PATCH, pass |
countryFilterMode | string |
|
excludedCountries | string[] | Client countries to exclude (used with |
includedCountries | string[] | Client countries to allow (used with |
platforms | string[] | Non-empty array of |
proposalGenerationPrompt | string | Instructions used when generating proposals for jobs in this feed. |
notificationsMuted | boolean | When |
emailFound | string |
|
autoApply settings and proposal variants cannot be set through this API. Configure auto-apply from the dashboard or the dedicated auto-apply endpoints.
Create a feed
Returns 201:
Validation failures return 400 with the failing fields listed:
List feeds
Returns { "feeds": [ ... ] } with every feed on your account.
Get one feed
Returns { "feed": { ... } }.
Update a feed
Send only the fields you want to change. Pass null on minHourlyRate, minFixedPrice, or clientMinSpent to clear that filter.
Returns { "feed": { ... } } with the updated feed.
Delete a feed
Returns:
Deleting a feed also permanently deletes every job matched into it. This cannot be undone.
Errors
| Status | When |
|---|---|
| 400 | Body is not a JSON object, validation failed (see details), or PATCH with no updatable fields |
| 401 | x-api-key missing or invalid |
| 404 | Feed not found, or it belongs to a different account |
| 500 | Unexpected server error |
Related
- Authentication — generating your
x-api-key. - Auto-Apply — applying to jobs surfaced by your feeds.