onboarding
15 operations
GET/v1/onboarding
The onboarding wizard: steps, agent, demo, next steps.
/v1/onboardingAuthentication: Dashboard session
Response 200
| Name | Type | Description |
|---|---|---|
workspacerequired | object | |
workspace.idrequired | string | |
workspace.namerequired | string | |
workspace.client_namerequired | string | |
workspace.slugrequired | string | |
workspace.localerequired | enum | Values it | en |
workspace.execution_moderequired | enum | Values managed | runner | mcp |
workspace.agent_idrequired | enum | Values claude-code | codex | opencode | builtin | cursor | windsurf | zed | kiro | antigravity | continue | cline | copilot | other |
workspace.auth_methodrequired | enum | Values api-key | chatgpt | bedrock | vertex | subscription |
workspace.runner_transportrequired | enum | Values github_actions | container |
workspace.inbound_addressrequired | string | |
repositoryrequired | object | |
repository.idrequired | string | |
repository.full_namerequired | string | |
repository.html_urlrequired | string | |
repository.default_branchrequired | string | |
repository.is_publicrequired | boolean | |
repository.onboarding_prrequired | object | |
repository.onboarding_pr.numberrequired | integer | |
repository.onboarding_pr.urlrequired | string | |
repository.onboarding_pr.statusrequired | enum | Values none | open | merged | closed |
repository.onboarding_pr.requested_atrequired | string (date-time) | |
repository.onboarding_pr.errorrequired | string | |
repository.onboarding_pr.titlerequired | string | |
repository.agent_keyrequired | object | |
repository.agent_key.last4required | string | |
repository.agent_key.set_atrequired | string (date-time) | |
repository.runs_onrequired | array of string | |
repository.cloud_authrequired | object | |
currentrequired | enum | Values repository | channels | agent | logs | done |
stepsrequired | array of object | |
steps[].idrequired | enum | Values repository | channels | agent | logs |
steps[].statusrequired | enum | Values todo | done | skipped |
steps[].completed_atrequired | string (date-time) | |
steps[].availablerequired | boolean | |
steps[].optionalrequired | boolean | |
agentrequired | object | |
agent.answerrequired | enum | Values no_agent | api_key_only | claude_code_api | claude_code_subscription | codex | ide_agent |
agent.detailrequired | object | |
agent.detail.codex_auth | enum | Values chatgpt | api-key |
agent.detail.claude_auth | enum | Values api-key | bedrock | vertex |
agent.detail.ide_agent | enum | Values claude-code | codex | opencode | builtin | cursor | windsurf | zed | kiro | antigravity | continue | cline | copilot | other |
agent.moderequired | enum | Values managed | runner | mcp |
agent.agentrequired | enum | Values claude-code | codex | opencode | builtin | cursor | windsurf | zed | kiro | antigravity | continue | cline | copilot | other |
agent.authrequired | enum | Values api-key | chatgpt | bedrock | vertex | subscription |
agent.transportrequired | enum | Values github_actions | container |
agent.credential_pendingrequired | boolean | |
agent.confirmed_atrequired | string (date-time) | |
requirementsrequired | array of enum | |
credentialsrequired | array of object | |
credentials[].idrequired | string | |
credentials[].kindrequired | enum | Values anthropic_api_key | openai_api_key | codex_auth_json | bedrock | vertex | openrouter | github_user_token | sentry_client_secret | sentry_auth_token | datadog_keys | aws_credentials | endpoint_token | sso_client_secret |
credentials[].last4required | string | |
credentials[].workspace_idrequired | string | |
credentials[].created_atrequired | string (date-time) | |
credentials[].rotated_atrequired | string (date-time) | |
credentials[].in_userequired | boolean | |
demorequired | object | |
demo.consentrequired | enum | Values granted | refused |
demo.consent_atrequired | string (date-time) | |
demo.consent_requiredrequired | boolean | |
demo.consent_reasonrequired | enum | Values runs_elsewhere | not_chosen |
demo.usedrequired | boolean | |
demo.can_startrequired | boolean | |
demo.start_blockerrequired | string | |
demo.workspace_demorequired | object | |
demo.workspace_demo.availablerequired | boolean | |
demo.workspace_demo.blockerrequired | string | |
demo.cap_usdrequired | number | |
demo.runrequired | object | |
demo.run.idrequired | string | |
demo.run.statusrequired | enum | Values pending | indexing | choosing_case | running | completed | failed |
demo.run.moderequired | enum | Values managed | workspace |
demo.run.phaserequired | enum | Values choosing_case | reading_code | indexing | diagnosing | fixing | waiting_runner | done | failed |
demo.run.outcomerequired | enum | Values answer | pull_request | fix_ready | fix_not_verified | escalated |
demo.run.donerequired | boolean | |
demo.run.case_kindrequired | enum | Values real_error | github_issue | plausible_defect | readme_question |
demo.run.sourcerequired | object | |
demo.run.source.kindrequired | enum | Values real_error | github_issue | plausible_defect | readme_question |
demo.run.source.error_group_idrequired | string |
POST/v1/onboarding/agent
Step 3: the execution of the answer, its credentials, the updated pull request.
/v1/onboarding/agentRule 6: a forbidden combination (a Claude subscription outside MCP mode…) answers 422 `forbidden_combination` with `details.message` (it, en) and `details.suggestion`. Secrets are write-only: the API key goes to the repository’s Actions secret, auth.json is stored encrypted.
Authentication: Dashboard session
Request body
| Name | Type | Description |
|---|---|---|
moderequired | enum | Values managed | runner | mcp |
agentrequired | enum | Values claude-code | codex | opencode | builtin | cursor | windsurf | zed | kiro | antigravity | continue | cline | copilot | other |
authrequired | enum | Values api-key | chatgpt | bedrock | vertex | subscription |
transport | enum | Values github_actions | container |
agent_key | string | |
codex_auth_json | string | |
cloud_auth | object | |
runs_on | array of string | |
credential_later | boolean | |
answerrequired | enum | Values no_agent | api_key_only | claude_code_api | claude_code_subscription | codex | ide_agent |
detail | object | |
detail.codex_auth | enum | Values chatgpt | api-key |
detail.claude_auth | enum | Values api-key | bedrock | vertex |
detail.ide_agent | enum | Values claude-code | codex | opencode | builtin | cursor | windsurf | zed | kiro | antigravity | continue | cline | copilot | other |
Response 200
The same fields as GET /v1/onboarding.
POST/v1/onboarding/complete
Ends the wizard.
/v1/onboarding/completeAuthentication: Dashboard session
Response 200
The same fields as GET /v1/onboarding.
GET/v1/onboarding/demo
The live view of the demo: email, status page, diagnosis, draft, pull request.
/v1/onboarding/demoAuthentication: Dashboard session
Response 200
| Name | Type | Description |
|---|---|---|
idrequired | string | |
statusrequired | enum | Values pending | indexing | choosing_case | running | completed | failed |
moderequired | enum | Values managed | workspace |
phaserequired | enum | Values choosing_case | reading_code | indexing | diagnosing | fixing | waiting_runner | done | failed |
outcomerequired | enum | Values answer | pull_request | fix_ready | fix_not_verified | escalated |
donerequired | boolean | |
case_kindrequired | enum | Values real_error | github_issue | plausible_defect | readme_question |
sourcerequired | object | |
source.kindrequired | enum | Values real_error | github_issue | plausible_defect | readme_question |
source.error_group_idrequired | string | |
source.issue_numberrequired | integer | |
source.issue_urlrequired | string | |
source.pathrequired | string | |
source.line_startrequired | integer | |
source.line_endrequired | integer | |
source.readme_pathrequired | string | |
started_atrequired | string (date-time) | |
first_diagnosis_atrequired | string (date-time) | |
completed_atrequired | string (date-time) | |
cost_usdrequired | number | |
cap_usdrequired | number | |
errorrequired | object | |
error.coderequired | enum | Values budget_exhausted | repository_unavailable | no_case | job_failed | timed_out | internal |
error.detailrequired | string | |
retryrequired | object | |
retry.allowedrequired | boolean | |
retry.reasonrequired | string | |
attemptsrequired | integer | |
repositoryrequired | object | |
repository.full_namerequired | string | |
repository.html_urlrequired | string | |
emailrequired | object | |
email.from_namerequired | string | |
email.from_addressrequired | string | |
email.subjectrequired | string | |
email.bodyrequired | string | |
email.received_atrequired | string (date-time) | |
ticketrequired | object | |
ticket.idrequired | string | |
ticket.staterequired | enum | Values received | triage | needs_info | draft_ready | answered | fixing | awaiting_approval | releasing | customer_notified | closed | escalated |
ticket.public_staterequired | enum | Values in_analysis | needs_reply | answered | fix_in_progress | releasing | resolved | team_review |
status_page_urlrequired | string | |
indexedrequired | boolean | |
diagnosisrequired | object | |
diagnosis.categoryrequired | enum | Values usage | config | docs | bug | feature_request | unknown |
diagnosis.confidencerequired | number | |
diagnosis.root_cause_mdrequired | string | |
diagnosis.referencesrequired | array of object | |
diagnosis.references[].pathrequired | string | |
diagnosis.references[].line_startrequired | integer | |
diagnosis.references[].line_endrequired | integer | |
diagnosis.references[].symbolrequired | string | |
diagnosis.references[].urlrequired | string | |
diagnosis.public_summaryrequired | string | |
diagnosis.created_atrequired | string (date-time) | |
draftrequired | object | |
draft.kindrequired | enum | Values reply | needs_info | interim | release_notice | proactive_notice |
draft.body_mdrequired | string | |
draft.created_atrequired | string (date-time) | |
fixrequired | object | |
fix.statusrequired | enum | Values running | verified | not_verified |
fix.verify_passedrequired | boolean | |
fix.tests_passedrequired | boolean | |
fix.tests_ranrequired | boolean | |
fix.reasonrequired | enum | Values verification_failed | tests_failed | tests_not_run_without_reason | other |
pull_requestrequired | object | |
pull_request.numberrequired | integer | |
pull_request.urlrequired | string | |
pull_request.titlerequired | string | |
pull_request.branchrequired | string | |
pull_request.draftrequired | boolean | |
pull_request.labeledrequired | boolean | |
ticket_closedrequired | boolean |
POST/v1/onboarding/demo
Starts the demo ticket (once per organization, at Loopback’s expense, cost cap).
/v1/onboarding/demoAuthentication: Dashboard session
Response 202
The same fields as GET /v1/onboarding.
POST/v1/onboarding/demo/consent
Consent to clone the repository in the Managed sandbox for the demo; granted starts it.
/v1/onboarding/demo/consentAuthentication: Dashboard session
Request body
| Name | Type | Description |
|---|---|---|
consentrequired | enum | Values granted | refused |
Response 200
The same fields as GET /v1/onboarding.
POST/v1/onboarding/demo/retry
Runs a demo that stopped without a diagnosis again, within its cost cap.
/v1/onboarding/demo/retryAuthentication: Dashboard session
Response 202
The same fields as GET /v1/onboarding/demo.
POST/v1/onboarding/demo/workspace
Without the consent: a test ticket through the workspace’s own runner or agent.
/v1/onboarding/demo/workspaceAuthentication: Dashboard session
Response 202
The same fields as GET /v1/onboarding.
GET/v1/onboarding/execution/{workspaceId}
Execution settings of a workspace with the files the onboarding pull request writes.
/v1/onboarding/execution/{workspaceId}Authentication: Dashboard session
Parameters
| Name | Type | Description |
|---|---|---|
workspaceIdpathrequired | string |
Response 200
| Name | Type | Description |
|---|---|---|
workspace_idrequired | string | |
moderequired | enum | Values managed | runner | mcp |
agentrequired | enum | Values claude-code | codex | opencode | builtin | cursor | windsurf | zed | kiro | antigravity | continue | cline | copilot | other |
authrequired | enum | Values api-key | chatgpt | bedrock | vertex | subscription |
transportrequired | enum | Values github_actions | container |
allowed_modesrequired | array of enum | |
managed_availablerequired | boolean | |
requirementsrequired | array of enum | |
credentialsrequired | array of object | |
credentials[].idrequired | string | |
credentials[].kindrequired | enum | Values anthropic_api_key | openai_api_key | codex_auth_json | bedrock | vertex | openrouter | github_user_token | sentry_client_secret | sentry_auth_token | datadog_keys | aws_credentials | endpoint_token | sso_client_secret |
credentials[].last4required | string | |
credentials[].workspace_idrequired | string | |
credentials[].created_atrequired | string (date-time) | |
credentials[].rotated_atrequired | string (date-time) | |
credentials[].in_userequired | boolean | |
repositoriesrequired | array of object | |
repositories[].idrequired | string | |
repositories[].full_namerequired | string | |
repositories[].html_urlrequired | string | |
repositories[].default_branchrequired | string | |
repositories[].is_publicrequired | boolean | |
repositories[].onboarding_prrequired | object | |
repositories[].onboarding_pr.numberrequired | integer | |
repositories[].onboarding_pr.urlrequired | string | |
repositories[].onboarding_pr.statusrequired | enum | Values none | open | merged | closed |
repositories[].onboarding_pr.requested_atrequired | string (date-time) | |
repositories[].onboarding_pr.errorrequired | string | |
repositories[].onboarding_pr.titlerequired | string | |
repositories[].agent_keyrequired | object | |
repositories[].agent_key.last4required | string | |
repositories[].agent_key.set_atrequired | string (date-time) | |
repositories[].runs_onrequired | array of string | |
repositories[].cloud_authrequired | object | |
runs_onrequired | array of string | |
cloud_authrequired | object | |
previewrequired | object | |
preview.filesrequired | array of object | |
preview.files[].pathrequired | string | |
preview.files[].contentrequired | string | |
preview.includes_workflowrequired | boolean | |
preview.needs_agent_keyrequired | boolean | |
preview.missing_variablesrequired | array of string | |
preview.repository_idrequired | string |
PUT/v1/onboarding/execution/{workspaceId}
Changes mode, agent, authentication and credentials of a workspace (rule 6).
/v1/onboarding/execution/{workspaceId}Authentication: Dashboard session
Parameters
| Name | Type | Description |
|---|---|---|
workspaceIdpathrequired | string |
Request body
| Name | Type | Description |
|---|---|---|
moderequired | enum | Values managed | runner | mcp |
agentrequired | enum | Values claude-code | codex | opencode | builtin | cursor | windsurf | zed | kiro | antigravity | continue | cline | copilot | other |
authrequired | enum | Values api-key | chatgpt | bedrock | vertex | subscription |
transport | enum | Values github_actions | container |
agent_key | string | |
codex_auth_json | string | |
cloud_auth | object | |
runs_on | array of string | |
credential_later | boolean |
Response 200
The same fields as GET /v1/onboarding/execution/{workspaceId}.
DELETE/v1/onboarding/execution/{workspaceId}/credentials/{credentialId}
Deletes a stored agent credential that no workspace uses (audited).
/v1/onboarding/execution/{workspaceId}/credentials/{credentialId}Authentication: Dashboard session
Parameters
| Name | Type | Description |
|---|---|---|
workspaceIdpathrequired | string | |
credentialIdpathrequired | string |
Response 200
The same fields as GET /v1/onboarding/execution/{workspaceId}.
GET/v1/onboarding/metrics
Staff: signup → first diagnosis shown, demos by case, demo costs.
/v1/onboarding/metricsAuthentication: Dashboard session
Parameters
| Name | Type | Description |
|---|---|---|
fromquery | string (date-time) | string (date) | |
toquery | string (date-time) | string (date) |
Response 200
| Name | Type | Description |
|---|---|---|
fromrequired | string (date-time) | |
torequired | string (date-time) | |
signupsrequired | integer | |
demos_startedrequired | integer | |
demos_completedrequired | integer | |
demos_failedrequired | integer | |
time_to_first_diagnosisrequired | object | |
time_to_first_diagnosis.countrequired | integer | |
time_to_first_diagnosis.median_srequired | number | |
time_to_first_diagnosis.p90_srequired | number | |
time_to_first_diagnosis.under_target_ratiorequired | number | |
target_srequired | integer | |
by_caserequired | array of object | |
by_case[].kindrequired | enum | Values real_error | github_issue | plausible_defect | readme_question |
by_case[].countrequired | integer | |
costrequired | object | |
cost.total_usdrequired | number | |
cost.average_usdrequired | number | |
recentrequired | array of object | |
recent[].org_idrequired | string | |
recent[].statusrequired | enum | Values pending | indexing | choosing_case | running | completed | failed |
recent[].case_kindrequired | enum | Values real_error | github_issue | plausible_defect | readme_question |
recent[].cost_usdrequired | number | |
recent[].signup_atrequired | string (date-time) | |
recent[].first_diagnosis_atrequired | string (date-time) | |
recent[].seconds_to_first_diagnosisrequired | number |
POST/v1/onboarding/repository
Step 1: the connected repository; opens the onboarding pull request.
/v1/onboarding/repositoryAuthentication: Dashboard session
Request body
| Name | Type | Description |
|---|---|---|
repository_idrequired | string |
Response 200
The same fields as GET /v1/onboarding.
POST/v1/onboarding/steps/{step}
Completes, skips (logs) or reopens a step.
/v1/onboarding/steps/{step}Authentication: Dashboard session
Parameters
| Name | Type | Description |
|---|---|---|
steppathrequired | enum | Values repository | channels | agent | logs |
Request body
| Name | Type | Description |
|---|---|---|
actionrequired | enum | Values complete | skip | reopen |
Response 200
The same fields as GET /v1/onboarding.
POST/v1/onboarding/workspace
The workspace the wizard sets up (created with POST /v1/workspaces).
/v1/onboarding/workspaceAuthentication: Dashboard session
Request body
| Name | Type | Description |
|---|---|---|
workspace_idrequired | string |
Response 200
The same fields as GET /v1/onboarding.