Skip to content

WebRobot ETL API (1.0.0)

API for managing projects, jobs, datasets, and ETL pipelines on WebRobot.

Authentication

The API uses API Keys for authentication. Include the X-API-Key header in all requests.

Base URL

  • Production: https://api.webrobot.eu/api
  • Development: http://localhost:8020/api

Rate Limiting

Requests are limited to 1000 requests per minute per API key.

Download OpenAPI description
Overview
WebRobot Support
License
Languages
Servers
Mock server
http://docs.webrobot.eu/_mock/openapi/
Production
https://api.webrobot.eu/api/
Local development
http://localhost:8020/api/

Cloud

Operations

Scheduler

Operations

Spark

Operations

Health

Operations

Training

Operations

EAN Plugin

Operations

Jobs

Operations

Execute a Spark job immediately

Request

Executes a Spark job immediately, allocating resources in the Kubernetes cluster.

The job is executed with the configurations specified in the job itself or through optional parameters in the request.

Important notes:

  • The job must be associated with an agent with valid PySpark code
  • Cloud credentials are injected automatically if configured
  • The webhook is called automatically at start (RUNNING) and at the end (COMPLETED/FAILED)

Rate limiting: Max 10 concurrent executions per project

Security
ApiKeyAuth
Path
projectIdstringrequired

Project ID

Example: 98
jobIdstringrequired

Job ID to execute

Example: 210
Bodyapplication/json

Optional parameters for job execution.

If not provided, the job's default values are used.

cloudCredentialIdsArray of strings

List of cloud credential IDs to use

argumentsArray of strings

Additional arguments to pass to the Spark job

curl -i -X POST \
  http://docs.webrobot.eu/_mock/openapi/webrobot/api/projects/id/98/jobs/210/execute \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE' \
  -d '{}'

Responses

Job executed successfully

Bodyapplication/json
executionIdstring

Spark execution ID

Example: "spark-2d53940045a6-95379617"
statusstring

Execution status

Example: "SUBMITTED"
messagestring

Descriptive message

Example: "Job execution submitted successfully"
clusterIdstring

Cluster ID used

Example: "default-cluster"
successboolean

Indicates whether the submission succeeded

Example: true
Response
application/json
{ "executionId": "spark-2d53940045a6-95379617", "status": "SUBMITTED", "message": "Job execution submitted successfully", "clusterId": "default-cluster", "success": true }

Get logs of a job execution

Request

Returns execution logs for a specific Spark job, with support for filtering by pod type (driver/executor) and limiting the number of lines.

Security
ApiKeyAuth
Path
projectIdstringrequired

Project ID

Example: 98
jobIdstringrequired

Job ID

Example: 210
executionIdstringrequired

Spark execution ID

Example: spark-2d53940045a6-95379617
Query
podTypestring

Pod type to fetch logs from (driver, executor; if omitted, returns all)

Enum"driver""executor"
Example: podType=driver
tailinteger(int32)

Number of trailing lines to return (optional)

Example: tail=100
curl -i -X GET \
  'http://docs.webrobot.eu/_mock/openapi/webrobot/api/projects/id/98/jobs/210/executions/spark-2d53940045a6-95379617/logs?podType=driver&tail=100' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

Execution logs

Bodyapplication/json
logsArray of strings
Response
application/json
{ "logs": [ "string" ] }

Get status of a job execution

Request

Returns the detailed status of a Spark job execution, including information on progress, duration, metrics, and any errors.

The status is retrieved from the database and includes details such as:

  • Execution status (PENDING, RUNNING, COMPLETED, FAILED)
  • Start and end timestamps
  • Execution time
  • URL Spark UI
  • Number of executor pods
  • Error messages (if failed)
Security
ApiKeyAuth
Path
projectIdstringrequired

Project ID

Example: 98
jobIdstringrequired

Job ID

Example: 210
executionIdstringrequired

Spark execution ID

