DataAssist-IO Import API

The import API from DataAssist-IO — 10 operation(s) for import.

Operations 13

GET /api/me Get Current User Info #
PUT /api/me Update Me #
POST /api/me/password Change My Password #
GET /api/users/paginated List Org Users Paginated #
GET /api/users List Org Users #
POST /api/users Create Org User #
PUT /api/users/{user_id} Update Org User #
GET /api/org/settings Get Org Settings #
PUT /api/org/settings Update Org Settings #
GET /api/audit/tools Audit Tools #
GET /api/audit/total Audit Total #
GET /api/audit/daily Audit Daily #
GET /api/audit/logs Audit Logs #

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/dataassist-io:dataassist-io-import-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

dataassist-io-import-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: DataAssist-IO Server Import API
  version: 0.1.0
tags:
- name: Import
paths:
  /api/me:
    get:
      tags:
      - Import
      summary: Get Current User Info
      operationId: get_current_user_info_api_me_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
    put:
      tags:
      - Import
      summary: Update Me
      operationId: update_me_api_me_put
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateMeRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/me/password:
    post:
      tags:
      - Import
      summary: Change My Password
      operationId: change_my_password_api_me_password_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChangePasswordRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/users/paginated:
    get:
      tags:
      - Import
      summary: List Org Users Paginated
      description: 'Paginated + filtered users list for the admin Users page.


        All filters AND''d together; ``search`` matches email or display_name

        (LIKE %q%). Backend is the source of truth for filter + LIMIT/OFFSET —

        the SPA passes query params and renders only the rows it receives.


        Returns `{total, page, page_size, total_pages, users: [...]}` where

        each user matches the legacy ``GET /api/users`` shape (incl. usage +

        teams) so the SPA can swap between the two cheaply.'
      operationId: list_org_users_paginated_api_users_paginated_get
      parameters:
      - name: days
        in: query
        required: false
        schema:
          type: integer
          default: 30
          title: Days
      - name: search
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Search
      - name: role
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Role
      - name: status
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Status
      - name: team_id
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
          - type: 'null'
          title: Team Id
      - name: page
        in: query
        required: false
        schema:
          type: integer
          default: 1
          title: Page
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          default: 50
          title: Page Size
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/users:
    get:
      tags:
      - Import
      summary: List Org Users
      operationId: list_org_users_api_users_get
      parameters:
      - name: days
        in: query
        required: false
        schema:
          type: integer
          default: 30
          title: Days
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      tags:
      - Import
      summary: Create Org User
      operationId: create_org_user_api_users_post
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateUserRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/users/{user_id}:
    put:
      tags:
      - Import
      summary: Update Org User
      operationId: update_org_user_api_users__user_id__put
      parameters:
      - name: user_id
        in: path
        required: true
        schema:
          type: integer
          title: User Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateUserRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/org/settings:
    get:
      tags:
      - Import
      summary: Get Org Settings
      description: 'Read-only per-org settings shown in the admin Settings page.


        OAuth client_id / client_secret / redirect_uris no longer live here — MCP

        clients (Claude / ChatGPT) register dynamically via DCR using the

        system-wide platform allowlist. See `/api/super-admin/oauth/clients/...`

        for the system-wide config (super-admin only).'
      operationId: get_org_settings_api_org_settings_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
    put:
      tags:
      - Import
      summary: Update Org Settings
      operationId: update_org_settings_api_org_settings_put
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
  /api/audit/tools:
    get:
      tags:
      - Import
      summary: Audit Tools
      description: 'Distinct MCP tool names this org has logged — drives the filter

        dropdown on the Tool Calls page. Admin-only.'
      operationId: audit_tools_api_audit_tools_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
  /api/audit/total:
    get:
      tags:
      - Import
      summary: Audit Total
      description: 'Total MCP tool calls for the org — admin-only, count-only.


        Powers the Dashboard "Tool Calls" stat card. Returns a single

        integer, no aggregation across users or tools (those views are

        intentionally MCP-side). Not gated on ``audit_detailed`` — it''s

        just a row count, no payloads.'
      operationId: audit_total_api_audit_total_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
  /api/audit/daily:
    get:
      tags:
      - Import
      summary: Audit Daily
      description: 'Daily tool-call counts for the last N days — admin-only.


        Powers the Dashboard activity graph. Returns one entry per day

        (including zeros for days with no calls) so the chart always has

        a full window.'
      operationId: audit_daily_api_audit_daily_get
      parameters:
      - name: days
        in: query
        required: false
        schema:
          type: integer
          default: 10
          title: Days
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/audit/logs:
    get:
      tags:
      - Import
      summary: Audit Logs
      description: 'Per-call audit rows for the org with filters + pagination.


        Always reachable (no ``audit_detailed`` gate on the endpoint itself).

        The ``audit_detailed`` toggle acts as a hard privacy gate on the

        payload fields: when ``FALSE``, the API masks ``request_args`` and

        ``response_data`` to ``None`` even for older rows captured while it

        was ``TRUE`` — so flipping the toggle off is a real "I don''t want

        these payloads readable" action, not just a UI hide (SOC2 posture).

        The audit_wrapper also never *writes* those fields while the toggle

        is off, so the strip here is for historical rows. Viewers are

        auto-restricted to their own ``user_id``.


        Filters (all optional, AND''d together):

        * ``user_id`` — admin-only; viewer is force-scoped to themselves.

        * ``tool_name`` — exact match.

        * ``success`` — ''true'' / ''false''.

        * ``date_from`` / ``date_to`` — inclusive day boundaries. Format

        ``YYYY-MM-DD`` (interpreted in server local time).'
      operationId: audit_logs_api_audit_logs_get
      parameters:
      - name: user_id
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
          - type: 'null'
          title: User Id
      - name: tool_name
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Tool Name
      - name: success
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Success
      - name: date_from
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Date From
      - name: date_to
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Date To
      - name: team_id
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
          - type: 'null'
          title: Team Id
      - name: page
        in: query
        required: false
        schema:
          type: integer
          default: 1
          title: Page
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          default: 50
          title: Page Size
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    UpdateMeRequest:
      properties:
        display_name:
          type: string
          title: Display Name
      type: object
      required:
      - display_name
      title: UpdateMeRequest
    UpdateUserRequest:
      properties:
        role:
          anyOf:
          - type: string
          - type: 'null'
          title: Role
        status:
          anyOf:
          - type: string
          - type: 'null'
          title: Status
        password:
          anyOf:
          - type: string
          - type: 'null'
          title: Password
        display_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Display Name
      type: object
      title: UpdateUserRequest
    CreateUserRequest:
      properties:
        email:
          type: string
          title: Email
        display_name:
          type: string
          title: Display Name
          default: ''
        role:
          type: string
          title: Role
          default: viewer
        password:
          anyOf:
          - type: string
          - type: 'null'
          title: Password
        team_ids:
          items:
            type: integer
          type: array
          title: Team Ids
          default: []
      type: object
      required:
      - email
      title: CreateUserRequest
    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
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ChangePasswordRequest:
      properties:
        current_password:
          anyOf:
          - type: string
          - type: 'null'
          title: Current Password
        new_password:
          type: string
          title: New Password
      type: object
      required:
      - new_password
      title: ChangePasswordRequest