Skip to main content

GigRadar Public API key: Error 128: "Rate element not found" — Bid Payload Type Mismatch

Written by Vadym O

If your API call returns error code 128 with the message "Rate element not found," your bid payload is using the wrong budget type for the job. This is almost always caused by submitting an hourly bid on a fixed-price job.

Symptoms

  • API responds with errorCode: 128

  • Error message: "Rate element not found"

  • Bid submission fails

Cause

Upwork jobs are either Fixed Price or Hourly Rate. The bid.type in your payload must match the job's budget type exactly. Sending "type": "hourly" for a fixed-price job triggers this error.

Solution

Step 1: Check the job's budget type

Before submitting a bid, verify the job's budget type. You can do this:

Via webhook event

Listen to the GIGRADAR.OPPORTUNITY.CREATE event and check:

json

"event.data.job.budget.type": 1   // Fixed Price "event.data.job.budget.type": 2   // Hourly Rate

Step 2: Match your bid payload to the job type

❌ Wrong — Hourly payload on a Fixed Price job:

json

{   
"coverLetter": "...",
"bid": {
"type": "hourly",
"amount": 75 },
"scheduledAt": "2026-05-21T03:13:30.000Z"
}

✅ Correct — Fixed Price payload:

json

{   
"coverLetter": "...",
"bid": {
"type": "fixed",
"amount": 1500
},
"scheduledAt": "{{scheduledAt}}"
}

Quick Reference

event.data.job.budget.type

Job Type

Required bid.type

1

Fixed Price

"fixed"

2

Hourly Rate

"hourly"

Prevention

Always read the job's budget type from the webhook payload before constructing your bid. Dynamically set bid.type based on event.data.job.budget.type rather than hardcoding it.

Still getting the error?

Double-check that the amount field is also appropriate for the bid type — fixed bids should reflect the total project price, not an hourly rate.

If the issue persists, contact GigRadar support with the opportunityId and the full payload you're sending.

Did this answer your question?