Example
curl -X POST https://api.worker.helicone.ai/custom/v1/log \
-H 'Authorization: Bearer your_api_key' \
-H 'Content-Type: application/json' \
-d '{
"providerRequest": {
"url": "custom-model-nopath",
"json": {
"_type": "tool",
"toolName": "weather_api",
"input": {
"location": "San Francisco",
"units": "celsius"
}
},
"meta": {
"user_id": "user_123",
"session_id": "session_456",
"environment": "production"
}
},
"providerResponse": {
"json": {
"_type": "tool",
"toolName": "weather_api",
"temperature": 18.5,
"conditions": "Partly Cloudy",
"humidity": 72,
"wind": {
"speed": 12,
"direction": "NW"
}
},
"status": 200,
"headers": {
"content-type": "application/json",
"cache-control": "max-age=300"
}
},
"timing": {
"startTime": {
"seconds": 1625686222,
"milliseconds": 500
},
"endTime": {
"seconds": 1625686223,
"milliseconds": 750
}
}
}'
Request Structure
Endpoint
POST https://api.worker.helicone.ai/custom/v1/log
Note: The endpoint may vary depending on your Helicone setup. If the above endpoint doesn’t work, you can also try:
- For US:
https://api.us.helicone.ai/custom/v1/log
- Elsewhere:
https://api.helicone.ai/custom/v1/log
Name | Value |
---|
Authorization | Bearer {API_KEY} |
Replace {API_KEY}
with your actual API Key.
Body
export type HeliconeAsyncLogRequest = {
providerRequest: ProviderRequest;
providerResponse: ProviderResponse;
timing: Timing;
};
export type ProviderRequest = {
url: "custom-model-nopath";
json: {
_type: "tool";
toolName: string;
input: any;
[key: string]: any;
};
meta: Record<string, string>;
};
export type ProviderResponse = {
json: {
_type?: "tool";
toolName: string;
[key: string]: any;
};
status: number;
headers: Record<string, string>;
};
export type Timing = {
// From Unix epoch in Milliseconds
startTime: {
seconds: number;
milliseconds: number;
};
endTime: {
seconds: number;
milliseconds: number;
};
};