Rate Limits

Webhook Strategy (ASYNC)

Rate Limit Policy

All OEM Alerting API endpoints are subject to punitive rate limiting. Limits are applied
per source IP address within a sliding time window.

EndpointMethodRate LimitWindow
/oem-alerts-api/alertPOST100 - 50060s
/oem-alerts-api/alert/list/ticketsPOST10060s
/oem-alerts-api/alert/:correlationId/ticketPOST100 - 12060s

Rate limits may vary by environment and contract. Contact your MSPCentric
account representative for your specific allocation.


Rate Limit Response

When a rate limit is exceeded, the API returns:

  • HTTP Status: 429 Too Many Requests
  • Header: Retry-After: <seconds> -- the number of seconds until the rate
    limit window resets
  • Body:
    {
      "statusCode": 429,
      "message": "Rate limit exceeded. Retry after <seconds> seconds."
    }

Recommended Client Behavior

  1. Respect Retry-After -- Pause requests for the duration specified in the
    Retry-After header before retrying.
  2. Implement exponential backoff -- If consecutive 429 responses are received,
    increase the wait time exponentially (e.g., 1s, 2s, 4s, 8s) up to a reasonable
    maximum.
  3. Queue locally -- For high-volume alert sources, maintain a local queue and
    submit alerts at a controlled rate within your allocation.

Ingestion

Ingestion Latency

MetricTargetDescription
Acceptance Latency (p50)< 100msTime from HTTP request receipt to 201 response
Acceptance Latency (p99)< 500msIncludes validation, ticket log creation, and queue dispatch

Upon successful ingestion, the API returns:

{
  "statusCode": 201,
  "message": "Alert accepted for processing",
  "data": {
    "correlationId": "abc-123-def-456",
    "messageId": "sqs-message-id"
  }
}

The correlationId can be used to query the alert status at any point via the
/alert/:correlationId/ticket endpoint.

Durability

Accepted alerts are persisted to a durable message queue before the
201 response is returned. Messages are retained for up to 14 days in the event of
processing failures.

Failed messages are routed to a dead-letter queue after the configured retry
policy is exhausted.


Processing

Processing Time

Processing time is measured from queue ingestion to PSA ticket action completion.

MetricTargetNotes
Processing Time (p50)< 5 secondsUnder normal PSA API conditions
Processing Time (p95)< 30 secondsAccounts for PSA API variability
Processing Time (p99)< 60 secondsPeak load or degraded PSA performance

Important: Processing time is dependent on the responsiveness of the downstream
PSA system. Degradation of the PSA API may impact
processing times beyond MSPCentric's control.


Processing Throughput

Alert processing capacity scales with infrastructure. Current capacity targets:

TierThroughputDescription
StandardUp to 50,000 alerts/hrTypical deployment
High VolumeUp to 200,000 alerts/hrScaled deployment for enterprise partners

Throughput targets assume typical PSA API latency (~500ms). Actual throughput may
vary based on PSA performance and alert complexity.


5.4 Status Delivery

Status updates are delivered via the Inform system:

Delivery MethodLatencyDescription
Webhook< 5 seconds after processingHTTP POST to your registered webhook URL
SSE (Server-Sent Events)Real-timePersistent connection for immediate status updates
PollingOn-demandQuery via /oem-api/poll endpoint