Akkio API

REST API for Akkio's predictive AI platform: manage datasets, train models, and generate predictions. Reconstructed from Akkio's first-party SDKs.

OpenAPI Specification

akkio-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Akkio API
  version: v1
  description: >-
    The Akkio API provides programmatic access to Akkio's no-code predictive AI
    platform: manage datasets, train models, and generate predictions. This
    specification was derived faithfully from Akkio's first-party client SDKs
    (github.com/akkio-inc/akkio-python and akkio-node), which document the real
    paths, methods, request bodies, and authentication. It is a reconstruction,
    not a provider-published OpenAPI.
  contact:
    name: Akkio Support
    email: support@akkio.com
    url: https://docs.akkio.com/akkio-help-center
  x-source: https://github.com/akkio-inc/akkio-python
  x-derived: true
servers:
  - url: https://api.akk.io/v1
    description: Akkio API v1 production
security:
  - apiKeyQuery: []
tags:
  - name: Datasets
    description: Create and populate datasets that models train on.
  - name: Models
    description: Train predictive models and generate predictions.
paths:
  /datasets:
    get:
      operationId: getDatasets
      tags: [Datasets]
      summary: List datasets
      description: Return all datasets available to the authenticated account.
      parameters:
        - name: api_key
          in: query
          required: true
          schema: { type: string }
          description: Akkio API key (obtain at https://app.akk.io/team-settings).
      responses:
        '200':
          description: A list of datasets.
          content:
            application/json:
              schema:
                type: object
                properties:
                  datasets:
                    type: array
                    items: { $ref: '#/components/schemas/Dataset' }
    post:
      operationId: postDataset
      tags: [Datasets]
      summary: Create a dataset, add rows, set fields, or parse fields
      description: >-
        Overloaded endpoint keyed by request body. With only `name`, creates a
        new dataset. With `id` + `rows`, appends rows. With `id` + `fields`,
        sets field types. With `id` + `parse_fields: true`, parses fields.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/CreateDatasetRequest'
                - $ref: '#/components/schemas/AddRowsRequest'
                - $ref: '#/components/schemas/SetFieldsRequest'
                - $ref: '#/components/schemas/ParseDatasetRequest'
      responses:
        '200':
          description: The created or updated dataset.
          content:
            application/json:
              schema: { $ref: '#/components/schemas/Dataset' }
    delete:
      operationId: deleteDataset
      tags: [Datasets]
      summary: Delete a dataset
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required: [api_key, id]
              properties:
                api_key: { type: string }
                id: { type: string, description: Dataset id to delete. }
      responses:
        '200':
          description: Deletion result.
          content:
            application/json:
              schema: { type: object }
  /models:
    get:
      operationId: getModels
      tags: [Models]
      summary: List models
      description: Return all trained models available to the authenticated account.
      parameters:
        - name: api_key
          in: query
          required: true
          schema: { type: string }
          description: Akkio API key.
      responses:
        '200':
          description: A list of models.
          content:
            application/json:
              schema:
                type: object
                properties:
                  models:
                    type: array
                    items: { $ref: '#/components/schemas/Model' }
    post:
      operationId: postModel
      tags: [Models]
      summary: Train a model or make a prediction
      description: >-
        Overloaded endpoint keyed by request body. With `dataset_id` +
        `predict_fields`, trains a new model. With `id` + `data`, runs a
        prediction against an existing model (set `explain: true` for
        feature-attribution output).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/CreateModelRequest'
                - $ref: '#/components/schemas/PredictionRequest'
      responses:
        '200':
          description: The trained model or the prediction result.
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/Model'
                  - $ref: '#/components/schemas/PredictionResult'
    delete:
      operationId: deleteModel
      tags: [Models]
      summary: Delete a model
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required: [api_key, id]
              properties:
                api_key: { type: string }
                id: { type: string, description: Model id to delete. }
      responses:
        '200':
          description: Deletion result.
          content:
            application/json:
              schema: { type: object }
components:
  securitySchemes:
    apiKeyQuery:
      type: apiKey
      in: query
      name: api_key
      description: >-
        Akkio API key. Sent as the `api_key` query parameter on GET requests
        and inside the JSON request body on POST/DELETE requests. Obtain a key
        at https://app.akk.io/team-settings.
  schemas:
    Dataset:
      type: object
      properties:
        dataset_id: { type: string }
        name: { type: string }
    Model:
      type: object
      properties:
        model_id: { type: string }
        dataset_id: { type: string }
    CreateDatasetRequest:
      type: object
      required: [api_key, name]
      properties:
        api_key: { type: string }
        name: { type: string, description: Name for the new dataset. }
    AddRowsRequest:
      type: object
      required: [api_key, id, rows]
      properties:
        api_key: { type: string }
        id: { type: string, description: Dataset id. }
        rows:
          type: array
          items: { type: object, additionalProperties: true }
    SetFieldsRequest:
      type: object
      required: [api_key, id, fields]
      properties:
        api_key: { type: string }
        id: { type: string }
        fields: { type: object, additionalProperties: true }
    ParseDatasetRequest:
      type: object
      required: [api_key, id, parse_fields]
      properties:
        api_key: { type: string }
        id: { type: string }
        parse_fields: { type: boolean, enum: [true] }
    CreateModelRequest:
      type: object
      required: [api_key, dataset_id, predict_fields]
      properties:
        api_key: { type: string }
        dataset_id: { type: string }
        predict_fields:
          type: array
          items: { type: string }
          description: Column(s) the model should learn to predict.
        ignore_fields:
          type: array
          items: { type: string }
        extra_attention: { type: boolean, default: false }
        duration:
          type: integer
          default: 10
          description: Training budget in minutes.
    PredictionRequest:
      type: object
      required: [api_key, id, data]
      properties:
        api_key: { type: string }
        id: { type: string, description: Model id to predict with. }
        data:
          type: array
          items: { type: object, additionalProperties: true }
        explain:
          type: boolean
          default: false
          description: Return per-feature attribution for each prediction.
    PredictionResult:
      type: object
      additionalProperties: true