Recuro.

HTTP Status Codes

Look up any status code. Understand what it means, when to retry, and common causes.

Dealing with failed HTTP requests?

Recuro retries failed deliveries automatically based on status codes and configurable retry policies.

Get started free

HTTP status codes in the context of webhooks and background jobs

Every HTTP response includes a three-digit status code that tells the client what happened. When you are building webhook endpoints or scheduling background HTTP jobs, understanding these codes is critical — they determine whether a delivery is treated as successful, whether a retry should be attempted, and how your monitoring dashboards report health.

A 2xx response signals success. Most webhook senders and job schedulers treat any code in the 200-299 range as a successful delivery. If your endpoint returns a 200 OK, the sender marks the delivery as complete and moves on. Returning 204 No Content is also common for webhooks where the response body is not needed.

A 4xx response signals a client error — something is wrong with the request itself. These are generally not retried because sending the same malformed request again will produce the same error. The exceptions are 408 Request Timeout and 429 Too Many Requests, which indicate temporary conditions that may resolve on their own.

A 5xx response signals a server error — your endpoint encountered an internal problem. These are the primary candidates for automatic retries. A 502 Bad Gateway or 503 Service Unavailable often resolves within seconds as load balancers recover or deployments finish.

Recuro uses these conventions when executing scheduled HTTP jobs. A 2xx response is logged as a success. A 5xx, 408, or 429 triggers automatic retries with exponential backoff. A 4xx (other than 408/429) is logged as a permanent failure that needs manual attention. You can configure alert thresholds so you are notified after consecutive failures — whether by webhook, email, or Slack.

Frequently Asked Questions

What status code should my webhook endpoint return?

Your webhook endpoint should return a 200 OK or 204 No Content to indicate successful receipt. Some systems also accept any 2xx status code. Avoid returning 3xx redirects, as many webhook senders will not follow them. If your endpoint encounters an error, return a 5xx status code so the sender knows to retry.

Which HTTP status codes are retryable?

Generally, 5xx server errors (500, 502, 503, 504) and 408 Request Timeout are safe to retry, as they indicate temporary server-side issues. 429 Too Many Requests is also retryable after respecting the Retry-After header. Client errors (4xx) other than 408 and 429 should not be retried without fixing the request first, as the same request will produce the same error.

What is the difference between 401 and 403?

401 Unauthorized means the request lacks valid authentication credentials — the server does not know who you are. You need to provide or fix your API key, token, or credentials. 403 Forbidden means the server knows who you are but you do not have permission to access the resource. Authentication is valid, but authorization is denied.

⌘Enter to run  ·  ⌘⇧C to copy

Next steps