Skip to content

Queue a rule's recent matches

View as Markdown
POST
/v1/projects/{projectId}/judging-rules/{ruleId}/queue-recent
curl --request POST \
--url https://example.com/v1/projects/example/judging-rules/example/queue-recent \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "last": 1, "since": "2026-04-15T12:00:00Z" }'

Catch a rule up on runs that ended before it was there: among the project’s recent runs — last of them (newest first) and/or those completed at or after since — queue the ones it matches, sampled as the rule samples, deduped per (rule, run) as run-end matching is. maxOpen isn’t applied. The answer splits the matches into queued (newly added), alreadyQueued (this rule already had them) and alreadyReviewed (their run was already judged or dismissed, so they’re left as they are); an erased run is no longer a match. At least one of last, since is given. Needs write on the project.

projectId
required
string

ProjectId — opaque branded string.

ruleId
required
string
Media typeapplication/json

Which recent runs to catch the rule up on. Give last, since, or both.

object
>= 1 properties
last

This many of the project’s most recent top-level runs (newest first).

integer
>= 1 <= 1000
since

Runs completed at or after this time.

string format: date-time
Examplegenerated
{
"last": 1,
"since": "2026-04-15T12:00:00Z"
}

The matches, split into queued, already queued and already reviewed.

Media typeapplication/json
object
queued
required

Matching recent runs this call newly queued for the rule: a new queue item, or the rule added to one already waiting for another rule.

integer
alreadyQueued
required

Matching recent runs this rule had already queued and that are still open (deduped per (rule, run)).

integer
alreadyReviewed
required

Matching recent runs whose run was already judged or dismissed: left as they are, not re-queued. An already-erased run is no longer a match and is counted nowhere, so queued, alreadyQueued and alreadyReviewed together are the matches.

integer
Examplegenerated
{
"queued": 1,
"alreadyQueued": 1,
"alreadyReviewed": 1
}

Malformed request body.

Media typeapplication/json
object
error
required
object
code
required

Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).

string
message
required
string
details

Optional, kind-specific.

object
key
additional properties
any
requestId
required

Server-assigned request id; also echoed via X-Request-Id header.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {},
"requestId": "example"
}
}

Missing / malformed / expired / revoked bearer token.

Media typeapplication/json
object
error
required
object
code
required

Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).

string
message
required
string
details

Optional, kind-specific.

object
key
additional properties
any
requestId
required

Server-assigned request id; also echoed via X-Request-Id header.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {},
"requestId": "example"
}
}

No such rule (judging-rule-not-found).

Media typeapplication/json
object
error
required
object
code
required

Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).

string
message
required
string
details

Optional, kind-specific.

object
key
additional properties
any
requestId
required

Server-assigned request id; also echoed via X-Request-Id header.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {},
"requestId": "example"
}
}

Idempotency-Key was reused with a different body, or resource-state conflict.

Media typeapplication/json
object
error
required
object
code
required

Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).

string
message
required
string
details

Optional, kind-specific.

object
key
additional properties
any
requestId
required

Server-assigned request id; also echoed via X-Request-Id header.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {},
"requestId": "example"
}
}

The request body is over the API’s limit (request-too-large; details.maxBytes says how much).

Media typeapplication/json
object
error
required
object
code
required

Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).

string
message
required
string
details

Optional, kind-specific.

object
key
additional properties
any
requestId
required

Server-assigned request id; also echoed via X-Request-Id header.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {},
"requestId": "example"
}
}

Server error (unmapped domain code or framework crash).

Media typeapplication/json
object
error
required
object
code
required

Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).

string
message
required
string
details

Optional, kind-specific.

object
key
additional properties
any
requestId
required

Server-assigned request id; also echoed via X-Request-Id header.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {},
"requestId": "example"
}
}

See also