Netter integrations API

The integrations API from Netter — 19 operation(s) for integrations.

OpenAPI Specification

netter-integrations-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: DMI Backend actions integrations API
  version: 0.1.0
tags:
- name: integrations
paths:
  /api/v1/integrations/providers:
    get:
      tags:
      - integrations
      summary: List Providers
      description: List available providers. Optionally filter by provider_type.
      operationId: list_providers_api_v1_integrations_providers_get
      parameters:
      - name: provider_type
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Provider Type
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProviderRead'
                title: Response List Providers Api V1 Integrations Providers Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/integrations/:
    get:
      tags:
      - integrations
      summary: List Integrations
      description: List integrations the caller can see (owners see all).
      operationId: list_integrations_api_v1_integrations__get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/IntegrationRead'
                type: array
                title: Response List Integrations Api V1 Integrations  Get
    post:
      tags:
      - integrations
      summary: Create Integration
      description: 'Register or update an integration for the company (upsert by provider).


        Handles three paths:

        - Nango OAuth: ``nango_connection_id`` provided → mark connected.

        - Custom credentials: ``credentials`` dict provided → validate, test, encrypt.

        - Neither: mark disconnected.


        Per-resource permissions: any company member may CREATE a new

        integration (they''re auto-granted ADMIN on it); updating an existing

        (company, provider) row in place requires EDITOR on that integration.'
      operationId: create_integration_api_v1_integrations__post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IntegrationCreate'
        required: true
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/integrations/session-token:
    get:
      tags:
      - integrations
      summary: Get Nango Session Token
      description: 'Fetch a short-lived session token from Nango for the Connect UI.


        Pass ?allowed_integrations=supabase to scope the session to a single provider.

        Returns the full Nango session dict (includes ``token`` + any extra fields).


        Note: the legacy endpoint calls Nango directly without provider validation,

        so we mirror that by going via the adapter rather than the MintNangoSessionToken

        operation (which requires a validated provider slug).


        Per-resource permissions: any company member may start a connect flow —

        this runs BEFORE any integration row exists, so there is no resource to

        gate on. The creator is auto-granted ADMIN when the row is created.'
      operationId: get_nango_session_token_api_v1_integrations_session_token_get
      parameters:
      - name: allowed_integrations
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Allowed Integrations
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Get Nango Session Token Api V1 Integrations Session Token Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/integrations/{integration_id}:
    patch:
      tags:
      - integrations
      summary: Update Integration
      description: Update an integration's status or connection details.
      operationId: update_integration_api_v1_integrations__integration_id__patch
      parameters:
      - name: integration_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Integration Id
      - name: status
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Status
      - name: nango_connection_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Nango Connection Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IntegrationRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - integrations
      summary: Delete Integration
      description: Remove an integration and its Nango connection.
      operationId: delete_integration_api_v1_integrations__integration_id__delete
      parameters:
      - name: integration_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Integration Id
      responses:
        '204':
          description: Successful Response
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/integrations/providers/{slug}/crawler-schema:
    get:
      tags:
      - integrations
      summary: Get Crawler Schema
      description: 'Return the wizard schema for a provider''s crawler (public read).


        No resource permission gate — the wizard fetches this before any

        integration row exists (post-OAuth, pre-wizard-completion).'
      operationId: get_crawler_schema_api_v1_integrations_providers__slug__crawler_schema_get
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
          title: Slug
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CrawlerSchemaRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/integrations/providers/{slug}/actions:
    get:
      tags:
      - integrations
      summary: List Provider Actions
      description: Typed actions available for a provider's provider_action workflow node.
      operationId: list_provider_actions_api_v1_integrations_providers__slug__actions_get
      parameters:
      - name: slug
        in: path
        required: true
        schema:
          type: string
          title: Slug
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProviderActionRead'
                title: Response List Provider Actions Api V1 Integrations Providers  Slug  Actions Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/integrations/{integration_id}/scope-options:
    get:
      tags:
      - integrations
      summary: Get Scope Options
      description: 'Live scope discovery for a specific table.


        Fetches scope items via the table''s ``list_scope_items`` callable.

        Results are cached in-process for 60 seconds.'
      operationId: get_scope_options_api_v1_integrations__integration_id__scope_options_get
      parameters:
      - name: integration_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Integration Id
      - name: table
        in: query
        required: true
        schema:
          type: string
          title: Table
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CrawlerScopeOption'
                title: Response Get Scope Options Api V1 Integrations  Integration Id  Scope Options Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/integrations/{integration_id}/snowflake/databases:
    get:
      tags:
      - integrations
      summary: Get Snowflake Databases
      description: '``SHOW DATABASES`` against the customer''s Snowflake account.'
      operationId: get_snowflake_databases_api_v1_integrations__integration_id__snowflake_databases_get
      parameters:
      - name: integration_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Integration Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SnowflakeDiscoveryItem'
                title: Response Get Snowflake Databases Api V1 Integrations  Integration Id  Snowflake Databases Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/integrations/{integration_id}/snowflake/schemas:
    get:
      tags:
      - integrations
      summary: Get Snowflake Schemas
      description: '``SHOW SCHEMAS IN DATABASE <database>``. ``INFORMATION_SCHEMA``

        is filtered out by the underlying discovery function.'
      operationId: get_snowflake_schemas_api_v1_integrations__integration_id__snowflake_schemas_get
      parameters:
      - name: integration_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Integration Id
      - name: database
        in: query
        required: true
        schema:
          type: string
          title: Database
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SnowflakeDiscoveryItem'
                title: Response Get Snowflake Schemas Api V1 Integrations  Integration Id  Snowflake Schemas Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/integrations/{integration_id}/snowflake/tables:
    get:
      tags:
      - integrations
      summary: Get Snowflake Tables
      description: '``SHOW TABLES IN SCHEMA <database>.<schema>``.'
      operationId: get_snowflake_tables_api_v1_integrations__integration_id__snowflake_tables_get
      parameters:
      - name: integration_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Integration Id
      - name: database
        in: query
        required: true
        schema:
          type: string
          title: Database
      - name: schema
        in: query
        required: true
        schema:
          type: string
          title: Schema
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SnowflakeDiscoveryItem'
                title: Response Get Snowflake Tables Api V1 Integrations  Integration Id  Snowflake Tables Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/integrations/{integration_id}/snowflake/describe:
    get:
      tags:
      - integrations
      summary: Describe Snowflake Table
      description: '``DESCRIBE TABLE <database>.<schema>.<table>`` mapped to

        Polars-style types — used to populate ``columns`` in the wizard

        payload that gets PATCHed to ``crawler_table_configs``.'
      operationId: describe_snowflake_table_api_v1_integrations__integration_id__snowflake_describe_get
      parameters:
      - name: integration_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Integration Id
      - name: database
        in: query
        required: true
        schema:
          type: string
          title: Database
      - name: schema
        in: query
        required: true
        schema:
          type: string
          title: Schema
      - name: table
        in: query
        required: true
        schema:
          type: string
          title: Table
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SnowflakeColumnSchema'
                title: Response Describe Snowflake Table Api V1 Integrations  Integration Id  Snowflake Describe Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/integrations/{integration_id}/databricks/warehouses:
    get:
      tags:
      - integrations
      summary: Get Databricks Warehouses
      description: '``GET /api/2.0/sql/warehouses`` against the customer''s workspace.'
      operationId: get_databricks_warehouses_api_v1_integrations__integration_id__databricks_warehouses_get
      parameters:
      - name: integration_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Integration Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DatabricksWarehouseItem'
                title: Response Get Databricks Warehouses Api V1 Integrations  Integration Id  Databricks Warehouses Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/integrations/{integration_id}/databricks/catalogs:
    get:
      tags:
      - integrations
      summary: Get Databricks Catalogs
      description: '``GET /api/2.1/unity-catalog/catalogs`` — list customer catalogs

        (filtered to drop the ``system`` catalog).'
      operationId: get_databricks_catalogs_api_v1_integrations__integration_id__databricks_catalogs_get
      parameters:
      - name: integration_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Integration Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DatabricksDiscoveryItem'
                title: Response Get Databricks Catalogs Api V1 Integrations  Integration Id  Databricks Catalogs Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/integrations/{integration_id}/databricks/schemas:
    get:
      tags:
      - integrations
      summary: Get Databricks Schemas
      description: '``GET /api/2.1/unity-catalog/schemas?catalog_name=<catalog>``.

        ``information_schema`` is filtered out by the underlying discovery

        function.'
      operationId: get_databricks_schemas_api_v1_integrations__integration_id__databricks_schemas_get
      parameters:
      - name: integration_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Integration Id
      - name: catalog
        in: query
        required: true
        schema:
          type: string
          title: Catalog
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DatabricksDiscoveryItem'
                title: Response Get Databricks Schemas Api V1 Integrations  Integration Id  Databricks Schemas Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/integrations/{integration_id}/databricks/tables:
    get:
      tags:
      - integrations
      summary: Get Databricks Tables
      description: '``GET /api/2.1/unity-catalog/tables?catalog_name=<>&schema_name=<>``.'
      operationId: get_databricks_tables_api_v1_integrations__integration_id__databricks_tables_get
      parameters:
      - name: integration_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Integration Id
      - name: catalog
        in: query
        required: true
        schema:
          type: string
          title: Catalog
      - name: schema
        in: query
        required: true
        schema:
          type: string
          title: Schema
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DatabricksDiscoveryItem'
                title: Response Get Databricks Tables Api V1 Integrations  Integration Id  Databricks Tables Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/integrations/{integration_id}/databricks/describe:
    get:
      tags:
      - integrations
      summary: Describe Databricks Table
      description: '``GET /api/2.1/unity-catalog/tables/{catalog.schema.table}`` mapped to

        Polars-style types — used to populate ``columns`` in the wizard

        payload that gets PATCHed to ``crawler_table_configs``.'
      operationId: describe_databricks_table_api_v1_integrations__integration_id__databricks_describe_get
      parameters:
      - name: integration_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Integration Id
      - name: catalog
        in: query
        required: true
        schema:
          type: string
          title: Catalog
      - name: schema
        in: query
        required: true
        schema:
          type: string
          title: Schema
      - name: table
        in: query
        required: true
        schema:
          type: string
          title: Table
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DatabricksColumnSchema'
                title: Response Describe Databricks Table Api V1 Integrations  Integration Id  Databricks Describe Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/integrations/{integration_id}/crawler-config:
    get:
      tags:
      - integrations
      summary: Get Crawler Config
      description: Return the effective crawler config for an integration (for the edit modal).
      operationId: get_crawler_config_api_v1_integrations__integration_id__crawler_config_get
      parameters:
      - name: integration_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Integration Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CrawlerConfigRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    patch:
      tags:
      - integrations
      summary: Patch Crawler Config
      description: Apply a crawler config patch and signal the running workflow.
      operationId: patch_crawler_config_api_v1_integrations__integration_id__crawler_config_patch
      parameters:
      - name: integration_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Integration Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CrawlerConfigPatchBody'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CrawlerConfigPatchResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/integrations/{integration_id}/refresh-crawl:
    post:
      tags:
      - integrations
      summary: Refresh Integration Crawl
      description: 'Wake the crawler workflow''s polling loop immediately ("Refresh now").


        No-op for providers without a registered crawler module. Falls back

        to ``start_crawler`` if no workflow is currently running.'
      operationId: refresh_integration_crawl_api_v1_integrations__integration_id__refresh_crawl_post
      parameters:
      - name: integration_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Integration Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Refresh Integration Crawl Api V1 Integrations  Integration Id  Refresh Crawl Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/integrations/webhook:
    post:
      tags:
      - integrations
      summary: Nango Webhook
      description: 'Handle webhooks from Nango (connection.created / connection.updated).


        Verifies the HMAC-SHA256 signature using NANGO_SECRET_KEY before processing.'
      operationId: nango_webhook_api_v1_integrations_webhook_post
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                additionalProperties: true
                type: object
                title: Response Nango Webhook Api V1 Integrations Webhook Post
