# Start a migration / generation report run
POST /api/reports/start
Submits OpenAPI (and optionally a generator config) for an
end-to-end report run: spec validation, TypeScript and Python
SDK previews, a service-specific CLI, docs preview, and optional compatibility diff
against a current SDK. Returns 202 with the created run, queue
capability details, and a user-facing status message.

## Request
```bash
curl -X POST 'https://sourced.sh/api/reports/start' \
  -H 'Authorization: Bearer $SOURCED_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{}'
```
## Request body

StartReportInput:
  oneOf:
  - option 1:
    type: object
    required: openapiText
    properties:
      mode: string enum flagship | custom | openapi
      projectId: string
      projectName: string
      openapiFileName: string
      configFileName: string
      oldSdkFileName: string
        Optional filename for current SDK source text used in compatibility diff reports.
      openapiText (required): string
        OpenAPI 3.x source (yaml or json), inline.
      configText: string
        Optional generator config. If omitted, Sourced creates a starter config from the OpenAPI paths.
      oldSdkText: string
        Optional current SDK source text used to compare generated SDK surface area and migration risk.
      notes: string
  - option 2:
    type: object
    required: mode, openapiText, configText
    properties:
      mode (required): string enum stainless_compatible | stainless_migration
      projectId: string
      projectName: string
      openapiFileName: string
      configFileName: string
      oldSdkFileName: string
        Optional filename for current SDK source text used in compatibility diff reports.
      openapiText (required): string
        OpenAPI 3.x source (yaml or json), inline.
      configText (required): string
        stainless.yml input required for Stainless migration compatibility runs.
      oldSdkText: string
        Optional current SDK source text used to compare generated SDK surface area and migration risk.
      notes: string

## Responses

### 202

Report run accepted; payload contains the project, created run, queue capabilities, and user-facing message.
### 400


### 401


### 402


### 403


### 429

Hosted report rate limit exceeded. Retry after the number of seconds in the `Retry-After` header.
