Netter steps API

The steps API from Netter — 16 operation(s) for steps.

Operations 22

GET /api/v1/steps/ List Steps #
POST /api/v1/steps/ Create Step #
GET /api/v1/steps/{step_id} Get Step #
PATCH /api/v1/steps/{step_id} Update Step #
DELETE /api/v1/steps/{step_id} Delete Step #
GET /api/v1/steps/{step_id}/code Get Step Code #
PUT /api/v1/steps/{step_id}/code Update Step Code #
POST /api/v1/steps/{step_id}/suppress Suppress Step #
PUT /api/v1/steps/project/{project_id}/batch Batch Replace Steps #
POST /api/v1/steps/project/{project_id}/validate Validate Project Dag #
GET /api/v1/steps/{step_id}/swap-candidates Get Swap Candidates #
POST /api/v1/steps/{step_id}/swap-input Post Swap Input #
POST /api/v1/steps/{step_id}/trigger Create Trigger #
PATCH /api/v1/steps/{step_id}/trigger Update Trigger #
DELETE /api/v1/steps/{step_id}/trigger Delete Trigger #
POST /api/v1/steps/project/{project_id}/run Trigger Run #
GET /api/v1/steps/project/{project_id}/runs List Runs #
GET /api/v1/steps/run/{run_id} Get Run #
POST /api/v1/steps/run/{run_id}/cancel Cancel Run #
POST /api/v1/steps/{step_id}/auto-fix Auto Fix Step #
GET /api/v1/projects/{project_id}/changes List Changes #
POST /api/v1/projects/{project_id}/changes/goto Goto Change #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/netter-steps-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API 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 Specification

netter-steps-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: DMI Backend actions Steps API
  version: 0.1.0
