Dataset Management API

Base URL

All dataset endpoints are prefixed with:

/dev/datasets

Note: All endpoints require authentication via Bearer token in the Authorization header.

Dataset Management

Core endpoints for managing datasets

List Datasets

Retrieve all datasets with optional filtering

GET /dev/datasets?page=1&limit=10
Authorization: Bearer YOUR_API_KEY

Create Dataset

Create a new dataset

Required Fields:

  • name (string)

Optional Fields:

  • description (string)
POST /dev/datasets
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{
  "name": "Customer Survey Results",
  "description": "Dataset containing customer survey responses"
}

Get Dataset

Retrieve details of a specific dataset

GET /dev/datasets/:datasetId
Authorization: Bearer YOUR_API_KEY

Update Dataset

Update an existing dataset

PUT /dev/datasets/:datasetId
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{
  "name": "Updated Survey Results",
  "description": "Updated description"
}

Delete Dataset

Delete a dataset and all associated data

DELETE /dev/datasets/:datasetId
Authorization: Bearer YOUR_API_KEY

Column Management

Endpoints for managing dataset columns and their properties

List Columns

Get all columns for a dataset

GET /dev/datasets/:datasetId/columns
Authorization: Bearer YOUR_API_KEY

Create Column

Add a new column to the dataset

Required Fields:

  • name (string)
  • type (enum: 'id', 'string', 'text', 'number', 'boolean', 'date', 'datetime', 'json', 'array')

Optional Fields:

  • is_required (boolean)
  • is_unique (boolean)
  • default_value (any)
  • validation_rules (object)
POST /dev/datasets/:datasetId/columns
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{
  "name": "email",
  "type": "string",
  "is_required": true,
  "is_unique": true,
  "default_value": null,
  "validation_rules": {
    "pattern": "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$"
  }
}

Update Column

Update column properties

PUT /dev/datasets/:datasetId/columns/:columnId
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{
  "name": "updated_email",
  "is_required": false,
  "is_unique": false
}

Delete Column

Remove a column from the dataset

DELETE /dev/datasets/:datasetId/columns/:columnId
Authorization: Bearer YOUR_API_KEY

Row Management

Endpoints for managing dataset rows

List Rows

Get rows with pagination and filtering

GET /dev/datasets/:datasetId/rows?page=1&limit=10
Authorization: Bearer YOUR_API_KEY

Create Row

Add a new row of data

Required Fields:

  • values (object) - Key-value pairs matching dataset columns
POST /dev/datasets/:datasetId/rows
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{
  "values": {
    "email": "user@example.com",
    "name": "John Doe",
    "age": 30
  }
}

Update Row

Update row values

PUT /dev/datasets/:datasetId/rows/:rowId
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{
  "values": {
    "email": "updated@example.com",
    "name": "John Updated"
  }
}

Delete Row

Remove a row from the dataset

DELETE /dev/datasets/:datasetId/rows/:rowId
Authorization: Bearer YOUR_API_KEY

Query Parameters

Available query parameters for filtering and pagination:

# Filtering
where=field::operator::value    # Filter by field value
where=name::like::john         # Search by name
where=age::gt::25             # Age greater than 25

# Pagination
page=1                        # Page number
limit=10                      # Records per page

# Sorting
sort=field:direction          # Sort by field
sort=created_at:desc         # Sort by creation date descending

# Including Relations
include=relation1,relation2    # Include related data

Error Responses

400 Bad Request
{
  "message": "Invalid request parameters"
}

401 Unauthorized
{
  "message": "Invalid or missing API key"
}

404 Not Found
{
  "message": "Dataset not found"
}

422 Unprocessable Entity
{
  "message": "Validation failed",
  "errors": {
    "email": "Must be a valid email address"
  }
}

Contents