Netter integrations API

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

Operations 22

GET /api/v1/integrations/providers List Providers #
GET /api/v1/integrations/ List Integrations #
POST /api/v1/integrations/ Create Integration #
GET /api/v1/integrations/session-token Get Nango Session Token #
PATCH /api/v1/integrations/{integration_id} Update Integration #
DELETE /api/v1/integrations/{integration_id} Delete Integration #
GET /api/v1/integrations/providers/{slug}/crawler-schema Get Crawler Schema #
GET /api/v1/integrations/providers/{slug}/actions List Provider Actions #
GET /api/v1/integrations/{integration_id}/scope-options Get Scope Options #
GET /api/v1/integrations/{integration_id}/snowflake/databases Get Snowflake Databases #
GET /api/v1/integrations/{integration_id}/snowflake/schemas Get Snowflake Schemas #
GET /api/v1/integrations/{integration_id}/snowflake/tables Get Snowflake Tables #
GET /api/v1/integrations/{integration_id}/snowflake/describe Describe Snowflake Table #
GET /api/v1/integrations/{integration_id}/databricks/warehouses Get Databricks Warehouses #
GET /api/v1/integrations/{integration_id}/databricks/catalogs Get Databricks Catalogs #
GET /api/v1/integrations/{integration_id}/databricks/schemas Get Databricks Schemas #
GET /api/v1/integrations/{integration_id}/databricks/tables Get Databricks Tables #
GET /api/v1/integrations/{integration_id}/databricks/describe Describe Databricks Table #
GET /api/v1/integrations/{integration_id}/crawler-config Get Crawler Config #
PATCH /api/v1/integrations/{integration_id}/crawler-config Patch Crawler Config #
POST /api/v1/integrations/{integration_id}/refresh-crawl Refresh Integration Crawl #
POST /api/v1/integrations/webhook Nango Webhook #

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-integrations-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-integrations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: DMI Backend actions Integrations 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: 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:
    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
    CrawlerConfigRead:
      properties:
        poll_interval_seconds:
          type: integer
          title: Poll Interval Seconds
        poll_interval_source:
          type: string
          title: Poll Interval Source
        backfill_window_days:
          anyOf:
          - type: integer
          - type: 'null'
          title: Backfill Window Days
        backfill_window_days_source:
          type: string
          title: Backfill Window Days Source
        selected_tables:
          items:
            type: string
          type: array
          title: Selected Tables
        scope_filters:
          additionalProperties:
            additionalProperties: true
            type: object
          type: object
          title: Scope Filters
        crawler_table_configs:
          anyOf:
          - additionalProperties:
              additionalProperties: true
              type: object
            type: object
          - type: 'null'
          title: Crawler Table Configs
        config_revision:
          type: integer
          title: Config Revision
        crawler_config_updated_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Crawler Config Updated At
      type: object
      required:
      - poll_interval_seconds
      - poll_interval_source
      - backfill_window_days
      - backfill_window_days_source
      - selected_tables
      - scope_filters
      - config_revision
      - crawler_config_updated_at
      title: CrawlerConfigRead
    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
    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
    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.'
    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
    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
    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.'
    IntegrationRead:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        company_id:
          type: string
          format: uuid
          title: Company Id
        user_id:
          type: string
          format: uuid
          title: User Id
        provider_id:
          type: string
          format: uuid
          title: Provider Id
        nango_connection_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Nango Connection Id
        status:
          type: string
          title: Status
        has_credentials:
          type: boolean
          title: Has Credentials
          default: false
        connected_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Connected At
        created_at:
          type: string
          format: date-time
          title: Created At
      type: object
      required:
      - id
      - company_id
      - user_id
      - provider_id
      - nango_connection_id
      - status
      - connected_at
      - created_at
      title: IntegrationRead
    CrawlerSchemaRead:
      properties:
        tables:
          items:
            $ref: '#/components/schemas/CrawlerTableSchema'
          type: array
          title: Tables
        poll_in

# --- 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