servers:
- url: https://api.netter.ai
  description: Base URL declared by the provider in apis.yml (roadmap#122).
tags:
- name: steps
paths:
  /api/v1/steps/:
    get:
      tags:
      - steps
      summary: List Steps
      description: List steps, optionally filtered by project.
      operationId: list_steps_api_v1_steps__get
      parameters:
      - name: project_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Project Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/StepRead'
                title: Response List Steps Api V1 Steps  Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      tags:
      - steps
      summary: Create Step
      operationId: create_step_api_v1_steps__post
      parameters:
      - name: project_id
        in: query
        required: true
        schema:
          type: string
          format: uuid
          title: Project Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StepCreate'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StepRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/steps/{step_id}:
    get:
      tags:
      - steps
      summary: Get Step
      operationId: get_step_api_v1_steps__step_id__get
      parameters:
      - name: step_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Step Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StepRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    patch:
      tags:
      - steps
      summary: Update Step
      operationId: update_step_api_v1_steps__step_id__patch
      parameters:
      - name: step_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Step Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StepUpdate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StepRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - steps
      summary: Delete Step
      operationId: delete_step_api_v1_steps__step_id__delete
      parameters:
      - name: step_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Step Id
      responses:
        '204':
          description: Successful Response
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/steps/{step_id}/code:
    get:
      tags:
      - steps
      summary: Get Step Code
      description: Serve step code from S3.
      operationId: get_step_code_api_v1_steps__step_id__code_get
      parameters:
      - name: step_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Step Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Get Step Code Api V1 Steps  Step Id  Code Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    put:
      tags:
      - steps
      summary: Update Step Code
      description: Verbatim-save a custom_code step's Python source to S3.
      operationId: update_step_code_api_v1_steps__step_id__code_put
      parameters:
      - name: step_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Step Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StepCodeUpdate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Update Step Code Api V1 Steps  Step Id  Code Put
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/steps/{step_id}/suppress:
    post:
      tags:
      - steps
      summary: Suppress Step
      description: Soft-delete a step. Deactivates its trigger if any.
      operationId: suppress_step_api_v1_steps__step_id__suppress_post
      parameters:
      - name: step_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Step Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StepRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/steps/project/{project_id}/batch:
    put:
      tags:
      - steps
      summary: Batch Replace Steps
      description: Replace all steps in a project (deploy-time).
      operationId: batch_replace_steps_api_v1_steps_project__project_id__batch_put
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Project Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StepBatchReplace'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/StepRead'
                title: Response Batch Replace Steps Api V1 Steps Project  Project Id  Batch Put
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/steps/project/{project_id}/validate:
    post:
      tags:
      - steps
      summary: Validate Project Dag
      description: Validate the current step DAG for a project.
      operationId: validate_project_dag_api_v1_steps_project__project_id__validate_post
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Project Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Validate Project Dag Api V1 Steps Project  Project Id  Validate Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/steps/{step_id}/swap-candidates:
    get:
      tags:
      - steps
      summary: Get Swap Candidates
      operationId: get_swap_candidates_api_v1_steps__step_id__swap_candidates_get
      parameters:
      - name: step_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Step Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SwapCandidateList'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/steps/{step_id}/swap-input:
    post:
      tags:
      - steps
      summary: Post Swap Input
      operationId: post_swap_input_api_v1_steps__step_id__swap_input_post
      parameters:
      - name: step_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Step Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SwapInputRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SwapInputResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/steps/{step_id}/trigger:
    post:
      tags:
      - steps
      summary: Create Trigger
      operationId: create_trigger_api_v1_steps__step_id__trigger_post
      parameters:
      - name: step_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Step Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TriggerCreate'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TriggerRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    patch:
      tags:
      - steps
      summary: Update Trigger
      operationId: update_trigger_api_v1_steps__step_id__trigger_patch
      parameters:
      - name: step_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Step Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TriggerUpdate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TriggerRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - steps
      summary: Delete Trigger
      operationId: delete_trigger_api_v1_steps__step_id__trigger_delete
      parameters:
      - name: step_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Step Id
      responses:
        '204':
          description: Successful Response
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/steps/project/{project_id}/run:
    post:
      tags:
      - steps
      summary: Trigger Run
      description: "Trigger a new run for a project.\n\n- root_step_id=None → run all active steps (Run All).\n- root_step_id=<id> → refresh that output: runs its ancestor closure back to roots.\n  The target must be a ``database`` step."
      operationId: trigger_run_api_v1_steps_project__project_id__run_post
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Project Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RunCreate'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/app__steps__schemas__RunRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/steps/project/{project_id}/runs:
    get:
      tags:
      - steps
      summary: List Runs
      description: List recent runs for a project.
      operationId: list_runs_api_v1_steps_project__project_id__runs_get
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Project Id
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          default: 20
          title: Limit
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/app__steps__schemas__RunRead'
                title: Response List Runs Api V1 Steps Project  Project Id  Runs Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/steps/run/{run_id}:
    get:
      tags:
      - steps
      summary: Get Run
      description: 'Get run details including step runs.


        ``auth`` is declared to enforce authentication via FastAPI''s dependency

        system; the project-perm check is resolved against the run''s own company

        so multi-company users polling a run (e.g. dashboard InputForm) are not

        404''d when their selected ``X-Company-ID`` differs from ``run.company_id``.'
      operationId: get_run_api_v1_steps_run__run_id__get
      parameters:
      - name: run_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Run Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/app__steps__schemas__RunRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/steps/run/{run_id}/cancel:
    post:
      tags:
      - steps
      summary: Cancel Run
      description: Cancel a running DAG execution.
      operationId: cancel_run_api_v1_steps_run__run_id__cancel_post
      parameters:
      - name: run_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Run Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Cancel Run Api V1 Steps Run  Run Id  Cancel Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/steps/{step_id}/auto-fix:
    post:
      tags:
      - steps
      summary: Auto Fix Step
      description: 'Dispatch an auto-fix job for a failed step.


        Finds the most recent failed StepRun and sends error context to the agent

        for automatic code repair.'
      operationId: auto_fix_step_api_v1_steps__step_id__auto_fix_post
      parameters:
      - name: step_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Step Id
      responses:
        '202':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/projects/{project_id}/changes:
    get:
      tags:
      - steps
      summary: List Changes
      operationId: list_changes_api_v1_projects__project_id__changes_get
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Project Id
      - name: since
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Since
      - name: until
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Until
      - name: actor_type
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Actor Type
      - name: action
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Action
      - name: include_orphans
        in: query
        required: false
        schema:
          type: boolean
          default: false
          title: Include Orphans
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 500
          default: 200
          title: Limit
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChangesListResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/projects/{project_id}/changes/goto:
    post:
      tags:
      - steps
      summary: Goto Change
      description: 'Move the project''s timeline head to ``body.event_id``.


        Browser-style: replays events forward or applies inverses backward

        until the live DAG matches the state at the target event. No new

        events are emitted. Subsequent edits truncate any ''future'' events

        relative to the new head. ``event_id=None`` rewinds to the initial

        state (pre-log).'
      operationId: goto_change_api_v1_projects__project_id__changes_goto_post
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Project Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GotoRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  anyOf:
                  - type: string
                  - type: 'null'
                title: Response Goto Change Api V1 Projects  Project Id  Changes Goto Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    StepType:
      type: string
      enum:
      - source
      - data_read
      - process
      - data_sink
      - database
      - dashboard
      title: StepType
      description: The role a step plays in the project DAG.
    SinkTarget:
      type: string
      enum:
      - database
      title: SinkTarget
      description: Where a data_sink step writes its output.
    SwapCurrentSource:
      properties:
        id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Id
        name:
          type: string
          title: Name
        type:
          type: string
          enum:
          - database
          - user_file
          title: Type
        columns:
          items:
            $ref: '#/components/schemas/SwapColumn'
          type: array
          title: Columns
      type: object
      required:
      - id
      - name
      - type
      - columns
      title: SwapCurrentSource
    Severity:
      type: string
      enum:
      - compatible
      - partial
      - risky
      - no_match
      title: Severity
    TriggerRead:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        step_id:
          type: string
          format: uuid
          title: Step Id
        trigger_type:
          $ref: '#/components/schemas/TriggerType'
        trigger_config:
          additionalProperties: true
          type: object
          title: Trigger Config
        is_active:
          type: boolean
          title: Is Active
        last_triggered_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Last Triggered At
        created_at:
          type: string
          format: date-time
          title: Created At
      type: object
      required:
      - id
      - step_id
      - trigger_type
      - trigger_config
      - is_active
      - last_triggered_at
      - created_at
      title: TriggerRead
      description: Trigger response.
    SwapRetyped:
      properties:
        name:
          type: string
          title: Name
        current_type:
          type: string
          title: Current Type
        candidate_type:
          type: string
          title: Candidate Type
      type: object
      required:
      - name
      - current_type
      - candidate_type
      title: SwapRetyped
    StepRunRead:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        run_id:
          type: string
          format: uuid
          title: Run Id
        step_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Step Id
        status:
          type: string
          title: Status
        error:
          anyOf:
          - type: string
          - type: 'null'
          title: Error
        logs:
          anyOf:
          - type: string
          - type: 'null'
          title: Logs
        started_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Started At
        finished_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Finished At
        rows_processed:
          anyOf:
          - type: integer
          - type: 'null'
          title: Rows Processed
        output_row_count:
          anyOf:
          - type: integer
          - type: 'null'
          title: Output Row Count
        rows_new:
          anyOf:
          - type: integer
          - type: 'null'
          title: Rows New
        rows_changed:
          anyOf:
          - type: integer
          - type: 'null'
          title: Rows Changed
        rows_removed:
          anyOf:
          - type: integer
          - type: 'null'
          title: Rows Removed
        ai_rows_cached:
          anyOf:
          - type: integer
          - type: 'null'
          title: Ai Rows Cached
        ai_rows_processed:
          anyOf:
          - type: integer
          - type: 'null'
          title: Ai Rows Processed
      type: object
      required:
      - id
      - run_id
      - step_id
      - status
      - error
      - logs
      - started_at
      - finished_at
      title: StepRunRead
      description: StepRun response.
    RunCreate:
      properties:
        root_step_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Root Step Id
        force_full:
          type: boolean
          title: Force Full
          default: false
      type: object
      title: RunCreate
      description: 'Trigger a new run.


        ``root_step_id`` is the target output (a database step).

        Null ``root_step_id`` means Run All — run every active step in the project.


        ``force_full`` bypasses the AI Lambda''s content-addressed cache / the

        custom Lambda''s api_action ledger for this run only — used for manual

        replays after schema changes or bug fixes. Cascade-created runs leave

        this False (see spec §7d — force_full does not propagate through

        cascade).'
    CodeType:
      type: string
      enum:
      - python
      - sql
      title: CodeType
      description: Runtime language for the step code.
    TriggerCreate:
      properties:
        trigger_type:
          $ref: '#/components/schemas/TriggerType'
        trigger_config:
          additionalProperties: true
          type: object
          title: Trigger Config
          default: {}
      type: object
      required:
      - trigger_type
      title: TriggerCreate
      description: Attach a trigger to a root step.
    StepBatchReplace:
      properties:
        steps:
          items:
            $ref: '#/components/schemas/StepBatchItem'
          type: array
          title: Steps
      type: object
      required:
      - steps
      title: StepBatchReplace
      description: Replace all steps in a project (used at deploy time).
    SwapColumn:
      properties:
        name:
          type: string
          title: Name
        type:
          type: string
          title: Type
          default: ''
      type: object
      required:
      - name
      title: SwapColumn
    ChangesListResponse:
      properties:
        events:
          items:
            $ref: '#/components/schemas/DAGChangeEventRead'
          type: array
          title: Events
        head_event_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Head Event Id
      type: object
      required:
      - events
      title: ChangesListResponse
    StepUpdate:
      properties:
        slug:
          anyOf:
          - type: string
          - type: 'null'
          title: Slug
        title:
          anyOf:
          - type: string
          - type: 'null'
          title: Title
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
        step_type:
          anyOf:
          - $ref: '#/components/schemas/StepType'
          - type: 'null'
        code_type:
          anyOf:
          - $ref: '#/components/schemas/CodeType'
          - type: 'null'
        sink_target:
          anyOf:
          - $ref: '#/components/schemas/SinkTarget'
          - type: 'null'
        provider_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Provider Id
        parent_step_ids:
          anyOf:
          - items:
              type: string
              format: uuid
            type: array
          - type: 'null'
          title: Parent Step Ids
        in_format:
          anyOf:
          - type: string
          - type: 'null'
          title: In Format
        out_format:
          anyOf:
          - type: string
          - type: 'null'
          title: Out Format
        status:
          anyOf:
          - type: string
          - type: 'null'
          title: Status
        input_schema:
          anyOf:
          - items:
              additionalProperties: true
              type: object
            type: array
          - type: 'null'
          title: Input Schema
        operator_type:
          anyOf:
          - type: string
          - type: 'null'
          title: Operator Type
        operator_config:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Operator Config
      type: object
      title: StepUpdate
      description: Patch a step (all fields optional).
    SwapCandidate:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        name:
          type: string
          title: Name
        type:
          type: string
          enum:
          - database
          - user_file
          title: Type
        owner_project_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Owner Project Id
        owner_project_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Owner Project Name
        is_shared:
          type: boolean
          title: Is Shared
        similarity_score:
          type: number
          title: Similarity Score
        severity:
          $ref: '#/components/schemas/Severity'
        diff:
          $ref: '#/components/schemas/SwapColumnDiff'
      type: object
      required:
      - id
      - name
      - type
      - owner_project_id
      - owner_project_name
      - is_shared
      - similarity_score
      - severity
      - diff
      title: SwapCandidate
    GotoRequest:
      properties:
        event_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Event Id
      type: object
      title: GotoRequest
      description: 'Body for ``POST /{project_id}/changes/goto`` — browser-style timeline navigation.


        ``event_id=None`` rewinds to the initial state (before any recorded events).'
    SwapCandidateList:
      properties:
        current_source:
          $ref: '#/components/schemas/SwapCurrentSource'
        candidates:
          items:
            $ref: '#/components/schemas/SwapCandidate'
          type: array
          title: Candidates
      type: object
      required:
      - current_source
      - candidates
      title: SwapCandidateList
    DAGChangeEventRead:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        project_id:
          type: string
          format: uuid
          title: Project Id
        occurred_at:
          type: string
          format: date-time
          title: Occurred At
        actor_type:
          type: string
          title: Actor Type
        actor_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Actor Id
        action:
          type: string
          title: Action
        target_type:
          type: string
          title: Target Type
        target_id:
          type: string
          format: uuid
          title: Target Id
        target_slug:
          anyOf:
          - type: string
          - type: 'null'


# --- truncated at 32 KB (44 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/netter/refs/heads/main/openapi/netter-steps-api-openapi.yml