Skip to content

Pending requests

Generated from contract version 1.0.0 — the same document /v1/api/openapi.json serves.

  • An API key in x-api-key, or a browser session cookie
  • X-Organization-Id naming the workspace to act in, unless the session already has an active one
  • The base URL for your deployment, https://server.hlix.ai by default
Method Path Operation
GET /v1/api/pending-requests List requests awaiting a decision
GET /v1/api/pending-requests/{id} Get one request
POST /v1/api/pending-requests/{id}/cancel Cancel a request nobody will decide
POST /v1/api/pending-requests/{id}/resolve Approve or deny a request
POST /v1/api/pending-requests/client-question Ask the customer a question

GET /v1/api/pending-requests · operation ID listPendingRequests

Parameters

Name In Required Type Description
status query no string pending | approved | denied | cancelled. Omitted, every status is listed.
cycleId query no string Only requests raised against this cycle.
taskId query no string Only requests raised against this task.
X-Organization-Id header no string The workspace (organization) to act in. Omitted, the session’s active organization is used.
X-Client-Portal header no string Agency organization id for one aggregate client dashboard; server derives only this caller’s workspace relationship and owned account seats. Legacy account ids remain narrowly compatible. Real verified user session required for agency context; administration denied.

Responses

Status Body Description
200 PendingRequestListItem[] The matching requests, each with the project it waits in.
400 ApiError The request named no active organization.
401 ApiError No valid session or API key.
403 ApiError Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project.
404 ApiError The resource does not exist, or the caller is a task-scoped credential and this endpoint is outside its allowlist.

GET /v1/api/pending-requests/{id} · operation ID getPendingRequest

Parameters

Name In Required Type Description
id path yes string
X-Organization-Id header no string The workspace (organization) to act in. Omitted, the session’s active organization is used.
X-Client-Portal header no string Agency organization id for one aggregate client dashboard; server derives only this caller’s workspace relationship and owned account seats. Legacy account ids remain narrowly compatible. Real verified user session required for agency context; administration denied.

Responses

Status Body Description
200 PendingRequest The request.
400 ApiError The request named no active organization.
401 ApiError No valid session or API key.
403 ApiError Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project.
404 ApiError No such request in this workspace — or the caller may not decide it, which answers the same 404 rather than confirming it exists.

POST /v1/api/pending-requests/{id}/cancel · operation ID cancelPendingRequest

Parameters

Name In Required Type Description
id path yes string
X-Organization-Id header no string The workspace (organization) to act in. Omitted, the session’s active organization is used.

Responses

Status Body Description
200 PendingRequest The cancelled request. A blocking dispatch gate is treated as a DENY, so the cycle fails and the project continues rather than waiting forever.
400 ValidationError | ApiError The request is no longer pending (it was already approved, denied or cancelled), the JSON body failed validation, or the request named no active organization.
401 ApiError No valid session or API key.
403 ApiError Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project.
404 ApiError No such request in this workspace — or the caller may not decide it, which answers the same 404 rather than confirming it exists.

POST /v1/api/pending-requests/{id}/resolve · operation ID resolvePendingRequest

Parameters

Name In Required Type Description
id path yes string
X-Organization-Id header no string The workspace (organization) to act in. Omitted, the session’s active organization is used.
X-Client-Portal header no string Agency organization id for one aggregate client dashboard; server derives only this caller’s workspace relationship and owned account seats. Legacy account ids remain narrowly compatible. Real verified user session required for agency context; administration denied.

Request body — application/json, ResolvePendingRequest (required)

Property Type Required Notes
decidedBy string no max length 200
decision string no max length 5000
feedback string no max length 5000
status approved denied yes

Responses

Status Body Description
200 PendingRequest The decided request. For a client collaborator decidedBy is SERVER-DERIVED and any value sent in the body is ignored.
400 ValidationError | ApiError The request is no longer pending (it was already approved, denied or cancelled), the JSON body failed validation, or the request named no active organization.
401 ApiError No valid session or API key.
403 ApiError Authenticated, but not a member of the named organization — or a client collaborator without the required access on this project.
404 ApiError No such request in this workspace — or the caller may not decide it, which answers the same 404 rather than confirming it exists.

POST /v1/api/pending-requests/client-question · operation ID askClientQuestion

Parameters

Name In Required Type Description
X-Organization-Id header no string The workspace (organization) to act in. Omitted, the session’s active organization is used.

Request body — application/json, AskClientQuestion (required)

Property Type Required Notes
cycleId string yes min length 1
question string yes min length 1, max length 5000
title string yes min length 1, max length 200

Responses

Status Body Description
201 PendingRequest The stored request. It is NOT blocking: nothing in the dispatch path waits on it, and requestType / requiredActor are fixed by the server.
400 ValidationError | ApiError The JSON body failed schema validation (ValidationError), or the request named no active organization (ApiError).
401 ApiError No valid session or API key.
403 ApiError The caller is a client collaborator. Asking a customer a question is agency-only — a customer that could address one to itself could manufacture the appearance of having been consulted.
404 ApiError No such cycle in this workspace.

These apply to every operation on this page.

  • 400 — the body failed schema validation, or the request named no active organization. A ValidationError body carries the failing fields; an ApiError body carries only error.
  • 401 — no valid session or API key.
  • 403 — authenticated, but not a member of the named organization, or a client collaborator without the required access.
  • 404 — no such resource in this workspace. Absent and not-visible are deliberately the same answer; do not infer cross-tenant existence from it.
  • 409 — the expected revision or state is stale, or another operation currently owns the transition.
  • 500 — the operation failed server-side. Retry only where an idempotency key makes that safe.