List webhooks
The webhook of the account, if it has one. The signing secret is not included.
GET
https://api.switchfile.io/v2/users/me/webhooksExample
Request
curl "https://api.switchfile.io/v2/users/me/webhooks" \
-H "Authorization: Bearer $SWITCHFILE_API_KEY"const res = await fetch("https://api.switchfile.io/v2/users/me/webhooks", {
headers: {
Authorization: `Bearer ${process.env.SWITCHFILE_API_KEY}`,
},
});
if (!res.ok) throw new Error(`HTTP ${res.status}: ${await res.text()}`);
console.log(await res.json());<?php
$ch = curl_init('https://api.switchfile.io/v2/users/me/webhooks');
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('SWITCHFILE_API_KEY'),
],
CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
curl_close($ch);
if ($status >= 400) {
throw new RuntimeException("HTTP $status: $response");
}
print_r(json_decode($response, true));import os
import requests
res = requests.get(
"https://api.switchfile.io/v2/users/me/webhooks",
headers={"Authorization": f"Bearer {os.environ['SWITCHFILE_API_KEY']}"},
)
res.raise_for_status()
print(res.json())Parameters
Query parameters
filter[url]stringOnly webhooks with exactly this URL
pagenumberPage number, starting at 1
at least 1
per_pagenumberEntries per page, 100 by default
1 to 1000
Responses
200OK
dataWebhook[]requireddata[].created_atstringrequiredISO 8601 timestamp, for example 2026-11-06T18:00:00+00:00
data[].disabledbooleanrequiredAlways false: switchfile does not disable webhooks on its own
data[].eventsstring[]requireddata[].failingbooleanrequiredThe last delivery to this URL failed
data[].idstringrequiredID of the webhook (a UUID; CloudConvert uses an integer)
data[].last_error_atstring | nullrequiredISO 8601 timestamp, for example 2026-11-06T18:00:00+00:00
data[].last_response_codestring | nullrequiredHTTP status of the last failed delivery, or NETWORK_ERROR
data[].linksobjectrequireddata[].links.selfstringrequireddata[].updated_atstringrequiredISO 8601 timestamp, for example 2026-11-06T18:00:00+00:00
data[].urlstringrequiredlinksPageLinksrequiredlinks.firststringrequiredlinks.laststring | nullrequiredlinks.nextstring | nullrequiredlinks.prevstring | nullrequiredmetaPageMetarequiredmeta.current_pagestring (integer) | integerrequiredmeta.current_page_urlstringrequiredmeta.fromstring (integer) | integerrequiredmeta.pathstringrequiredmeta.per_pagestring (integer) | integerrequiredmeta.tostring (integer) | integerrequired
200 application/json{ "data": [ { "id": "1a7e3c5b-9d2f-4b6a-8e0c-5f3d1b7a9c24", "url": "https://example.com/hooks/switchfile", "disabled": false, "events": [ "job.finished", "job.failed" ], "failing": false, "last_error_at": null, "last_response_code": null, "created_at": "2026-11-06T18:00:00+00:00", "updated_at": "2026-11-06T18:00:00+00:00", "links": { "self": "https://api.switchfile.io/v2/webhooks/1a7e3c5b-9d2f-4b6a-8e0c-5f3d1b7a9c24" } } ], "links": { "first": "https://api.switchfile.io/v2/users/me/webhooks?page=1", "last": null, "prev": null, "next": null }, "meta": { "current_page": 1, "current_page_url": "https://api.switchfile.io/v2/users/me/webhooks?page=1", "from": 1, "path": "https://api.switchfile.io/v2/users/me/webhooks", "per_page": 100, "to": 1 } }401The API key is missing or not valid
UNAUTHENTICATED401 application/json{ "message": "Missing or invalid API key.", "code": "UNAUTHENTICATED" }404Does not exist for this account
NOT_FOUND404 application/json{ "message": "Job not found.", "code": "NOT_FOUND" }422Invalid data. errors names the fields
INVALID_DATA422 application/json{ "message": "id: Expected string to match 'uuid' format", "code": "INVALID_DATA", "errors": { "id": [ "Expected string to match 'uuid' format" ] } }429Too many requests or a daily quota is used up. See Retry-After
RATE_LIMIT_EXCEEDED429 application/json{ "message": "Too many requests. Try again in 12 seconds.", "code": "RATE_LIMIT_EXCEEDED" }