Tasks

Test-run a task

Fire the task once as a test. The run does real research and produces real output, but every write-style tool refuses and every configured delivery is captured on the run instead of being sent. Poll the returned run, then read captured_deliveries for the exact message each channel would have received. Called from an agent chat, the chat is signalled when the run ends, so it need not poll.

To test an event-triggered task against a sample record (a fake order, lead or form answer), pass event: the run receives it as its trigger event exactly as it would a real one, with type set to the task's event_conditions.event_type. Test the real task this way; there is no need to copy it onto a temporary webhook source. Without event, an event task runs with no trigger event. The task's condition_script is not applied to a test run.

A test run never counts as a run of the task: it does not advance next_run_at, does not reset or trip the failure breaker, does not count toward autonomy graduation or max_runs_per_day, and does not appear in the run history a later run reads. It does consume credits. 400 if event is malformed or the task is not event-triggered; 422 if the task already has a run in flight or the account is out of AI credits.

post/tasks/{id}/run_test

Request

  • Base URL: https://api.crevio.co/v1
  • URL: https://api.crevio.co/v1/tasks/{id}/run_test
  • Auth: API key in header Authorization

Path parameters

idstring required

Task id (task_...)

Headers

Idempotency-Keystring

Makes this write safe to retry: a repeat with the same key replays the first response instead of creating a second resource. Scoped to the account, remembered for 24 hours; reusing a key with a different payload is an error.

Request body

Response

Accepted — the test run executes in the background; poll GET /task_runs/{id}.

idstring required
objectstring required
task_idstring required
task_namestring required
chat_idstring nullable required

The run's own conversation (aichat_...): what it read, called and said. Read it with search_chats.

status'pending' | 'running' | 'completed' | 'failed' | 'needs_input' | 'timed_out' | 'unknown' | 'skipped' required
summarystring nullable required
error_messagestring nullable required
test_runboolean required
input_tokensinteger required
output_tokensinteger required
credits_consumedinteger required
tool_calls_countinteger required
duration_msinteger nullable required
started_atstring date-time nullable required
completed_atstring date-time nullable required
created_atstring date-time required
updated_atstring date-time required
skip_reason'condition' | 'no_paid_plan_or_credits' | 'no_recent_activity' | 'no_task_activity' | 'no_personal_sources' | 'wake_gate' | 'wake_limit' | 'rate_limited' | 'misfire' | 'task_busy' | 'account_at_capacity' | 'null' nullable required
skip_countinteger required
delivery_status'delivered' | 'not_delivered' | 'not_requested' | 'unknown' required
completion'verified' | 'recorded' | 'recovered' | 'null' nullable required

How the agent closed a completed run: verified (it re-checked the result), recorded (it reported without re-checking), or recovered (it never reported; summary is its last message). Null unless an agent turn completed the run.

trigger_source'scheduled' | 'event' | 'manual' required
trigger_eventobject nullable required

The event that started this run, {type, data}, exactly as the run received it; data matches the event's webhook payload. Null for a run no event started. POST /task_runs/{id}/replay runs the task again on it.

replay_ofstring nullable required

The run (trun_...) whose event this run replays. Null unless started by POST /task_runs/{id}/replay.

Changes

No recorded changes to this operation across all 2 revisions of this API.