Skip to main content
GET
List Bids

Authorizations

Authorization
string
header
required

OAuth 2.0 client credentials. The access token from POST /oauth/token is sent as a bearer token. Request only the scopes you need.

zivio-tenant-id
string
header
required

Your Zivio organisation identifier. The regional API endpoints serve every Zivio organisation, so each request must identify yours.

Query Parameters

page
integer
default:1

Page number for pagination

limit
integer
default:20

Number of results per page (max 100)

Required range: x <= 100
filter[<attribute>]
object

Filterable attributes:

integer (operators: eq, not_eq, in, not_in, gt, gte, lt, lte, between): hours, id, project_id, supplier_id, user_id, version datetime (operators: eq, not_eq, gt, gte, lt, lte, between): created_at, read_at, selected_at, shortlisted_at, submitted_at, updated_at money (operators: eq, not_eq, in, not_in, gt, gte, lt, lte, between): rate string (operators: eq, not_eq, in, not_in, like, not_like): proposal, rate_ccy, source, status (one of: draft = saved by supplier, not yet submitted to client; submitted = submitted to client, pending a decision; superseded = replaced by a newer version of this bid; withdrawn = withdrawn by the supplier) decimal (operators: eq, not_eq, in, not_in, gt, gte, lt, lte, between): cost_score_auto, cost_score_override, fee, quality_score, total_score boolean (operators: eq, not_eq): bafo, eliminated, hired, managed_bid, selected (one of: true = selected as a preferred supplier by the client (selected_at is set); false = not selected as a preferred supplier), shortlisted (one of: true = on the project shortlist (shortlisted_at is set); false = not shortlisted)

Note: money values are in minor currency units (e.g. pence for GBP). Use 1000000 for £10,000.00.

Note: like is a case-insensitive substring match — pass the bare term (filter[title][like]=redesign). Do not add % wildcards; they are not needed.

or[group]
object

OR condition groups. Filters within a group are ANDed; groups are ORed.

Syntax: or[group_key][<attribute>]=value or or[group_key][<attribute>][operator]=value

Examples:

  • Simple OR: or[1][state]=draft&or[2][state]=pending
  • Complex: or[1][state]=draft&or[1][budget][gte]=50000&or[2][state]=closed
  • With custom fields: or[1][cf][priority]=high&or[2][state]=pending

Group keys can be any string (1, 2, a, b, etc.) - they just need to be unique.

cf[key]
object

Custom field filters using concise syntax.

Syntax:

  • Equality: cf[key]=value
  • With operator: cf[key][operator]=value

Operators: eq (default), not_eq, in, not_in, contains, not_contains, exists, not_exists

Examples:

  • cf[priority]=high - exact match
  • cf[department][in]=eng,design - matches any
  • cf[priority][not_eq]=low - not equal
  • cf[notes][contains]=urgent - contains text
  • cf[legacy_field][exists]= - field exists (value ignored)
  • cf[deprecated][not_exists]= - field does not exist
or[group][cf][key]
object

Custom field filters within OR condition groups.

Syntax: or[group][cf][key]=value or or[group][cf][key][operator]=value

Example: or[1][cf][priority]=high&or[2][state]=pending

sort[<attribute>]
object

Sort results by attribute. Direction defaults to ascending.

Syntax: sort[<attribute>]= (ascending) or sort[<attribute>]=desc (descending)

Sortable attributes: bafo, cost_score_auto, cost_score_override, created_at, eliminated, fee, hired, hours, id, managed_bid, project_id, proposal, quality_score, rate, rate_ccy, read_at, selected, selected_at, shortlisted, shortlisted_at, source, status, submitted_at, supplier_id, total_score, updated_at, user_id, version

Examples:

  • Ascending: sort[created_at]= or sort[created_at]=asc
  • Descending: sort[created_at]=desc

Response

List of bids

bids
object[]