APIs and webhooks

Automatable by default.

A GraphQL API for every first-class platform object. Webhook events for lifecycle moments. Tenant-scoped API keys with per-key scopes. Plus the Functions primitive — your code runs inside Owlie, not alongside it.

GraphQL

Every platform object. One schema.

Owlie exposes a GraphQL schema covering every first-class platform object — identities, resources, entitlements, assignments, operations, tickets, requests. Read and mutate from automation, from your ticketing system, from your own tools. Authentication is tenant-scoped API keys or session-based for browser calls. Rate limits apply on sensitive endpoints.

Webhooks

Events that matter. Delivered.

Lifecycle events — request created, ticket approved, operation completed, drift detected — produce webhook deliveries with structured payloads. Delivery is at-least-once with idempotency keys; consumers are expected to handle that. Retries are bounded; exhausted deliveries surface in the outbox for operator investigation.

At-least-once. Bounded retries. Failures stay visible.

Webhooks vs. Functions

React from outside. Participate from inside.

Webhooks move data out of Owlie. Functions run your code inside — as an approval step, a fulfillment path, a custom admin action, or an HTTP endpoint. The two coexist. If your integration needs to participate in an approval decision or a fulfillment step, reach for a Function. If it just needs to react, reach for a webhook.