components:
  schemas:
    DatabricksWarehouseItem:
      properties:
        id:
          type: string
          title: Id
        label:
          type: string
          title: Label
        hint:
          anyOf:
          - type: string
          - type: 'null'
          title: Hint
      type: object
      required:
      - id
      - label
      title: DatabricksWarehouseItem
      description: 'One SQL warehouse from ``GET /api/2.0/sql/warehouses``.


        ``id`` is the value the wizard writes to

        ``DatabricksTableConfig.warehouse_id``. ``hint`` carries state +

        cluster size so the user can pick the right warehouse without

        leaving the wizard.'
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    ProviderActionRead:
      properties:
        key:
          type: string
          title: Key
        display_name:
          type: string
          title: Display Name
        description:
          type: string
          title: Description
        params_json_schema:
          additionalProperties: true
          type: object
          title: Params Json Schema
      type: object
      required:
      - key
      - display_name
      - description
      - params_json_schema
      title: ProviderActionRead
    CrawlerSchemaRead:
      properties:
        tables:
          items:
            $ref: '#/components/schemas/CrawlerTableSchema'
          type: array
          title: Tables
        poll_interval_options_seconds:
          items:
            type: integer
          type: array
          title: Poll Interval Options Seconds
        min_poll_interval_seconds:
          type: integer
          title: Min Poll Interval Seconds
        default_poll_interval_seconds:
          type: integer
          title: Default Poll Interval Seconds
        max_backfill_window_days:
          anyOf:
          - type: integer
          - type: 'null'
          title: Max Backfill Window Days
        default_backfill_window_days:
          anyOf:
          - type: integer
          - type: 'null'
          title: Default Backfill Window Days
      type: object
      required:
      - tables
      - poll_interval_options_seconds
      - min_poll_interval_seconds
      - default_poll_interval_seconds
      - max_backfill_window_days
      - default_backfill_window_days
      title: CrawlerSchemaRead
    CrawlerConfigPatchBody:
      properties:
        poll_interval_seconds:
          anyOf:
          - type: integer
          - type: 'null'
          title: Poll Interval Seconds
        backfill_window_days:
          anyOf:
          - type: integer
          - type: 'null'
          title: Backfill Window Days
        selected_tables:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Selected Tables
        scope_filters:
          anyOf:
          - additionalProperties:
              additionalProperties: true
              type: object
            type: object
          - type: 'null'
          title: Scope Filters
        crawler_table_configs:
          anyOf:
          - additionalProperties:
              additionalProperties: true
              type: object
            type: object
          - type: 'null'
          title: Crawler Table Configs
        purge_removed:
          type: boolean
          title: Purge Removed
          default: false
      type: object
      title: CrawlerConfigPatchBody
    DatabricksColumnSchema:
      properties:
        name:
          type: string
          title: Name
        polars_type:
          type: string
          title: Polars Type
      type: object
      required:
      - name
      - polars_type
      title: DatabricksColumnSchema
      description: 'One column from Unity Catalog mapped to a Polars-style type.


        The wizard echoes this list back in the ``crawler_table_configs``

        PATCH so the lifecycle layer can populate ``Database.schema_info``

        without a fresh round-trip.'
    CrawlerConfigPatchResponse:
      properties:
        config:
          $ref: '#/components/schemas/CrawlerConfigRead'
        pending_actions:
          items:
            type: string
          type: array
          title: Pending Actions
        warnings:
          items:
            type: string
          type: array
          title: Warnings
      type: object
      required:
      - config
      - pending_actions
      - warnings
      title: CrawlerConfigPatchResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    IntegrationCreate:
      properties:
        provider_id:
          type: string
          format: uuid
          title: Provider Id
        nango_connection_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Nango Connection Id
        credentials:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Credentials
      type: object
      required:
      - provider_id
      title: IntegrationCreate
    CrawlerScopeOption:
      properties:
        id:
          type: string
          title: Id
        label:
          type: string
          title: Label
        hint:
          anyOf:
          - type: string
          - type: 'null'
          title: Hint
      type: object
      required:
      - id
      - label
      title: CrawlerScopeOption
    SnowflakeDiscoveryItem:
      properties:
        id:
          type: string
          title: Id
        label:
          type: string
          title: Label
        hint:
          anyOf:
          - type: string
          - type: 'null'
          title: Hint
      type: object
      required:
      - id
      - label
      title: SnowflakeDiscoveryItem
      description: 'Item returned by SHOW DATABASES / SHOW SCHEMAS / SHOW TABLES.


        ``id`` is the namespaced selector the wizard later passes back —

        e.g. ``"ANALYTICS"`` for a database, ``"ANALYTICS.PUBLIC"`` for a

        schema, ``"ANALYTICS.PUBLIC.ORDERS"`` for a table. ``hint`` holds

        optional metadata (row count, comment) for UI tooltips.'
    CrawlerTableSchema:
      properties:
        name:
          type: string
          title: Name
        description:
          type: string
          title: Description
        scope_schema:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Scope Schema
        scope_key_label:
          anyOf:
          - type: string
          - type: 'null'
          title: Scope Key Label
        supports_purge:
          type: boolean
          title: Supports Purge
          default: false
      type: object
      required:
      - name
      - description
      title: CrawlerTableSchema
    ProviderRead:
    

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