Dataset Management API

Base URL

All URLs referenced in the documentation have the following base:

https://api.meetandrock.com/v1/dev

Dataset Management

Core endpoints for managing datasets

List Datasets

Retrieve all datasets with optional filtering

curl -X GET "https://api.meetandrock.com/v1/dev/datasets?page=1&limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response:
{
  "data": [
    {
      "id": "uuid",
      "name": "string",
      "description": "string",
      "project_id": "uuid",
      "createdAt": "datetime",
      "updatedAt": "datetime"
    }
  ],
  "pagination": {
    "total": 100,
    "page": 1,
    "limit": 10
  }
}

Create Dataset

Create a new dataset

curl -X POST "https://api.meetandrock.com/v1/dev/datasets" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Customer Survey Results",
    "description": "Dataset containing customer survey responses"
  }'

Get Dataset Details

Retrieve details of a specific dataset

curl -X GET "https://api.meetandrock.com/v1/dev/datasets/:datasetId" \
  -H "Authorization: Bearer YOUR_API_KEY"

Update Dataset

Update an existing dataset

curl -X PUT "https://api.meetandrock.com/v1/dev/datasets/:datasetId" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Updated Survey Results",
    "description": "Updated description"
  }'

Delete Dataset

Delete a dataset and all associated data

curl -X DELETE "https://api.meetandrock.com/v1/dev/datasets/:datasetId" \
  -H "Authorization: Bearer YOUR_API_KEY"

Column Management

Endpoints for managing dataset columns and their properties

List Columns

Get all columns for a dataset

curl -X GET "https://api.meetandrock.com/v1/dev/datasets/:datasetId/columns" \
  -H "Authorization: Bearer YOUR_API_KEY"

Add Column

Add a new column to the dataset

curl -X POST "https://api.meetandrock.com/v1/dev/datasets/:datasetId/columns" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "email",
    "type": "string",
    "is_required": true,
    "is_unique": true,
    "validation_rules": {
      "pattern": "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$"
    }
  }'

Update Column

Update column properties

curl -X PUT "https://api.meetandrock.com/v1/dev/datasets/:datasetId/columns/:columnId" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "updated_email",
    "is_required": false
  }'

Delete Column

Remove a column from the dataset

curl -X DELETE "https://api.meetandrock.com/v1/dev/datasets/:datasetId/columns/:columnId" \
  -H "Authorization: Bearer YOUR_API_KEY"

Row Management

Endpoints for managing dataset rows

List Rows

Get rows with pagination and filtering

curl -X GET "https://api.meetandrock.com/v1/dev/datasets/:datasetId/rows?page=1&limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response:
{
  "data": [
    {
      "id": "uuid",
      "values": {
        "email": "user@example.com",
        "name": "John Doe",
        ...
      },
      "created_at": "datetime",
      "updated_at": "datetime"
    }
  ],
  "pagination": {
    "total": 100,
    "page": 1,
    "limit": 10
  }
}

Add Row

Add a new row of data

curl -X POST "https://api.meetandrock.com/v1/dev/datasets/:datasetId/rows" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "values": {
      "email": "user@example.com",
      "name": "John Doe",
      "age": 30
    }
  }'

Update Row

Update row values

curl -X PUT "https://api.meetandrock.com/v1/dev/datasets/:datasetId/rows/:rowId" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "values": {
      "email": "updated@example.com"
    }
  }'

Delete Row

Remove a row from the dataset

curl -X DELETE "https://api.meetandrock.com/v1/dev/datasets/:datasetId/rows/:rowId" \
  -H "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