FlashData Onboarding API
The Onboarding API from FlashData — 1 operation(s) for onboarding.
The Onboarding API from FlashData — 1 operation(s) for onboarding.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/flashdata-dev:flashdata-dev-onboarding-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: FlashData Customer Onboarding API
version: 0.2.0-draft
summary: FlashData control-plane API contract
description: Google search, YouTube data and media downloads, with endpoints for jobs, accounts, API keys and billing. See /docs for request examples and setup guides.
contact:
name: FlashData Engineering
servers:
- url: https://api.flashdata.dev/v2
description: Management API
tags:
- name: Onboarding
paths:
/onboarding:
get:
operationId: getOnboardingProgress
tags:
- Onboarding
summary: Read resumable onboarding progress
security:
- cookieSession: []
responses:
'200':
description: Current onboarding state
headers:
Cache-Control:
$ref: '#/components/headers/CacheControlNoStore'
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/OnboardingProgress'
'401':
$ref: '#/components/responses/NoStoreUnauthorized'
'500':
$ref: '#/components/responses/NoStoreInternalError'
'503':
$ref: '#/components/responses/NoStoreServiceUnavailable'
patch:
operationId: updateOnboardingProgress
tags:
- Onboarding
summary: Advance onboarding without allowing progress to move backward
security:
- cookieSession: []
csrfToken: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateOnboardingRequest'
responses:
'200':
description: Updated onboarding state
headers:
Cache-Control:
$ref: '#/components/headers/CacheControlNoStore'
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/OnboardingProgress'
'401':
$ref: '#/components/responses/NoStoreUnauthorized'
'403':
$ref: '#/components/responses/NoStoreForbidden'
'409':
$ref: '#/components/responses/NoStoreConflict'
'422':
$ref: '#/components/responses/NoStoreValidationError'
'500':
$ref: '#/components/responses/NoStoreInternalError'
'503':
$ref: '#/components/responses/NoStoreServiceUnavailable'
components:
responses:
NoStoreValidationError:
description: Request validation failed
headers:
Cache-Control:
$ref: '#/components/headers/CacheControlNoStore'
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
NoStoreConflict:
description: Resource state or idempotency conflict
headers:
Cache-Control:
$ref: '#/components/headers/CacheControlNoStore'
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
NoStoreInternalError:
description: An unexpected internal error occurred
headers:
Cache-Control:
$ref: '#/components/headers/CacheControlNoStore'
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
NoStoreForbidden:
description: Authenticated but not permitted, or CSRF validation failed
headers:
Cache-Control:
$ref: '#/components/headers/CacheControlNoStore'
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
NoStoreServiceUnavailable:
description: A required dependency or onboarding record is temporarily unavailable
headers:
Cache-Control:
$ref: '#/components/headers/CacheControlNoStore'
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
NoStoreUnauthorized:
description: Authentication required or invalid
headers:
Cache-Control:
$ref: '#/components/headers/CacheControlNoStore'
X-Request-Id:
$ref: '#/components/headers/RequestId'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
headers:
RequestId:
description: Stable request correlation ID
schema:
type: string
pattern: ^req_
CacheControlNoStore:
description: Prevents storage of sensitive or state-changing responses by browsers and intermediaries
schema:
type: string
const: no-store
schemas:
FieldError:
type: object
additionalProperties: false
required:
- field
- code
- message
properties:
field:
type: string
code:
type: string
message:
type: string
OnboardingProgress:
type: object
additionalProperties: false
required:
- currentStep
- apiKeyStepStatus
- firstRequestStatus
- version
- updatedAt
properties:
currentStep:
type: string
enum:
- welcome
- api_key
- first_request
- completed
useCase:
type:
- string
- 'null'
enum:
- google_search
- youtube_data
- download
- null
apiKeyStepStatus:
type: string
enum:
- pending
- created
- skipped
firstRequestStatus:
type: string
enum:
- pending
- succeeded
- skipped
firstApiKeyId:
type:
- string
- 'null'
pattern: ^key_
firstRequestId:
type:
- string
- 'null'
pattern: ^req_
completedAt:
type:
- string
- 'null'
format: date-time
version:
type: integer
minimum: 0
updatedAt:
type: string
format: date-time
Problem:
type: object
additionalProperties: false
required:
- type
- title
- status
- code
- requestId
properties:
type:
type: string
format: uri-reference
title:
type: string
status:
type: integer
minimum: 400
maximum: 599
code:
type: string
pattern: ^[a-z0-9_]+$
detail:
type: string
requestId:
type: string
pattern: ^req_
fieldErrors:
type: array
items:
$ref: '#/components/schemas/FieldError'
UpdateOnboardingRequest:
type: object
additionalProperties: false
required:
- version
- action
properties:
version:
type: integer
minimum: 0
maximum: 9007199254740991
action:
type: string
enum:
- select_use_case
- confirm_api_key_saved
- skip_api_key
- confirm_first_request
- skip_first_request
useCase:
type: string
enum:
- google_search
- youtube_data
- download
allOf:
- if:
properties:
action:
const: select_use_case
then:
required:
- useCase
properties:
useCase: {}
else:
not:
required:
- useCase
properties:
useCase: {}
description: Server-owned resource state validates confirmation actions; clients never submit API Key or request IDs.
securitySchemes:
dataApiKey:
type: apiKey
in: header
name: X-API-Key
description: FlashData API key. Job access is restricted to the key's source scopes.
agentRegistrationProof:
type: http
scheme: bearer
description: Persist a cryptographically random 32-byte base64url proof and exact request BEFORE sending; recover only with the same proof and body. Not an OAuth token.
cookieSession:
type: apiKey
in: cookie
name: __Host-fd_session
description: Opaque Web session. The browser cannot read this cookie.
agentSetupCredential:
type: http
scheme: bearer
description: Temporary setup credential for status and claim creation only. Not a data API key.
csrfToken:
type: apiKey
in: header
name: X-CSRF-Token
agentIdentityKey:
type: http
scheme: bearer
description: Ordinary FlashData API key in Authorization Bearer, only on agent identity. Data queries use X-API-Key instead.
agentHandoffProof:
type: http
scheme: bearer
description: Proof used to recover the owner key and acknowledge installation. Never sent to a data query.