Webhooks

Instead of polling for status changes, you can receive notifications when important events occur. Glossi will send HTTP POST requests to your configured endpoint.

Available Events

Event
Description

model.processed

Model upload processing completed successfully

model.failed

Model processing failed

project.created

A project was created

job.complete

A job workflow completed successfully

job.failed

A job workflow failed

render.complete

A render completed successfully

render.failed

A render failed

Configure Your Webhook

You can create or update your webhook configuration using the API.

Create/Update Webhook

Endpoint:

PUT https://api.glossi.app/api/v1/webhooks

Headers:

Header
Value

X-API-Key

Your API key

Content-Type

application/json

Body:

Response:

circle-exclamation

Get Current Webhook

Endpoint:

Headers:

Header
Value

X-API-Key

Your API key

Response:

Delete Webhook

Endpoint:

Headers:

Header
Value

X-API-Key

Your API key

Webhook Payloads

All webhooks follow this format:

model.processed

Sent when a model finishes processing and is ready to use.

model.failed

Sent when model processing fails.

project.created

Sent when a project is created.

job.complete

Sent when a Jobs API workflow completes successfully.

job.failed

Sent when a Jobs API workflow fails.

render.complete

Sent when a render job completes successfully.

render.failed

Sent when a render job fails.

Verify Webhook Signatures

All webhook requests include an X-Glossi-Signature header. Always verify this signature to ensure the request came from Glossi and hasn't been tampered with.

The signature is an HMAC-SHA256 hash of the request body using your webhook secret.

JavaScript/Node.js

Python

PHP

circle-info

Always verify the signature on incoming webhooks to ensure authenticity and integrity.

Retry Behavior

If your webhook endpoint returns a non-2xx status code, Glossi will retry the delivery:

  • Retry attempts: 3

  • Retry delay: Exponential backoff (1 min, 5 min, 30 min)

  • Timeout: 30 seconds per request

After all retries fail, the failureCount on your webhook configuration will increment. You can check this via GET /api/v1/webhooks.

Best Practices

  • Always verify signatures — Never trust webhook data without verifying the signature

  • Respond quickly — Return a 200 status within 5 seconds; process asynchronously if needed

  • Handle duplicates — Webhooks may be delivered more than once; use the jobId or event data to deduplicate

  • Use HTTPS — Always use HTTPS endpoints in production

  • Log everything — Keep logs of received webhooks for debugging

Testing Webhooks

For local development, use a tunneling service like ngrokarrow-up-right to expose your local server:

You can also use webhook testing services like webhook.sitearrow-up-right to inspect payloads without writing code.

Last updated

Was this helpful?