Developers
Set your API contextPick a region and space ID once. Every sample fills in your base URL.
Where do I find these?

In Coevera: open your space's API application and choose Show Access. It shows the space ID and the base URL, whose host starts with your region.

From the API: if you know the space ID, the discovery endpoint GET /api/discovery/spaces/{space_id} returns its region and base URLs, without credentials.

Only the region and space ID are kept, in this browser. Never paste a key or password here.

More in the quickstart

GraphQLRepositorieswebhook

entities.webhook

Read webhook records with the webhook repository, and change them with the webhook mutations. Same records as the REST Webhooks entity.

Queries

Fields of entities { webhook { … } }.

Each operation opens an example built from the schema and checked against it on every build. Replace the placeholders, such as <webhook id>, with values from your space.

KindFieldReturns
QUERYgetById(entityId: ID!)
Returns the record with the given id, or null when there is none. Deleted records are returned as well.
WebhookEntity
Example
Example: getById
query WebhookGetById {
  entities {
    webhook {
      getById(entityId: "<webhook id>") {
        id
        modified
      }
    }
  }
}
curl 'https://{region}.api.coevera.com/api/v100/app/space/{space_id}/graphql/public' \
  --user "$COEVERA_API_KEY:$COEVERA_API_SECRET" \
  --header 'Content-Type: application/json' \
  --data '{"query":"query WebhookGetById { entities { webhook { getById(entityId: \"<webhook id>\") { id modified } } } }"}'
QUERYgetByIds(entityIds: [ID!]!)
Returns the records with the given ids; ids without a record are left out. Deleted records are returned as well.
[WebhookEntity!]!
Example
Example: getByIds
query WebhookGetByIds {
  entities {
    webhook {
      getByIds(entityIds: ["<webhook id>"]) {
        id
        modified
      }
    }
  }
}
curl 'https://{region}.api.coevera.com/api/v100/app/space/{space_id}/graphql/public' \
  --user "$COEVERA_API_KEY:$COEVERA_API_SECRET" \
  --header 'Content-Type: application/json' \
  --data '{"query":"query WebhookGetByIds { entities { webhook { getByIds(entityIds: [\"<webhook id>\"]) { id modified } } } }"}'
QUERYgetAll(limit: Int, offset: Int, filter: WebhookFilterInput, orderBy: [WebhookOrderByInput!], includeDeleted: Boolean)
Returns the records that match the filter, paged with limit and offset.
[WebhookEntity!]!
Example
Example: getAll
query WebhookGetAll {
  entities {
    webhook {
      getAll(limit: 10) {
        id
        modified
      }
    }
  }
}
curl 'https://{region}.api.coevera.com/api/v100/app/space/{space_id}/graphql/public' \
  --user "$COEVERA_API_KEY:$COEVERA_API_SECRET" \
  --header 'Content-Type: application/json' \
  --data '{"query":"query WebhookGetAll { entities { webhook { getAll(limit: 10) { id modified } } } }"}'
QUERYgetByCriteria(filter: WebhookFilterInput, orderBy: [WebhookOrderByInput!], includeDeleted: Boolean, before: String, after: String, first: Int, last: Int)
Returns the records that match the filter as a cursor-paginated connection.
WebhookEntityConnection
Example
Example: getByCriteria
query WebhookGetByCriteria {
  entities {
    webhook {
      getByCriteria(first: 10) {
        totalCount
        edges {
          node {
            id
            modified
          }
        }
        pageInfo {
          hasNextPage
          endCursor
        }
      }
    }
  }
}
curl 'https://{region}.api.coevera.com/api/v100/app/space/{space_id}/graphql/public' \
  --user "$COEVERA_API_KEY:$COEVERA_API_SECRET" \
  --header 'Content-Type: application/json' \
  --data '{"query":"query WebhookGetByCriteria { entities { webhook { getByCriteria(first: 10) { totalCount edges { node { id modified } } pageInfo { hasNextPage endCursor } } } } }"}'
QUERYgetChangedFieldsSinceRevision(id: UUID!, revision: Int!)
Returns the ids of the fields of a record that changed after the given revision. Returns an empty list for entities without change tracking.
[UUID!]!
Example
Example: getChangedFieldsSinceRevision
query WebhookGetChangedFieldsSinceRevision {
  entities {
    webhook {
      getChangedFieldsSinceRevision(id: "<webhook id>", revision: 10)
    }
  }
}
curl 'https://{region}.api.coevera.com/api/v100/app/space/{space_id}/graphql/public' \
  --user "$COEVERA_API_KEY:$COEVERA_API_SECRET" \
  --header 'Content-Type: application/json' \
  --data '{"query":"query WebhookGetChangedFieldsSinceRevision { entities { webhook { getChangedFieldsSinceRevision(id: \"<webhook id>\", revision: 10) } } }"}'

