import { Crevio } from "@crevio/sdk";
const crevio = new Crevio({
apiKey: process.env["CREVIO_API_KEY"] ?? "",
});
async function run() {
const result = await crevio.eventSources.test({
id: "<id>",
});
console.log(result);
}
run();curl --request POST \
--url https://api.crevio.co/v1/event_sources/{id}/test \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
"payload": {}
}'import requests
url = "https://api.crevio.co/v1/event_sources/{id}/test"
payload = { "payload": {} }
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({payload: {}})
};
fetch('https://api.crevio.co/v1/event_sources/{id}/test', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.crevio.co/v1/event_sources/{id}/test",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'payload' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.crevio.co/v1/event_sources/{id}/test"
payload := strings.NewReader("{\n \"payload\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.crevio.co/v1/event_sources/{id}/test")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"payload\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.crevio.co/v1/event_sources/{id}/test")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"payload\": {}\n}"
response = http.request(request)
puts response.read_body{
"object": "list",
"data": [
{
"id": "<string>",
"object": "<string>",
"task_id": "<string>",
"task_name": "<string>",
"chat_id": "<string>",
"status": "pending",
"summary": "<string>",
"error_message": "<string>",
"test_run": true,
"input_tokens": 123,
"output_tokens": 123,
"credits_consumed": 123,
"cancel_requested_at": "<string>",
"tool_calls_count": 123,
"duration_ms": 123,
"started_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"skip_reason": "condition",
"skip_count": 123,
"delivery_status": "delivered",
"completion": "verified",
"trigger_source": "scheduled",
"trigger_event": {},
"replay_of": "<string>",
"captured_deliveries": "<array>",
"pending_approval_ids": "<array>",
"result": "<string>",
"json": "<unknown>",
"json_error": "<string>",
"artifacts": [
{
"object": "<string>",
"id": "<string>",
"filename": "<string>",
"content_type": "<string>",
"size": 123
}
]
}
],
"has_more": true,
"url": "<string>"
}{
"error": {
"type": "invalid_request_error",
"code": "authentication_required",
"message": "You did not provide an API key."
}
}{
"error": {
"type": "invalid_request_error",
"code": "forbidden",
"message": "You do not have permission to perform this action"
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_missing",
"message": "The requested resource was not found"
}
}{
"error": {
"type": "validation_error",
"code": "validation_failed",
"message": "Email is required",
"errors": {
"email": [
"can't be blank"
]
}
}
}{
"error": {
"type": "invalid_request_error",
"code": "rate_limit_exceeded",
"message": "Too many requests. Please retry later."
}
}{
"error": {
"type": "api_error",
"code": "internal_error",
"message": "An unexpected error occurred"
}
}Test-fire event source
Delivers a sample payload to every task subscribed to this source’s external.<event_name> as a test run: real research and output, but every write-style tool refuses and every delivery is captured on the run instead of being sent. Called from an agent chat, the chat is signalled when each run ends, so it need not poll. Returns the started runs. 422 when no task listens to the event yet, or when every subscribed task is busy or the account is out of AI credits.
import { Crevio } from "@crevio/sdk";
const crevio = new Crevio({
apiKey: process.env["CREVIO_API_KEY"] ?? "",
});
async function run() {
const result = await crevio.eventSources.test({
id: "<id>",
});
console.log(result);
}
run();curl --request POST \
--url https://api.crevio.co/v1/event_sources/{id}/test \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
"payload": {}
}'import requests
url = "https://api.crevio.co/v1/event_sources/{id}/test"
payload = { "payload": {} }
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({payload: {}})
};
fetch('https://api.crevio.co/v1/event_sources/{id}/test', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.crevio.co/v1/event_sources/{id}/test",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'payload' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.crevio.co/v1/event_sources/{id}/test"
payload := strings.NewReader("{\n \"payload\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.crevio.co/v1/event_sources/{id}/test")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"payload\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.crevio.co/v1/event_sources/{id}/test")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"payload\": {}\n}"
response = http.request(request)
puts response.read_body{
"object": "list",
"data": [
{
"id": "<string>",
"object": "<string>",
"task_id": "<string>",
"task_name": "<string>",
"chat_id": "<string>",
"status": "pending",
"summary": "<string>",
"error_message": "<string>",
"test_run": true,
"input_tokens": 123,
"output_tokens": 123,
"credits_consumed": 123,
"cancel_requested_at": "<string>",
"tool_calls_count": 123,
"duration_ms": 123,
"started_at": "2023-11-07T05:31:56Z",
"completed_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"skip_reason": "condition",
"skip_count": 123,
"delivery_status": "delivered",
"completion": "verified",
"trigger_source": "scheduled",
"trigger_event": {},
"replay_of": "<string>",
"captured_deliveries": "<array>",
"pending_approval_ids": "<array>",
"result": "<string>",
"json": "<unknown>",
"json_error": "<string>",
"artifacts": [
{
"object": "<string>",
"id": "<string>",
"filename": "<string>",
"content_type": "<string>",
"size": 123
}
]
}
],
"has_more": true,
"url": "<string>"
}{
"error": {
"type": "invalid_request_error",
"code": "authentication_required",
"message": "You did not provide an API key."
}
}{
"error": {
"type": "invalid_request_error",
"code": "forbidden",
"message": "You do not have permission to perform this action"
}
}{
"error": {
"type": "invalid_request_error",
"code": "resource_missing",
"message": "The requested resource was not found"
}
}{
"error": {
"type": "validation_error",
"code": "validation_failed",
"message": "Email is required",
"errors": {
"email": [
"can't be blank"
]
}
}
}{
"error": {
"type": "invalid_request_error",
"code": "rate_limit_exceeded",
"message": "Too many requests. Please retry later."
}
}{
"error": {
"type": "api_error",
"code": "internal_error",
"message": "An unexpected error occurred"
}
}Authorizations
API key in the format: Bearer {api_token}
Headers
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.
255Path Parameters
The resource ID (e.g., "prod_abc123") or slug (e.g., "my-product")
Body
The body a real delivery would carry; the run receives it as event.data. Defaults to {}.
Was this page helpful?