Example: spark-2d53940045a6-95379617
curl -i -X GET \
  http://docs.webrobot.eu/_mock/openapi/webrobot/api/projects/id/98/jobs/210/executions/spark-2d53940045a6-95379617/status \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

Execution status

Bodyapplication/json
executionIdstring
Example: "spark-2d53940045a6-95379617"
statusstring
Enum"PENDING""RUNNING""COMPLETED""FAILED""UNKNOWN"
Example: "COMPLETED"
startedAtstring or null(date-time)
completedAtstring or null(date-time)
executionTimeSecondsinteger or null

Execution time in seconds

errorMessagestring or null
sparkUiUrlstring or null
executorPodCountinteger or null
Response
application/json
{ "executionId": "spark-2d53940045a6-95379617", "status": "COMPLETED", "startedAt": "2019-08-24T14:15:22Z", "completedAt": "2019-08-24T14:15:22Z", "executionTimeSeconds": 0, "errorMessage": "string", "sparkUiUrl": "string", "executorPodCount": 0 }

Bootstrap

Operations

Images

Operations

Info

Operations

Query

Operations

Upload

Operations

AI Providers

Operations

Models

Operations

Datasets

Operations

Agents

Operations

Categories

Operations

Test

Operations

Cloud Credentials

Operations

Tasks

Operations

Admin

Operations

ETL Library

Operations

Package

Operations

Plugins

Operations

Projects

Operations

ETL Execution

Operations

Execution

Operations

Webhooks

Operations

Metrics

Operations

getHtml

Request

Security
ApiKeyAuth
Path
protocolstringrequired

HTTP protocol (http or https)

urlstringrequired

URL to fetch HTML content from

curl -i -X GET \
  'http://docs.webrobot.eu/_mock/openapi/webrobot/api/html/{url}/{protocol}' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

default response

Bodytext/html

getById

Request

Security
ApiKeyAuth
Path
tablestringrequired

Table name in Strapi

idstringrequired

Record ID

curl -i -X GET \
  'http://docs.webrobot.eu/_mock/openapi/api/strapi-tables/{table}/{id}' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

default response

Bodyapplication/json
Response
application/json
null

update

Request

Security
ApiKeyAuth
Path
tablestringrequired

Table name in Strapi

idstringrequired

Record ID

Bodyapplication/json
property name*objectadditional property
curl -i -X PUT \
  'http://docs.webrobot.eu/_mock/openapi/api/strapi-tables/{table}/{id}' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE' \
  -d '{
    "property1": {},
    "property2": {}
  }'

Responses

default response

Bodyapplication/json
Response
application/json
null

delete

Request

Security
ApiKeyAuth
Path
tablestringrequired

Table name in Strapi

idstringrequired

Record ID

curl -i -X DELETE \
  'http://docs.webrobot.eu/_mock/openapi/api/strapi-tables/{table}/{id}' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

default response

Bodyapplication/json
Response
application/json
null

findAll

Request

Security
ApiKeyAuth
Path
tablestringrequired
Query
pageinteger(int32)
Default 0
pageSizeinteger(int32)

Number of records per page

Default 50
curl -i -X GET \
  'http://docs.webrobot.eu/_mock/openapi/api/strapi-tables/{table}?page=0&pageSize=50' \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

default response

Bodyapplication/json
Response
application/json
null

insert

Request

Security
ApiKeyAuth
Path
tablestringrequired

Table name in Strapi

Bodyapplication/json
property name*objectadditional property
curl -i -X POST \
  'http://docs.webrobot.eu/_mock/openapi/api/strapi-tables/{table}' \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: YOUR_API_KEY_HERE' \
  -d '{
    "property1": {},
    "property2": {}
  }'

Responses

default response

Bodyapplication/json
Response
application/json
null

getHealth

Request

Security
ApiKeyAuth
curl -i -X GET \
  http://docs.webrobot.eu/_mock/openapi/health \
  -H 'X-API-Key: YOUR_API_KEY_HERE'

Responses

default response

Bodyapplication/json
Response
application/json
null

Python Extensions

Operations