API Endpoints

Complete reference for all Placino REST API endpoints.

Projects

Create Project

POST

/api/v1/projects

{ "name": "Retail Demo", "description": "Cross-brand analysis" }

List Projects

GET

/api/v1/projects?page=1&limit=25

Get Project

GET

/api/v1/projects/PROJECT_ID

Datasets

Create Dataset

POST

/api/v1/projects/PROJECT_ID/datasets

{ "name": "customers", "description": "Customer master" }

List Datasets

GET

/api/v1/projects/PROJECT_ID/datasets

Delete Dataset

DELETE

/api/v1/projects/PROJECT_ID/datasets/DATASET_ID

Data Ingestion

Ingest CSV

POST

/api/v1/projects/PROJECT_ID/ingest/csv

Multipart form: file, dataset_name, encoding (utf8)

Ingest Parquet

POST

/api/v1/projects/PROJECT_ID/ingest/parquet

Source: s3://, gcs://, or local file://

Configure Kafka Source

POST

/api/v1/projects/PROJECT_ID/sources/kafka

broker, topics, schema_registry_url, format (avro/json)

Ingestion Jobs

GET

/api/v1/projects/PROJECT_ID/ingest/jobs

Queries

Template Query

POST

/api/v1/projects/PROJECT_ID/query/template

{ "template": "intersection_size", "dataset_left": "customers", "dataset_right": "leads" }

SQL Query

POST

/api/v1/projects/PROJECT_ID/query/sql

{ "sql": "SELECT COUNT(*) FROM customers WHERE age_group = '25-34'", "privacy_epsilon": 1.0 }

Natural Language Query

POST

/api/v1/projects/PROJECT_ID/query/nl

{ "question": "How many 25-34 year olds?", "language": "en" }

Get Query Status

GET

/api/v1/projects/PROJECT_ID/query/QUERY_ID

Audit & Permissions

Get Audit Trail

GET

/api/v1/projects/PROJECT_ID/audit?start=2025-04-01&end=2025-04-30

Grant Column Permission

POST

/api/v1/permissions

{ "user_id": "user@example.com", "column": "email", "expires": "2025-12-31" }

List Permissions

GET

/api/v1/permissions?user_id=user@example.com

Error Codes

INVALID_EPSILON: Requested epsilon exceeds user budget or violates constraints.

K_ANONYMITY_VIOLATED: Result has cells smaller than k threshold.

COLUMN_FORBIDDEN: User lacks permission for requested column.

DATASET_NOT_FOUND: Requested dataset does not exist in project.

INGESTION_FAILED: Data format error or schema mismatch.