List the org’s outbound webhooks
GET
/webhooks
using System.Net.Http.Headers;var client = new HttpClient();var request = new HttpRequestMessage{ Method = HttpMethod.Get, RequestUri = new Uri("https://api.vendorica.com/v1/webhooks"), Headers = { { "Authorization", "Bearer <token>" }, },};using (var response = await client.SendAsync(request)){ response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);}package main
import ( "fmt" "net/http" "io")
func main() {
url := "https://api.vendorica.com/v1/webhooks"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(res) fmt.Println(string(body))
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder() .url("https://api.vendorica.com/v1/webhooks") .get() .addHeader("Authorization", "Bearer <token>") .build();
Response response = client.newCall(request).execute();const url = 'https://api.vendorica.com/v1/webhooks';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}use reqwest;
#[tokio::main]pub async fn main() { let url = "https://api.vendorica.com/v1/webhooks";
let mut headers = reqwest::header::HeaderMap::new(); headers.insert("Authorization", "Bearer <token>".parse().unwrap());
let client = reqwest::Client::new(); let response = client.get(url) .headers(headers) .send() .await;
let results = response.unwrap() .json::<serde_json::Value>() .await .unwrap();
dbg!(results);}curl --request GET \ --url https://api.vendorica.com/v1/webhooks \ --header 'Authorization: Bearer <token>'Every outbound webhook configured for the organization. NOT paginated — the response is the whole list. signingSecret never appears here; it is returned exactly once, in the create response.
Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”Success
Media typeapplication/json
object
success
required
boolean
data
required
Array<object>
object
id
required
string format: uuid
organizationId
required
string format: uuid
name
required
string
triggers
required
Array<string>
endpoint
required
string format: uri
status
required
string
apiVersion
required
string
customHeaders
required
Array<object>
object
name
required
string
valueHint
required
string
signing
required
object
enabled
required
boolean
secretHint
required
string | null
retryPolicy
required
object
enabled
required
boolean
maxAttempts
required
integer
backoff
required
string
initialDelaySeconds
required
integer
maxDelaySeconds
required
integer
retryOn
required
Array<string>
failureHandling
required
object
autoDisableAfter
required
integer
disableOnGone
required
boolean
consecutiveFailures
required
integer
lastSuccessAt
required
string | null format: date-time
lastFailureAt
required
string | null format: date-time
disabledReason
required
string | null
createdAt
required
string | null format: date-time
updatedAt
required
string | null format: date-time
timestamp
required
string format: date-time
requestId
string
message
string
Example
{ "success": true, "data": [ { "id": "899d4dcd-71a1-4cdd-8f37-917a827a095a", "organizationId": "9b459398-0887-4b6e-8a14-ec97e1f06b69", "name": "string", "triggers": [ "string" ], "endpoint": "https://example.com", "status": "active", "apiVersion": "string", "customHeaders": [ { "name": "string", "valueHint": "string" } ], "signing": { "enabled": true, "secretHint": "string" }, "retryPolicy": { "enabled": true, "maxAttempts": 1, "backoff": "exponential", "initialDelaySeconds": 1, "maxDelaySeconds": 1, "retryOn": [ "timeout" ] }, "failureHandling": { "autoDisableAfter": 1, "disableOnGone": true }, "consecutiveFailures": 1, "lastSuccessAt": "2026-08-19T09:41:12.004Z", "lastFailureAt": "2026-08-19T09:41:12.004Z", "disabledReason": "string", "createdAt": "2026-08-19T09:41:12.004Z", "updatedAt": "2026-08-19T09:41:12.004Z" } ], "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H", "message": "string"}Validation error
Media typeapplication/json
object
success
required
boolean
error
required
string
code
required
string
details
timestamp
required
string format: date-time
requestId
string
Example
{ "success": false, "error": "Bad request", "code": "BAD_REQUEST", "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"}Unauthorized
Media typeapplication/json
object
success
required
boolean
error
required
string
code
required
string
details
timestamp
required
string format: date-time
requestId
string
Example
{ "success": false, "error": "Unauthorized", "code": "UNAUTHORIZED", "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"}Forbidden — missing scope
Media typeapplication/json
object
success
required
boolean
error
required
string
code
required
string
details
timestamp
required
string format: date-time
requestId
string
Example
{ "success": false, "error": "Forbidden", "code": "FORBIDDEN", "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"}Not found
Media typeapplication/json
object
success
required
boolean
error
required
string
code
required
string
details
timestamp
required
string format: date-time
requestId
string
Example
{ "success": false, "error": "Resource not found", "code": "NOT_FOUND", "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"}Rate limit exceeded
Media typeapplication/json
object
success
required
boolean
error
required
string
code
required
string
details
timestamp
required
string format: date-time
requestId
string
Example
{ "success": false, "error": "Too many requests", "code": "TOO_MANY_REQUESTS", "timestamp": "2026-08-19T09:41:12.004Z", "requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"}