Mutations

KindMutationDoesReturns
MUTATIONcreateWebhook(input: CreateWebhookInput!, validationLevel: [ValidationLevel!])Create one recordCreateWebhookPayload
Example
Example: createWebhook
mutation CreateWebhook {
  createWebhook(
    input: {insecureSsl: false, url: "https://example.com/coevera-webhook", events: [All]}
  ) {
    webhook {
      id
      modified
    }
  }
}
curl 'https://{region}.api.coevera.com/api/v100/app/space/{space_id}/graphql/public' \
  --user "$COEVERA_API_KEY:$COEVERA_API_SECRET" \
  --header 'Content-Type: application/json' \
  --data '{"query":"mutation CreateWebhook { createWebhook( input: {insecureSsl: false, url: \"https://example.com/coevera-webhook\", events: [All]} ) { webhook { id modified } } }"}'
MUTATIONupdateWebhook(input: UpdateWebhookInput!, validationLevel: [ValidationLevel!], sessionIdToUpdate: String)Update fieldsUpdateWebhookPayload
Example
Example: updateWebhook
mutation UpdateWebhook {
  updateWebhook(input: {id: "<webhook id>"}) {
    webhook {
      id
      modified
    }
  }
}
curl 'https://{region}.api.coevera.com/api/v100/app/space/{space_id}/graphql/public' \
  --user "$COEVERA_API_KEY:$COEVERA_API_SECRET" \
  --header 'Content-Type: application/json' \
  --data '{"query":"mutation UpdateWebhook { updateWebhook(input: {id: \"<webhook id>\"}) { webhook { id modified } } }"}'
MUTATIONbulkUpdateWebhook(input: [CreateOrUpdateWebhookInput!]!, deleteInput: [DeleteWebhookInput!], validationLevel: [ValidationLevel!], rollbackMethod: RollbackMethod, match: MatchingInput)Create or update many; per-item resultsBulkUpdateWebhookPayload
Example
Example: bulkUpdateWebhook
mutation BulkUpdateWebhook {
  bulkUpdateWebhook(input: [{id: "<webhook id>"}]) {
    result {
      created {
        id
      }
      errors {
        index
        code
        message
        entityId
      }
      updated
      deleted
      errorsOnDelete {
        index
        code
        message
        entityId
      }
    }
  }
}
curl 'https://{region}.api.coevera.com/api/v100/app/space/{space_id}/graphql/public' \
  --user "$COEVERA_API_KEY:$COEVERA_API_SECRET" \
  --header 'Content-Type: application/json' \
  --data '{"query":"mutation BulkUpdateWebhook { bulkUpdateWebhook(input: [{id: \"<webhook id>\"}]) { result { created { id } errors { index code message entityId } updated deleted errorsOnDelete { index code message entityId } } } }"}'
MUTATIONdeleteWebhook(input: DeleteWebhookInput!)Soft-deleteDeleteWebhookPayload
Example
Example: deleteWebhook
mutation DeleteWebhook {
  deleteWebhook(input: {id: "<webhook id>"}) {
    webhook {
      id
      modified
    }
  }
}
curl 'https://{region}.api.coevera.com/api/v100/app/space/{space_id}/graphql/public' \
  --user "$COEVERA_API_KEY:$COEVERA_API_SECRET" \
  --header 'Content-Type: application/json' \
  --data '{"query":"mutation DeleteWebhook { deleteWebhook(input: {id: \"<webhook id>\"}) { webhook { id modified } } }"}'

Types

The types this repository uses, each with its fields and their descriptions. Types several repositories share, such as PageInfo and the filter fields, are in the types index.

WebhookEntity object 15 fields: isDeleteProtected, id, isDeleted, …

Registered webhook urls will be called when subscribed events occur with access level corresponding to the Webhook owner. Recipient has to receive the webhook in 10 seconds and respond with HTTP 200 (2XX) status.

