UpHunt API
Endpoints

Submit a Proposal

Queue a proposal for any Upwork job.

POST
/api/auto-apply-v2/apply

Queue a proposal submission for an Upwork job. One credit is deducted on success — failed applications are free.

You can apply using a full Upwork URL, a job ciphertext (starts with ~), or a processed job UUID. Pass the same ciphertext you receive from a webhook payload directly.

Request body

ParameterTypeDescription
jobIdstringrequired

Upwork job identifier. Accepts: ciphertext (~01abc123), full URL (https://www.upwork.com/jobs/~01...), or a processed job UUID.

coverLetterstringrequired

The proposal text to submit with the application. Use the generate-proposal endpoint to create one with AI.

profileIdstring

Upwork profile to apply with. Get available profiles from the freelancers endpoint. Uses the primary profile if omitted.

autoFillOtherQuestionsboolean

Use AI to answer additional screening questions on the application form. Defaults to false.

proposalobject

Optional object to configure bid amount, timeline, and boost. Defaults are inferred from the job posting. See below.

proposal object

ParameterTypeDescription
proposal.hourlyRatenumber

Your hourly rate bid in USD. Only applies to hourly jobs. Example: 65.

proposal.fixedBidnumber

Your fixed-price bid in USD. Only applies to fixed-price jobs. Example: 1000.

proposal.timelinestring

Estimated project duration. Must be one of the enum values below.

proposal.boostBidsnumber

Number of additional Connects to boost your proposal's visibility. Example: 10.

proposal.timeline values

"Less than 1 month""1 to 3 months""3 to 6 months""More than 6 months"

Examples

curl -X POST https://uphunt.io/api/auto-apply-v2/apply -H "Content-Type: application/json" -H "x-api-key: YOUR_API_KEY" -d '{"jobId":"~01abc123def456","coverLetter":"Hi, I have 5+ years of experience with...","profileId":"profile_abc","proposal":{"hourlyRate":65,"timeline":"1 to 3 months","boostBids":5},"autoFillOtherQuestions":true}'

Response

200 OK
{
  "success": true,
  "queueId": "queue_abc123",
  "creditsRemaining": 41,
  "message": "Job queued for auto-apply. Credits will be deducted upon successful application."
}

Default bids

Fixed-price jobs: If proposal.fixedBid is omitted, the bid defaults to the client's posted budget. If no budget is posted, it falls back to $100.

Hourly jobs: If proposal.hourlyRate is omitted, the rate defaults to the low end of the job's hourly range. If no range is posted, it falls back to $30/hr.

Next

On this page