https://api.wia-data-integration.io/v1
All API endpoints are relative to this base URL. Authentication is required for all requests.
Use Bearer token authentication with your API key:
Authorization: Bearer YOUR_API_KEY
Create a new data integration pipeline
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | Pipeline name |
| source | object | Yes | Source configuration |
| destination | object | Yes | Destination configuration |
| transformations | array | No | List of transformation rules |
| schedule | string | No | Cron expression for scheduling |
{
"name": "customer-data-sync",
"source": {
"type": "postgresql",
"host": "db.example.com",
"port": 5432,
"database": "production",
"schema": "public",
"table": "customers"
},
"destination": {
"type": "snowflake",
"account": "xyz12345",
"warehouse": "COMPUTE_WH",
"database": "ANALYTICS",
"schema": "STAGING",
"table": "customers"
},
"transformations": [
{
"type": "rename",
"from": "cust_id",
"to": "customer_id"
},
{
"type": "filter",
"condition": "status = 'active'"
}
],
"schedule": "0 */6 * * *"
}
{
"pipeline_id": "pip_a1b2c3d4e5f6",
"name": "customer-data-sync",
"status": "created",
"created_at": "2025-01-15T10:30:00Z"
}
Get pipeline details and status
{
"pipeline_id": "pip_a1b2c3d4e5f6",
"name": "customer-data-sync",
"status": "running",
"last_run": {
"started_at": "2025-01-15T12:00:00Z",
"completed_at": "2025-01-15T12:15:30Z",
"records_processed": 125000,
"status": "success"
},
"next_run": "2025-01-15T18:00:00Z"
}
Manually trigger a pipeline run
{
"run_id": "run_x9y8z7w6v5u4",
"pipeline_id": "pip_a1b2c3d4e5f6",
"status": "running",
"started_at": "2025-01-15T14:30:00Z"
}
Delete a pipeline
{
"message": "Pipeline deleted successfully",
"pipeline_id": "pip_a1b2c3d4e5f6"
}
List all available connectors
{
"connectors": [
{
"id": "postgresql",
"name": "PostgreSQL",
"type": "source",
"category": "database",
"supported_versions": ["12", "13", "14", "15"]
},
{
"id": "snowflake",
"name": "Snowflake",
"type": "destination",
"category": "warehouse"
},
{
"id": "kafka",
"name": "Apache Kafka",
"type": "both",
"category": "streaming"
}
]
}
Get run history for a pipeline
| Parameter | Type | Description |
|---|---|---|
| limit | integer | Number of runs to return (default: 20) |
| status | string | Filter by status: success, failed, running |
Get detailed logs for a specific run
{
"run_id": "run_x9y8z7w6v5u4",
"logs": [
{
"timestamp": "2025-01-15T14:30:00Z",
"level": "INFO",
"message": "Pipeline started"
},
{
"timestamp": "2025-01-15T14:30:05Z",
"level": "INFO",
"message": "Connected to source: PostgreSQL"
},
{
"timestamp": "2025-01-15T14:35:20Z",
"level": "SUCCESS",
"message": "Processed 125000 records"
}
]
}
| Code | Status | Description |
|---|---|---|
| AUTH_001 | 401 | Invalid or missing API key |
| PIPE_001 | 404 | Pipeline not found |
| PIPE_002 | 400 | Invalid pipeline configuration |
| CONN_001 | 500 | Connection to source failed |
| CONN_002 | 500 | Connection to destination failed |
| RATE_001 | 429 | Rate limit exceeded |
API requests are subject to the following rate limits:
Rate limit headers are included in every response:
X-RateLimit-Limit: 100 X-RateLimit-Remaining: 95 X-RateLimit-Reset: 1610723400