> ## Documentation Index
> Fetch the complete documentation index at: https://docs.erynoa.com/llms.txt
> Use this file to discover all available pages before exploring further.

# How ErynoaGroup works

> Learn how ErynoaGroup processes API requests, delivers webhooks, and keeps your integration reliable with retries, versioning, and sandbox isolation.

Understanding how ErynoaGroup is structured from your perspective as a user helps you build more reliable integrations. This page covers the request lifecycle, webhook delivery model, and API versioning.

## Request lifecycle

Every API request you send to ErynoaGroup goes through the following steps:

<Steps>
  <Step title="Authentication">
    Your API key is validated. If the key is missing, expired, or lacks the required scope, the request is rejected with a `401` or `403` error immediately.
  </Step>

  <Step title="Rate limit check">
    Your remaining request quota is checked. If you've exceeded your limit, a `429` response is returned with a `Retry-After` header indicating when you can try again.
  </Step>

  <Step title="Request processing">
    ErynoaGroup processes your request — creating, reading, updating, or deleting the resource you specified.
  </Step>

  <Step title="Response">
    A structured JSON response is returned. Successful operations return `2xx` status codes; errors return `4xx` or `5xx` with a descriptive error object.
  </Step>
</Steps>

## Webhook delivery

When an event occurs in ErynoaGroup that matches your webhook subscription, the platform:

1. Constructs a JSON payload describing the event
2. Signs the payload with your webhook secret using HMAC-SHA256
3. Sends an HTTP POST to your configured endpoint
4. Waits up to 10 seconds for a `2xx` response
5. Retries failed deliveries up to 5 times with exponential backoff (1s, 2s, 4s, 8s, 16s)

<Info>
  ErynoaGroup considers any `2xx` response a successful delivery. Return a `200 OK` immediately and process the event asynchronously to avoid timeout failures.
</Info>

## API versioning

All endpoints are versioned under `/v1/`. ErynoaGroup maintains backward compatibility within a major version — new fields may be added to responses, but existing fields will not be removed or renamed without advance notice.

When a breaking change is necessary, a new version (e.g., `/v2/`) is introduced alongside the existing version, with a migration guide and a deprecation timeline.

## Idempotency

For `POST` requests that create or modify resources, you can supply an `Idempotency-Key` header. If ErynoaGroup receives two requests with the same key within 24 hours, the second request returns the cached result of the first — preventing duplicate operations.

```bash theme={null}
curl -X POST https://api.erynoa.group/v1/resources \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Idempotency-Key: my-unique-operation-id-123" \
  -H "Content-Type: application/json" \
  -d '{"name": "My Resource"}'
```

## Data retention

* API logs are retained for 30 days
* Webhook delivery logs are retained for 30 days
* Resource data is retained as long as your account is active
