Internal API
Website modifications
17 endpoints.
/api/v1/internal/businesses/{business_id}/website-mod/check-gateGet Website Mod Check Gate
``{blocked, status, problems, message}``: whether the pending change's browser check holds it back (the inbox router's guard on a chat "yes").
Parameters
| Name | In | Type | Description |
|---|---|---|---|
business_idrequired | path | string (uuid) | |
x-internal-api-key | header | string | null |
Responses
200Successful Responseapplication/jsonSuccessResponse_dict_str__Any__| Field | Type | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
request_idrequired | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
success | true | default true | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
datarequired | object | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
metadata | ResponseMetadata | null | ResponseMetadata fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
meta | ResponseMeta | null | ResponseMeta fields
|
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/internal/businesses/{business_id}/website-mod/contextGet Website Mod Context
Parameters
| Name | In | Type | Description |
|---|---|---|---|
business_idrequired | path | string (uuid) | |
verify_repo | query | boolean | default false |
x-internal-api-key | header | string | null |
Responses
200Successful Responseapplication/jsonSuccessResponse_dict_str__Any__| Field | Type | Description |
|---|---|---|
request_idrequired | string | |
success | true | default true |
datarequired | object | |
metadata | ResponseMetadata | null | ResponseMetadata fieldsResponseMetadata, expanded above. |
meta | ResponseMeta | null | ResponseMeta fieldsResponseMeta, expanded above. |
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/internal/businesses/{business_id}/website-mod/pending-changesGet Pending Website Mod Changes
List console-safe pending website-mod changes for a business (no GitHub PR fields).
Parameters
| Name | In | Type | Description |
|---|---|---|---|
business_idrequired | path | string (uuid) | |
x-internal-api-key | header | string | null |
Responses
200Successful Responseapplication/jsonSuccessResponse_dict_str__Any__| Field | Type | Description |
|---|---|---|
request_idrequired | string | |
success | true | default true |
datarequired | object | |
metadata | ResponseMetadata | null | ResponseMetadata fieldsResponseMetadata, expanded above. |
meta | ResponseMeta | null | ResponseMeta fieldsResponseMeta, expanded above. |
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/internal/businesses/{business_id}/website-mod/requirements/textsPost Website Mod Requirement Texts
Return decoded requirement document text for router clarify / plan hydration.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
business_idrequired | path | string (uuid) | |
x-internal-api-key | header | string | null |
Request bodyrequired
application/jsonRequirementTextsRequest| Field | Type | Description |
|---|---|---|
file_ids | string[] | max items 10string[] fields |
Responses
200Successful Responseapplication/jsonSuccessResponse_dict_str__Any__| Field | Type | Description |
|---|---|---|
request_idrequired | string | |
success | true | default true |
datarequired | object | |
metadata | ResponseMetadata | null | ResponseMetadata fieldsResponseMetadata, expanded above. |
meta | ResponseMeta | null | ResponseMeta fieldsResponseMeta, expanded above. |
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/internal/website-mod/agent-callbackPost Website Mod Agent Callback
Store agent job outcome for SOR plan polling (Redis, keyed by plan_request_id).
Parameters
| Name | In | Type | Description |
|---|---|---|---|
x-internal-api-key | header | string | null |
Request bodyrequired
application/jsonWebsiteModAgentCallbackRequest| Field | Type | Description |
|---|---|---|
plan_request_idrequired | string | |
website_idrequired | string | string (uuid) | string | string (uuid) fieldsstringstring (uuid) |
statusrequired | string | |
summary | string | default "" |
agent_message | string | default "" |
file_updates | object[] | object[] fields |
primitives | object[] | object[] fields |
error | string | default "" |
cost_usd | number | null | |
duration_s | number | null | |
run_id | string | default "" |
smoke | object | null | |
confirmation | object | null | |
denied_commands | string[] | string[] fields |
stop_source | string | default "" |
model | string | default "" |
usage | object | null | |
browser_check | object | null | |
check_only | boolean | default false |
interrupt | object | null | |
notes_delivered | string[] | string[] fields |
fetched_urls | object[] | object[] fields |
notes_pending | string[] | string[] fields |
Responses
200Successful Responseapplication/jsonSuccessResponse_dict_str__Any__| Field | Type | Description |
|---|---|---|
request_idrequired | string | |
success | true | default true |
datarequired | object | |
metadata | ResponseMetadata | null | ResponseMetadata fieldsResponseMetadata, expanded above. |
meta | ResponseMeta | null | ResponseMeta fieldsResponseMeta, expanded above. |
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/internal/website-mod/agent-progressPost Website Mod Agent Progress
Append a sanitized progress event for the live console activity feed.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
x-internal-api-key | header | string | null |
Request bodyrequired
application/jsonWebsiteModAgentProgressRequest| Field | Type | Description |
|---|---|---|
plan_request_idrequired | string | |
website_idrequired | string | string (uuid) | string | string (uuid) fieldsstringstring (uuid) |
seqrequired | integer | |
ts | integer | null | |
kindrequired | string | |
stage | string | null | |
text | string | null | |
tool | string | null | |
label | string | null | |
block | string | null | |
status | string | null | |
partial | boolean | default false |
artifact | string | null |
Responses
200Successful Responseapplication/jsonSuccessResponse_dict_str__Any__| Field | Type | Description |
|---|---|---|
request_idrequired | string | |
success | true | default true |
datarequired | object | |
metadata | ResponseMetadata | null | ResponseMetadata fieldsResponseMetadata, expanded above. |
meta | ResponseMeta | null | ResponseMeta fieldsResponseMeta, expanded above. |
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/internal/website-mod/check-artifactsPost Website Mod Check Artifact
One browser-check screenshot from a session pod, while its run is going (or its "Check again" run is marked). The image is the raw request body.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
plan_request_idrequired | query | string | |
routerequired | query | string | |
viewportrequired | query | string | |
kind | query | string | default "fold" |
x-internal-api-key | header | string | null |
Responses
200Successful Responseapplication/jsonSuccessResponse_dict_str__Any__| Field | Type | Description |
|---|---|---|
request_idrequired | string | |
success | true | default true |
datarequired | object | |
metadata | ResponseMetadata | null | ResponseMetadata fieldsResponseMetadata, expanded above. |
meta | ResponseMeta | null | ResponseMeta fieldsResponseMeta, expanded above. |
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/internal/website-mod/deploy-reconcilePost Website Mod Deploy Reconcile
Kairos HTTP callback: poll pending website-mod deploys and self-reschedule.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
x-internal-api-key | header | string | null |
Responses
200Successful Responseapplication/jsonSuccessResponse_dict_str__Any__| Field | Type | Description |
|---|---|---|
request_idrequired | string | |
success | true | default true |
datarequired | object | |
metadata | ResponseMetadata | null | ResponseMetadata fieldsResponseMetadata, expanded above. |
meta | ResponseMeta | null | ResponseMeta fieldsResponseMeta, expanded above. |
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/internal/workflow-engine/website-mod/cancel-pendingPost Cancel Pending Website Mod
Clear Redis pending-change + release repo lock after reject/cancel.
``tombstone_run``: the engine, giving up on a plan, knows the run is over. The run's cancelled tombstone is laid FIRST — it is what stops a sor plan handler still executing past the engine's hangup from registering a change nobody can publish (it answers the cancelled terminal at its late check instead; prod KS-2485) — then the usual scoped cleanup runs.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
x-internal-api-key | header | string | null |
Request bodyrequired
application/jsonobjectResponses
200Successful Responseapplication/jsonSuccessResponse_dict_str__Any__| Field | Type | Description |
|---|---|---|
request_idrequired | string | |
success | true | default true |
datarequired | object | |
metadata | ResponseMetadata | null | ResponseMetadata fieldsResponseMetadata, expanded above. |
meta | ResponseMeta | null | ResponseMeta fieldsResponseMeta, expanded above. |
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/internal/workflow-engine/website-mod/deploy-statusPost Deploy Status
Poll GitHub Actions deploy.yml status for a pending website-mod production deploy.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
x-internal-api-key | header | string | null |
Request bodyrequired
application/jsonobjectResponses
200Successful Responseapplication/jsonSuccessResponse_dict_str__Any__| Field | Type | Description |
|---|---|---|
request_idrequired | string | |
success | true | default true |
datarequired | object | |
metadata | ResponseMetadata | null | ResponseMetadata fieldsResponseMetadata, expanded above. |
meta | ResponseMeta | null | ResponseMeta fieldsResponseMeta, expanded above. |
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/internal/workflow-engine/website-mod/gate-statusPost Website Mod Gate Status
Read-mostly gate probe (Redis + open Keystone PRs + lock) after GH reconcile.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
x-internal-api-key | header | string | null |
Request bodyrequired
application/jsonobjectResponses
200Successful Responseapplication/jsonSuccessResponse_dict_str__Any__| Field | Type | Description |
|---|---|---|
request_idrequired | string | |
success | true | default true |
datarequired | object | |
metadata | ResponseMetadata | null | ResponseMetadata fieldsResponseMetadata, expanded above. |
meta | ResponseMeta | null | ResponseMeta fieldsResponseMeta, expanded above. |
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/internal/workflow-engine/website-mod/merge-deployPost Merge Deploy
Merge an approved PR and best-effort trigger ``deploy.yml``.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
x-internal-api-key | header | string | null |
Request bodyrequired
application/jsonobjectResponses
200Successful Responseapplication/jsonSuccessResponse_dict_str__Any__| Field | Type | Description |
|---|---|---|
request_idrequired | string | |
success | true | default true |
datarequired | object | |
metadata | ResponseMetadata | null | ResponseMetadata fieldsResponseMetadata, expanded above. |
meta | ResponseMeta | null | ResponseMeta fieldsResponseMeta, expanded above. |
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/internal/workflow-engine/website-mod/plan-and-open-prPost Plan And Open Pr
Parameters
| Name | In | Type | Description |
|---|---|---|---|
x-internal-api-key | header | string | null |
Request bodyrequired
application/jsonPlanAndOpenPrRequest| Field | Type | Description |
|---|---|---|
business_idrequired | string | string (uuid) | string | string (uuid) fieldsstringstring (uuid) |
workflow_run_id | string | default "" |
thread_id | string | default "" |
extracted_data | object | null | |
force_repo_map_refresh | boolean | default false |
plan_modes | string[] | null | string[] | null fields |
Responses
200Successful Responseapplication/jsonSuccessResponse_dict_str__Any__| Field | Type | Description |
|---|---|---|
request_idrequired | string | |
success | true | default true |
datarequired | object | |
metadata | ResponseMetadata | null | ResponseMetadata fieldsResponseMetadata, expanded above. |
meta | ResponseMeta | null | ResponseMeta fieldsResponseMeta, expanded above. |
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/internal/workflow-engine/website-mod/preview-statusPost Preview Status
Poll for the Cloudflare version preview URL of a website-mod PR branch.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
x-internal-api-key | header | string | null |
Request bodyrequired
application/jsonobjectResponses
200Successful Responseapplication/jsonSuccessResponse_dict_str__Any__| Field | Type | Description |
|---|---|---|
request_idrequired | string | |
success | true | default true |
datarequired | object | |
metadata | ResponseMetadata | null | ResponseMetadata fieldsResponseMetadata, expanded above. |
meta | ResponseMeta | null | ResponseMeta fieldsResponseMeta, expanded above. |
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/internal/workflow-engine/website-mod/reconcile-pendingPost Website Mod Reconcile Pending
Align Redis + repo_locks with open Keystone website-mod PRs (GitHub = SoT).
Parameters
| Name | In | Type | Description |
|---|---|---|---|
x-internal-api-key | header | string | null |
Request bodyrequired
application/jsonobjectResponses
200Successful Responseapplication/jsonSuccessResponse_dict_str__Any__| Field | Type | Description |
|---|---|---|
request_idrequired | string | |
success | true | default true |
datarequired | object | |
metadata | ResponseMetadata | null | ResponseMetadata fieldsResponseMetadata, expanded above. |
meta | ResponseMeta | null | ResponseMeta fieldsResponseMeta, expanded above. |
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/internal/workflow-engine/website-mod/repo-lock/acquirePost Acquire Repo Lock
Parameters
| Name | In | Type | Description |
|---|---|---|---|
x-internal-api-key | header | string | null |
Request bodyrequired
application/jsonobjectResponses
200Successful Responseapplication/jsonSuccessResponse_dict_str__Any__| Field | Type | Description |
|---|---|---|
request_idrequired | string | |
success | true | default true |
datarequired | object | |
metadata | ResponseMetadata | null | ResponseMetadata fieldsResponseMetadata, expanded above. |
meta | ResponseMeta | null | ResponseMeta fieldsResponseMeta, expanded above. |
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.
/api/v1/internal/workflow-engine/website-mod/repo-lock/releasePost Release Repo Lock
Parameters
| Name | In | Type | Description |
|---|---|---|---|
x-internal-api-key | header | string | null |
Request bodyrequired
application/jsonobjectResponses
200Successful Responseapplication/jsonSuccessResponse_dict_str__Any__| Field | Type | Description |
|---|---|---|
request_idrequired | string | |
success | true | default true |
datarequired | object | |
metadata | ResponseMetadata | null | ResponseMetadata fieldsResponseMetadata, expanded above. |
meta | ResponseMeta | null | ResponseMeta fieldsResponseMeta, expanded above. |
400Bad request401Unauthorized403Forbidden404Not found422Validation error500Internal server error503Service unavailable
Error bodies: ErrorResponse. See Errors.