# Get regression test result history for a sample across runs **GET /samples/{sample_id}/history** Use failure_signature for flake detection: a stable signature across multiple runs on different commits indicates a genuine regression, not infrastructure noise. ## Servers - Production: https://sampleplatform.ccextractor.org/api/v1 (Production) ## Authentication methods - Bearer auth ## Parameters ### Path parameters - **sample_id** (integer) Numeric sample or regression result ID ### Query parameters - **limit** (integer) Maximum number of results to return (1–100) - **offset** (integer) Number of results to skip for pagination - **status** (string) Normalized run status. Derived from TestProgress rows and TestResult outcomes. The underlying TestStatus model stores only preparation, testing, completed, and canceled (where canceled covers both canceled and error). This enum is the normalized API contract. - **branch** (string) - **platform** (string) - **created_after** (string(date-time)) ISO 8601 datetime. Returns runs created after this time. - **created_before** (string(date-time)) ISO 8601 datetime. Returns runs created before this time. ## Responses ### 200 Paginated sample history #### Body: application/json (object) - **data** (array) - **pagination** (object) ### 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. ### 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. ### 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)