# Get raw logs for a run **GET /runs/{run_id}/logs** Logs are stored at SAMPLE_REPOSITORY/LogFiles/{id}.txt and served via GCS signed URL. Returns 404 — not a broken download link — when the file is absent from both local and GCS storage. Uses cursor-based pagination; do not mix cursor and offset. ## Servers - Production: https://sampleplatform.ccextractor.org/api/v1 (Production) ## Authentication methods - Bearer auth ## Parameters ### Path parameters - **run_id** (integer) Numeric run ID ### Query parameters - **limit** (integer) Maximum number of results to return (1–100) - **cursor** (string) Opaque cursor token for cursor-based pagination. Do not mix with offset. Obtain next_cursor from the previous response's pagination object. - **level** (string) - **source** (string) - **contains** (string) ## Responses ### 200 Cursor-paginated run log lines #### 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. ### 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 Log file not found in local or GCS storage #### 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)