FieldTypeDescription
isDeleteProtectedBoolean!True when the record is protected against deletion because it must always exist in the space. Deleting a record that is not protected can still fail on other checks. Read-only.
idID!Unique identifier of entity.
isDeletedBooleanSpecifies if the entity is considered deleted.
modifiedDateTimeLast modification time.
createdDateTimeCreation time.
applicationApplicationEntityOAuth application that registered this webhook. Set automatically when the webhook is created using OAuth credentials; empty when a team-space API key was used.
clientClientEntityClient who defined the Webhook. Only those notifications are sent which this Client has permission to see. If empty, all space notification are send, even for events of private records. Value is automatically set to authenticated user who created the webhook.
applicationIdIDId of the OAuth application that registered the Webhook.
clientIdIDId of the user who defined the Webhook.
insecureSslBoolean!If True, remote side ssl certificate will not be validated when delivering notifications.
optionsJSONStringParams in REST API format (snake case), to modify the content of the WebHook. You can set "entity" options of the main entity on which the event occurs. E.g. Account for events like Account.Create, Account.Update, Account.Delete.
signatureIDSignature to verify webhook (has to be UUID). When signature is set, then all webhook requests will be signed using HMAC-SHA256. This signature will be used as key and request body as message. Signature will be located in "WebHook-Signature" header.
urlString!Target URL that webhook event payloads are POSTed to.
events[EventEnum!]!Event types this webhook subscribes to (e.g. Account.Create, Lead.Update). At least one event is required; the webhook fires whenever any subscribed event occurs in the team space.
instancePermissions[EntityPermsEnum!]! (1 args)Permissions the current user has on this record, out of the requested ones.
WebhookEntityConnection object pageInfo: PageInfo!, edges: [WebhookEntityEdge]!, totalCount: Int

Paginated list of Webhook records.

FieldTypeDescription
pageInfoPageInfo!Pagination data for this connection.
edges[WebhookEntityEdge]!Contains the nodes in this connection.
totalCountIntTotal number of items in the connection.
WebhookEntityEdge object node: WebhookEntity, cursor: String!

A Relay edge containing a WebhookEntity and its cursor.

FieldTypeDescription
nodeWebhookEntityThe item at the end of the edge
cursorString!A cursor for use in pagination
WebhookFilterInput input AND, OR, NOT, globalSearchQuery, one condition per field

Filter conditions for Webhook records. Conditions on different fields are combined with AND; use OR, AND and NOT for other combinations.

Input fieldTypeDescription
OR[WebhookFilterInput!]Matches records that meet at least one of the listed filters.
AND[WebhookFilterInput!]Matches records that meet all of the listed filters.
NOTWebhookFilterInputMatches records that do not meet this filter.
globalSearchQueryStringSearch term matched against the fields that the global search covers for this entity.
idEntityFilterStringFieldUnique identifier of entity.
isDeletedBooleanSpecifies if the entity is considered deleted.
modifiedEntityFilterDateTimeFieldLast modification time.
createdEntityFilterDateTimeFieldCreation time.
applicationIdEntityFilterStringFieldId of the OAuth application that registered the Webhook.
clientIdEntityFilterStringFieldId of the user who defined the Webhook.
insecureSslBooleanIf True, remote side ssl certificate will not be validated when delivering notifications.
signatureEntityFilterStringFieldSignature to verify webhook (has to be UUID). When signature is set, then all webhook requests will be signed using HMAC-SHA256. This signature will be used as key and request body as message. Signature will be located in "WebHook-Signature" header.
urlEntityFilterStringFieldTarget URL that webhook event payloads are POSTed to.
applicationApplicationFilterInputOAuth application that registered this webhook. Set automatically when the webhook is created using OAuth credentials; empty when a team-space API key was used. Matches records where a related record meets these conditions.
clientClientFilterInputClient who defined the Webhook. Only those notifications are sent which this Client has permission to see. If empty, all space notification are send, even for events of private records. Value is automatically set to authenticated user who created the webhook.
WebhookOrderByInput input Asc or Desc per field

Sorting of Webhook records. Set exactly one field in each item; list several items to sort by more fields, in order of priority.

Input fieldTypeDescription
idOrderByEnumUnique identifier of entity.
isDeletedOrderByEnumSpecifies if the entity is considered deleted.
modifiedOrderByEnumLast modification time.
createdOrderByEnumCreation time.
application[ApplicationOrderByNestedInput!]OAuth application that registered this webhook. Set automatically when the webhook is created using OAuth credentials; empty when a team-space API key was used. Sorts by fields of the related record, listed in order of priority.
client[ClientOrderByNestedInput!]Client who defined the Webhook. Only those notifications are sent which this Client has permission to see. If empty, all space notification are send, even for events of private records. Value is automatically set to authenticated user who created the webhook.
applicationIdOrderByEnumId of the OAuth application that registered the Webhook.
clientIdOrderByEnumId of the user who defined the Webhook.
insecureSslOrderByEnumIf True, remote side ssl certificate will not be validated when delivering notifications.
urlOrderByEnumTarget URL that webhook event payloads are POSTed to.
CreateOrUpdateWebhookInput input 9 fields: clientMutationId, id, modified, …

