query webhookAuthenticated

A webhook by id, or null when it does not exist or the caller cannot read it.

Returns Webhook

Arguments

ArgumentTypeDescription
idID!

Example request

curl -X POST 'https://graph.clientloop.com/' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <api-key>' \
  -d '{
    "query": "query Webhook($id: ID!) { webhook(id: $id) { id ownerId url events description enabled secretCheckValue createdAt updatedAt } }",
    "variables": {
      "id": "abc123"
    }
  }'
const response = await fetch('https://graph.clientloop.com/', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer <api-key>',
  },
  body: JSON.stringify({
    query: `
      query Webhook($id: ID!) {
        webhook(id: $id) {
          id
          ownerId
          url
          events
          description
          enabled
          secretCheckValue
          createdAt
          updatedAt
        }
      }
    `,
    variables: {
      "id": "abc123"
    },
  }),
});

const { data, errors } = await response.json();
<?php

$body = <<<'JSON'
{
  "query": "query Webhook($id: ID!) { webhook(id: $id) { id ownerId url events description enabled secretCheckValue createdAt updatedAt } }",
  "variables": {
    "id": "abc123"
  }
}
JSON;

$ch = curl_init('https://graph.clientloop.com/');
curl_setopt_array($ch, [
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_POST => true,
  CURLOPT_HTTPHEADER => [
    'Content-Type: application/json',
    'Authorization: Bearer <api-key>',
  ],
  CURLOPT_POSTFIELDS => $body,
]);

$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response, true);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

var body = """
{
  "query": "query Webhook($id: ID!) { webhook(id: $id) { id ownerId url events description enabled secretCheckValue createdAt updatedAt } }",
  "variables": {
    "id": "abc123"
  }
}
""";

var request = HttpRequest.newBuilder(URI.create("https://graph.clientloop.com/"))
    .header("Content-Type", "application/json")
    .header("Authorization", "Bearer <api-key>")
    .POST(HttpRequest.BodyPublishers.ofString(body))
    .build();

var response = HttpClient.newHttpClient()
    .send(request, HttpResponse.BodyHandlers.ofString());

System.out.println(response.body());
using System.Net.Http;
using System.Text;

var body = """
{
  "query": "query Webhook($id: ID!) { webhook(id: $id) { id ownerId url events description enabled secretCheckValue createdAt updatedAt } }",
  "variables": {
    "id": "abc123"
  }
}
""";

using var client = new HttpClient();
using var content = new StringContent(body, Encoding.UTF8, "application/json");
client.DefaultRequestHeaders.Add("Authorization", "Bearer <api-key>");

var response = await client.PostAsync("https://graph.clientloop.com/", content);
var result = await response.Content.ReadAsStringAsync();

Types

type Webhook

A subscription that delivers event notifications to an owner-supplied HTTPS endpoint. Referenced by id so its url or event list can change without affecting referencing records.

FieldTypeDescription
idID!
ownerIdID!
urlString!

Destination HTTPS endpoint that receives event payloads via POST.

events[String!]!

Event types this webhook is subscribed to (e.g. "commitment.created").

descriptionString

Optional human-readable label describing the webhook's purpose.

enabledBoolean!

Whether the webhook is active and delivering events.

secretCheckValueString!

Checksum of the signing secret, used to confirm which secret is configured without exposing it. The raw secret is only ever returned by webhookCreate and webhookRotateSecret.

createdAtDateTime!
updatedAtDateTime!

scalar DateTime

ISO 8601 formatted date time. Ex. 2023-11-23T14:30:00Z