> ## Documentation Index
> Fetch the complete documentation index at: https://docs.spidra.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Retry a crawl page

> Run a crawl's extraction again on one page, for example when it came back empty.

Runs the crawl's instruction or schema again on one saved page and returns the new data straight away. It doesn't visit the site and costs only the AI tokens. Get `pageId` from [GET /crawl/\{jobId}/pages](https://docs.spidra.io/api-reference/crawling/crawl-pages.md).

## Request

```bash theme={null}
curl -X POST https://api.spidra.io/api/crawl/e303fb87-846e-4a30-8aa5-bfca457a5357/retry/17938855-3664-48c4-8140-4b05d16a037f \
  -H "Authorization: Bearer $SPIDRA_API_KEY"
```

## Response

```json theme={null}
{
  "success": true,
  "data": { "price": 47.82, "title": "Sharp Objects", "in_stock": true },
  "tokensUsed": 940,
  "creditsUsed": 1,
  "message": "Page transformation retried successfully"
}
```


## OpenAPI

````yaml POST /crawl/{jobId}/retry/{pageId}
openapi: 3.1.0
info:
  title: Spidra API
  version: 1.0.0
  description: >-
    Public API endpoints for web scraping via Spidra. Authenticate with
    `Authorization: Bearer YOUR_API_KEY`.
servers:
  - url: https://api.spidra.io/api
security:
  - BearerAuth: []
  - ApiKeyAuth: []
paths:
  /crawl/{jobId}/retry/{pageId}:
    post:
      tags:
        - Crawling
      summary: Retry Page Transformation
      description: >-
        Re-run the AI extraction step on a single page from an existing crawl
        job. The original crawled HTML and markdown content are reused from
        storage so no additional crawling occurs. Only AI token credits are
        charged. This is useful when a page failed to extract correctly or when
        you want to refine the output for a specific page.
      parameters:
        - name: jobId
          in: path
          required: true
          schema:
            type: string
          description: The ID of the crawl job that contains the page
        - name: pageId
          in: path
          required: true
          schema:
            type: string
          description: >-
            The ID of the page to retry. Retrieve page IDs from GET
            /crawl/{jobId}/pages
      responses:
        '200':
          description: Transformation completed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    description: >-
                      The newly extracted data for this page. Shape depends on
                      your transform instruction.
                    type:
                      - object
                      - string
                  tokensUsed:
                    type: integer
                    description: Total tokens consumed by this retry
                  creditsUsed:
                    type: integer
                    description: Credits deducted from your account for this retry
                  message:
                    type: string
              example:
                success: true
                data:
                  title: Product Name
                  price: 49.99
                  inStock: true
                tokensUsed: 1240
                creditsUsed: 2
                message: Page transformation retried successfully
        '400':
          description: No content available for this page
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: error
                message: >-
                  No content available for this page (missing both markdown and
                  HTML)
        '401':
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: error
                message: Access token invalid or expired
        '403':
          description: Credit limit exceeded or not authorized to access this job
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Job or page not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: error
                message: Page not found
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        status:
          type: string
          enum:
            - error
        message:
          type: string
      required:
        - status
        - message
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.