---
title: "Advance onboarding without allowing progress to move backward"
method: PATCH
path: "/onboarding"
tags: ["Onboarding"]
---

# Advance onboarding without allowing progress to move backward

`PATCH /onboarding`

## Request

- Base URL: `https://api.flashdata.dev/v2`
- URL: `https://api.flashdata.dev/v2/onboarding`
- Auth: API key in cookie `__Host-fd_session` and API key in header `X-CSRF-Token`

## Request body

- UpdateOnboardingRequest: Server-owned resource state validates confirmation actions; clients never submit API Key or request IDs.
  - `version` integer, required
  - `action` 'select_use_case' | 'confirm_api_key_saved' | 'skip_api_key' | 'confirm_first_request' | 'skip_first_request', required
  - `useCase` 'google_search' | 'youtube_data' | 'download'

## Response `200`

Updated onboarding state

- OnboardingProgress
  - `currentStep` 'welcome' | 'api_key' | 'first_request' | 'completed', required
  - `useCase` 'google_search' | 'youtube_data' | 'download' | 'null', nullable
  - `apiKeyStepStatus` 'pending' | 'created' | 'skipped', required
  - `firstRequestStatus` 'pending' | 'succeeded' | 'skipped', required
  - `firstApiKeyId` string, nullable
  - `firstRequestId` string, nullable
  - `completedAt` string, date-time, nullable
  - `version` integer, required
  - `updatedAt` string, date-time, required

## Other responses

- `401`: Authentication required or invalid
- `403`: Authenticated but not permitted, or CSRF validation failed
- `409`: Resource state or idempotency conflict
- `422`: Request validation failed
- `500`: An unexpected internal error occurred
- `503`: A required dependency or onboarding record is temporarily unavailable

---

[API](https://skmtc.dev/flashdata/apis/flashdata-customer-api.md) · [All operations](https://skmtc.dev/flashdata/apis/flashdata-customer-api/llms.txt) · [OpenAPI document](https://skmtc.dev/flashdata/apis/flashdata-customer-api/revisions/109179fe9313?raw)