Field values of a Webhook record to create, or to update when its id is set.

Input fieldTypeDescription
clientMutationIdStringOptional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).
idIDUnique identifier of entity.
modifiedDateTimeLast modification time.
createdDateTimeCreation time.
insecureSslBooleanIf True, remote side ssl certificate will not be validated when delivering notifications.
optionsJSONStringParams in REST API format (snake case), to modify the content of the WebHook. You can set "entity" options of the main entity on which the event occurs. E.g. Account for events like Account.Create, Account.Update, Account.Delete.
signatureIDSignature to verify webhook (has to be UUID). When signature is set, then all webhook requests will be signed using HMAC-SHA256. This signature will be used as key and request body as message. Signature will be located in "WebHook-Signature" header.
urlStringTarget URL that webhook event payloads are POSTed to.
events[EventEnum!]Event types this webhook subscribes to (e.g. Account.Create, Lead.Update). At least one event is required; the webhook fires whenever any subscribed event occurs in the team space.
CreateWebhookInput input 8 fields: clientMutationId, modified, created, …

Field values of a new Webhook record.

Input fieldTypeDescription
clientMutationIdStringOptional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).
modifiedDateTimeLast modification time.
createdDateTimeCreation time.
insecureSslBoolean!If True, remote side ssl certificate will not be validated when delivering notifications.
optionsJSONStringParams in REST API format (snake case), to modify the content of the WebHook. You can set "entity" options of the main entity on which the event occurs. E.g. Account for events like Account.Create, Account.Update, Account.Delete.
signatureIDSignature to verify webhook (has to be UUID). When signature is set, then all webhook requests will be signed using HMAC-SHA256. This signature will be used as key and request body as message. Signature will be located in "WebHook-Signature" header.
urlString!Target URL that webhook event payloads are POSTed to.
events[EventEnum!]!Event types this webhook subscribes to (e.g. Account.Create, Lead.Update). At least one event is required; the webhook fires whenever any subscribed event occurs in the team space.
DeleteWebhookInput input clientMutationId: String, id: ID!

Id of the Webhook record to delete.

Input fieldTypeDescription
clientMutationIdStringOptional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).
idID!Unique identifier of entity.
UpdateWebhookInput input 9 fields: clientMutationId, id, modified, …

Id of a Webhook record and the field values to change.

Input fieldTypeDescription
clientMutationIdStringOptional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).
idID!Unique identifier of entity.
modifiedDateTimeLast modification time.
createdDateTimeCreation time.
insecureSslBooleanIf True, remote side ssl certificate will not be validated when delivering notifications.
optionsJSONStringParams in REST API format (snake case), to modify the content of the WebHook. You can set "entity" options of the main entity on which the event occurs. E.g. Account for events like Account.Create, Account.Update, Account.Delete.
signatureIDSignature to verify webhook (has to be UUID). When signature is set, then all webhook requests will be signed using HMAC-SHA256. This signature will be used as key and request body as message. Signature will be located in "WebHook-Signature" header.
urlStringTarget URL that webhook event payloads are POSTed to.
events[EventEnum!]Event types this webhook subscribes to (e.g. Account.Create, Lead.Update). At least one event is required; the webhook fires whenever any subscribed event occurs in the team space.
BulkUpdateWebhookPayload object result: BulkUpdateResults!

Result of the bulkUpdateWebhook mutation.

FieldTypeDescription
resultBulkUpdateResults!Ids of the created, updated and deleted records, and the items that failed.
CreateWebhookPayload object webhook: WebhookEntity, clientMutationId: String

Result of the createWebhook mutation.

FieldTypeDescription
webhookWebhookEntityThe created record.
clientMutationIdStringOptional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).
DeleteWebhookPayload object webhook: WebhookEntity, clientMutationId: String

Result of the deleteWebhook mutation.

FieldTypeDescription
webhookWebhookEntityThe deleted record.
clientMutationIdStringOptional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).
UpdateWebhookPayload object webhook: WebhookEntity, clientMutationId: String

Result of the updateWebhook mutation.

FieldTypeDescription
webhookWebhookEntityThe updated record.
clientMutationIdStringOptional client-supplied identifier passed on a mutation input and echoed back unchanged on its payload, so a client can correlate the response with its request (Relay convention).