# Create a new run copied from an existing run **POST /runs/{run_id}/retry** Creates a NEW run record with the same configuration as the source run. The original run and all its results are preserved. WARNING: Do NOT use the legacy restart_test route internally — it destructively deletes TestResult and TestProgress rows for the existing run_id. This endpoint always creates a new run_id. new_run_id in the response is the ID of the newly created run. ## Servers - Production: https://sampleplatform.ccextractor.org/api/v1 (Production) ## Authentication methods - Bearer auth ## Parameters ### Path parameters - **run_id** (integer) Numeric run ID ### Body: application/json (object) - **failed_only** (boolean) If true, only re-run regression tests that failed in the source run. If false (default), re-run the full test set. - **reason** (string) ## Responses ### 202 Retry run queued. new_run_id is the ID of the new run. #### Body: application/json (object) - **run_id** (integer) ID of the source run (for cancel) or original run (for retry). - **new_run_id** (integer | null) Set on retry actions only. ID of the newly created run. The original run is always preserved. - **action** (string) - **status** (string) no_op is returned when canceling an already-terminal run. - **message** (string) ### 401 Missing, expired, or invalid bearer token #### Body: application/json (object) - **code** (string) Machine-readable error code (snake_case) - **message** (string) Human-readable error summary - **details** (object) Structured context for the error. Always an object, never null. Empty object {} when no additional detail is available. ### 403 Token is valid but lacks the required scope or role #### Body: application/json (object) - **code** (string) Machine-readable error code (snake_case) - **message** (string) Human-readable error summary - **details** (object) Structured context for the error. Always an object, never null. Empty object {} when no additional detail is available. ### 404 Resource not found #### Body: application/json (object) - **code** (string) Machine-readable error code (snake_case) - **message** (string) Human-readable error summary - **details** (object) Structured context for the error. Always an object, never null. Empty object {} when no additional detail is available. ### 422 Request is valid JSON but semantically invalid #### Body: application/json (object) - **code** (string) Machine-readable error code (snake_case) - **message** (string) Human-readable error summary - **details** (object) Structured context for the error. Always an object, never null. Empty object {} when no additional detail is available. ### 429 Too many requests. Retry after the indicated number of seconds. #### Headers - **Retry-After** (integer) Seconds to wait before retrying - **X-RateLimit-Limit** () Maximum requests allowed in the current window - **X-RateLimit-Remaining** () Requests remaining in the current window - **X-RateLimit-Reset** () Unix timestamp when the rate limit window resets #### Body: application/json (object) - **code** (string) Machine-readable error code (snake_case) - **message** (string) Human-readable error summary - **details** (object) Structured context for the error. Always an object, never null. Empty object {} when no additional detail is available. ### default Unexpected server error #### Body: application/json (object) - **code** (string) Machine-readable error code (snake_case) - **message** (string) Human-readable error summary - **details** (object) Structured context for the error. Always an object, never null. Empty object {} when no additional detail is available. [Powered by Bump.sh](https://bump.sh)