curl --request POST \
--url https://code.deepline.com/api/v2/plays/run \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "prebuilt/person-linkedin-to-email"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'prebuilt/person-linkedin-to-email'})
};
fetch('https://code.deepline.com/api/v2/plays/run', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://code.deepline.com/api/v2/plays/run"
payload = { "name": "prebuilt/person-linkedin-to-email" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"schemaVersion": 1,
"kind": "play_run",
"run": {
"id": "play/prebuilt/person-linkedin-to-email/run/example",
"playName": "person-linkedin-to-email",
"status": "running"
},
"steps": [],
"outputs": {},
"resultState": "not_returned",
"datasets": [],
"next": {
"inspect": {
"kind": "deepline_run_inspect",
"runId": "play/prebuilt/person-linkedin-to-email/run/example",
"command": "deepline runs get play/prebuilt/person-linkedin-to-email/run/example",
"api": {
"method": "GET",
"path": "/api/v2/runs/play%2Fprebuilt%2Fperson-linkedin-to-email%2Frun%2Fexample"
}
},
"billing": {
"kind": "deepline_run_billing",
"runId": "play/prebuilt/person-linkedin-to-email/run/example",
"command": "deepline billing usage --run-id play/prebuilt/person-linkedin-to-email/run/example",
"api": {
"method": "GET",
"path": "/api/v2/runs/play%2Fprebuilt%2Fperson-linkedin-to-email%2Frun%2Fexample?full=true"
}
},
"logs": {
"kind": "deepline_run_logs",
"runId": "play/prebuilt/person-linkedin-to-email/run/example",
"view": "tail",
"limit": 100,
"command": "deepline runs logs play/prebuilt/person-linkedin-to-email/run/example --limit 100",
"api": {
"method": "GET",
"path": "/api/v2/runs/play%2Fprebuilt%2Fperson-linkedin-to-email%2Frun%2Fexample/logs?limit=100"
}
}
}
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}Start a saved or prebuilt Play run
Starts a durable Play run for a saved or prebuilt play name. Read run.id from the response, then poll getRun until run.status is terminal.
curl --request POST \
--url https://code.deepline.com/api/v2/plays/run \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "prebuilt/person-linkedin-to-email"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'prebuilt/person-linkedin-to-email'})
};
fetch('https://code.deepline.com/api/v2/plays/run', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://code.deepline.com/api/v2/plays/run"
payload = { "name": "prebuilt/person-linkedin-to-email" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"schemaVersion": 1,
"kind": "play_run",
"run": {
"id": "play/prebuilt/person-linkedin-to-email/run/example",
"playName": "person-linkedin-to-email",
"status": "running"
},
"steps": [],
"outputs": {},
"resultState": "not_returned",
"datasets": [],
"next": {
"inspect": {
"kind": "deepline_run_inspect",
"runId": "play/prebuilt/person-linkedin-to-email/run/example",
"command": "deepline runs get play/prebuilt/person-linkedin-to-email/run/example",
"api": {
"method": "GET",
"path": "/api/v2/runs/play%2Fprebuilt%2Fperson-linkedin-to-email%2Frun%2Fexample"
}
},
"billing": {
"kind": "deepline_run_billing",
"runId": "play/prebuilt/person-linkedin-to-email/run/example",
"command": "deepline billing usage --run-id play/prebuilt/person-linkedin-to-email/run/example",
"api": {
"method": "GET",
"path": "/api/v2/runs/play%2Fprebuilt%2Fperson-linkedin-to-email%2Frun%2Fexample?full=true"
}
},
"logs": {
"kind": "deepline_run_logs",
"runId": "play/prebuilt/person-linkedin-to-email/run/example",
"view": "tail",
"limit": 100,
"command": "deepline runs logs play/prebuilt/person-linkedin-to-email/run/example --limit 100",
"api": {
"method": "GET",
"path": "/api/v2/runs/play%2Fprebuilt%2Fperson-linkedin-to-email%2Frun%2Fexample/logs?limit=100"
}
}
}
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}{
"error": "Unauthorized"
}Authorization: Bearer <key>.
Errors
| Status | Meaning |
|---|---|
| 400 | The request conflicts with current state or a retained request identity. |
| 401 | The request conflicts with current state or a retained request identity. |
| 402 | The request conflicts with current state or a retained request identity. |
| 404 | The request conflicts with current state or a retained request identity. |
| 409 | The request conflicts with current state or a retained request identity. |
| 422 | The request conflicts with current state or a retained request identity. |
| 429 | The request conflicts with current state or a retained request identity. |
| 500 | The request conflicts with current state or a retained request identity. |
| 503 | A required service is unavailable. Respect Retry-After when present. |
Authorizations
Create a workspace API key in the Deepline dashboard before calling authenticated endpoints.
Body
A saved or prebuilt Play reference with its typed input.
Saved or prebuilt Play reference.
Input matching the selected Play schema.
Run a specific saved revision belonging to the named Play.
Compatibility flag. Active sibling runs are allowed.
Bypass cached dataset and tool-call reuse.
Per-run Deepline-credit cap. Replaces the Play’s declared maxCreditsPerRun for this run.
Per-run ceiling on concurrently resident provider-tool executions and direct HTTP calls.
1 <= x <= 1000Run-wide default and ceiling for live dataset-map row resolvers.
1 <= x <= 1000Briefly wait for completion. A timeout returns the existing run, not a new execution.
0 <= x <= 15000With a completion wait, request the full terminal detail wrapper.
full