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

# Get Scrape Status

> Get the current status of a scrape job by its ID.

## Example

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET "https://api.groweasy.io/status?scrapeId=scr_abc123xyz" \
    -H "Authorization: Bearer YOUR_API_KEY"
  ```

  ```javascript JavaScript theme={null}
  const scrapeId = 'scr_abc123xyz';

  const response = await fetch(
    `https://api.groweasy.io/status?scrapeId=${scrapeId}`,
    {
      headers: {
        'Authorization': 'Bearer YOUR_API_KEY',
      },
    }
  );

  const data = await response.json();
  console.log(data.data.status); // "completed"
  console.log(data.data.leadsFound); // 87
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      "https://api.groweasy.io/status",
      headers={"Authorization": "Bearer YOUR_API_KEY"},
      params={"scrapeId": "scr_abc123xyz"},
  )

  data = response.json()
  print(data["data"]["status"])  # "completed"
  print(data["data"]["leadsFound"])  # 87
  ```
</CodeGroup>

## Response

```json theme={null}
{
  "success": true,
  "data": {
    "scrapeId": "scr_abc123xyz",
    "status": "completed",
    "progress": 100,
    "leadsFound": 87,
    "creditsUsed": 87,
    "createdAt": "2024-01-15T10:30:00Z",
    "completedAt": "2024-01-15T10:35:00Z"
  }
}
```

## Polling for Completion

For long-running scrapes, poll the status endpoint until `status` is `completed` or `failed`:

```javascript theme={null}
async function waitForScrape(scrapeId) {
  while (true) {
    const response = await fetch(
      `https://api.groweasy.io/status?scrapeId=${scrapeId}`,
      { headers: { 'Authorization': 'Bearer YOUR_API_KEY' } }
    );
    const data = await response.json();

    if (data.data.status === 'completed') {
      return data.data;
    }
    if (data.data.status === 'failed') {
      throw new Error('Scrape failed');
    }

    // Wait 5 seconds before polling again
    await new Promise(resolve => setTimeout(resolve, 5000));
  }
}
```


## OpenAPI

````yaml GET /status
openapi: 3.1.0
info:
  title: GrowEasy API
  description: >-
    The GrowEasy API allows you to programmatically start scrapes, check status,
    manage credits, and find/verify emails.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.groweasy.io
security:
  - bearerAuth: []
paths:
  /status:
    get:
      summary: Get Scrape Status
      description: Get the current status of a scrape job by its ID.
      operationId: getScrapeStatus
      parameters:
        - name: scrapeId
          in: query
          description: The ID of the scrape job to check
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Scrape status retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScrapeStatusResponse'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Scrape not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    ScrapeStatusResponse:
      type: object
      properties:
        success:
          type: boolean
          example: true
        data:
          type: object
          properties:
            scrapeId:
              type: string
              example: scr_abc123xyz
            status:
              type: string
              enum:
                - pending
                - processing
                - completed
                - failed
              example: completed
            progress:
              type: integer
              description: Progress percentage (0-100)
              example: 100
            leadsFound:
              type: integer
              description: Number of leads found so far
              example: 87
            creditsUsed:
              type: integer
              description: Credits used for this scrape
              example: 87
            createdAt:
              type: string
              format: date-time
              example: '2024-01-15T10:30:00Z'
            completedAt:
              type: string
              format: date-time
              example: '2024-01-15T10:35:00Z'
    Error:
      type: object
      required:
        - success
        - error
      properties:
        success:
          type: boolean
          example: false
        error:
          type: object
          properties:
            code:
              type: string
              description: Error code
              example: INVALID_REQUEST
            message:
              type: string
              description: Human-readable error message
              example: The request body is missing required fields
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key authentication. Get your API key from the GrowEasy dashboard.

````