> ## 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.

# Start Scrape

> Start a new scrape job with the provided filters. Returns a scrape ID that can be used to check status.

## Example

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST "https://api.groweasy.io/start" \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "filters": {
        "jobTitles": ["CEO", "Founder", "CTO"],
        "locations": ["San Francisco, CA", "New York, NY"],
        "industries": ["Technology", "SaaS"],
        "companySize": "11-50",
        "limit": 100
      },
      "webhookUrl": "https://yourapp.com/webhook"
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://api.groweasy.io/start', {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer YOUR_API_KEY',
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      filters: {
        jobTitles: ['CEO', 'Founder', 'CTO'],
        locations: ['San Francisco, CA', 'New York, NY'],
        industries: ['Technology', 'SaaS'],
        companySize: '11-50',
        limit: 100,
      },
      webhookUrl: 'https://yourapp.com/webhook',
    }),
  });

  const data = await response.json();
  console.log(data.data.scrapeId); // "scr_abc123xyz"
  ```

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

  response = requests.post(
      "https://api.groweasy.io/start",
      headers={
          "Authorization": "Bearer YOUR_API_KEY",
          "Content-Type": "application/json",
      },
      json={
          "filters": {
              "jobTitles": ["CEO", "Founder", "CTO"],
              "locations": ["San Francisco, CA", "New York, NY"],
              "industries": ["Technology", "SaaS"],
              "companySize": "11-50",
              "limit": 100,
          },
          "webhookUrl": "https://yourapp.com/webhook",
      },
  )

  data = response.json()
  print(data["data"]["scrapeId"])  # "scr_abc123xyz"
  ```
</CodeGroup>

## Response

```json theme={null}
{
  "success": true,
  "data": {
    "scrapeId": "scr_abc123xyz",
    "status": "pending",
    "estimatedCredits": 100
  }
}
```


## OpenAPI

````yaml POST /start
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:
  /start:
    post:
      summary: Start Scrape
      description: >-
        Start a new scrape job with the provided filters. Returns a scrape ID
        that can be used to check status.
      operationId: startScrape
      requestBody:
        description: Scrape configuration with filters
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StartScrapeRequest'
      responses:
        '200':
          description: Scrape started successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StartScrapeResponse'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '402':
          description: Insufficient credits
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    StartScrapeRequest:
      type: object
      required:
        - filters
      properties:
        filters:
          type: object
          description: Search filters for the scrape
          properties:
            jobTitles:
              type: array
              items:
                type: string
              description: List of job titles to target
              example:
                - CEO
                - CTO
                - Founder
            locations:
              type: array
              items:
                type: string
              description: List of locations to target
              example:
                - San Francisco, CA
                - New York, NY
            industries:
              type: array
              items:
                type: string
              description: List of industries to target
              example:
                - Technology
                - SaaS
            companySize:
              type: string
              description: Company size range
              example: 11-50
            limit:
              type: integer
              description: Maximum number of leads to scrape
              example: 100
        webhookUrl:
          type: string
          format: uri
          description: Optional webhook URL to receive scrape completion notification
    StartScrapeResponse:
      type: object
      properties:
        success:
          type: boolean
          example: true
        data:
          type: object
          properties:
            scrapeId:
              type: string
              description: Unique identifier for the scrape job
              example: scr_abc123xyz
            status:
              type: string
              enum:
                - pending
                - processing
                - completed
                - failed
              example: pending
            estimatedCredits:
              type: integer
              description: Estimated credits to be used
              example: 100
    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.

````