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

# QA Agent

> Evaluate and qualify data against predefined criteria using autonomous research and structured analysis.

<Note>This endpoint is currently in beta. The API response format and behavior may change in future releases.</Note>

## Use case

Evaluate and qualify data against predefined criteria using autonomous research and structured analysis for sales outreach, CRM enrichment, or lead qualification.

## Endpoint

```http theme={null}
POST https://api.sixtyfour.ai/qa-agent
```

<Card title="API Reference" icon="code" href="/api-reference/enrichment/qa-agent-sync">
  See the full request/response schema and parameters in the API Reference.
</Card>

## Pricing

See [Credits & Pricing Guide](/guides/credits-and-pricing) for credit costs.

## Errors

For error responses (400, 403, 422, etc.), see [Handling Errors](/api-reference/errors).

## Using the `struct` field

The `struct` field controls which fields appear in the response's `structured_data`. Each key becomes a field in `structured_data`, and its value tells the agent what to find. **Only fields specified in `struct` are included in the response.**

You can pass either a plain-English description or an object with `description` and `type`:

```json theme={null}
{
  "struct": {
    "suitability_score": "Overall qualification score (0-10)",
    "final_verdict": {"description": "Clear YES/NO decision", "type": "str"}
  }
}
```

The agent uses these descriptions to guide its evaluation. Be specific — `"Overall qualification score from 0-10 based on weighted criteria"` returns better results than `"score"`.

For supported types, type resolution priority, and casting examples, see [Struct & Type Casting](/guides/struct-and-type-casting).

## Parameters

### `qualification_criteria`

Each criteria object requires:

* `criteria_name` — Unique identifier for the criteria.
* `description` — Detailed description of what to evaluate.
* `weight` — Importance multiplier (higher = more important).
* `threshold` — Optional minimum score requirement.

### `references`

Supported URL types for automatic research:

* LinkedIn member profiles (`https://linkedin.com/in/...`)
* LinkedIn company profiles (`https://linkedin.com/company/...`)
* Instagram profiles (`https://instagram.com/...`)
* General web pages

## Example usage

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST "https://api.sixtyfour.ai/qa-agent" \
    -H "x-api-key: YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "data": {
        "name": "Alex Johnson",
        "country": "United Kingdom",
        "business_type": "e-commerce seller",
        "follower_count": "2500"
      },
      "qualification_criteria": [
        {
          "criteria_name": "Physical Inventory",
          "description": "Must own and store physical products",
          "weight": 10.0,
          "threshold": 8.0
        }
      ],
      "struct": {
        "suitability_score": "Overall score (0-10)",
        "final_verdict": "YES/NO decision"
      }
    }'
  ```

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

  response = requests.post(
      "https://api.sixtyfour.ai/qa-agent",
      headers={
          "x-api-key": "YOUR_API_KEY",
          "Content-Type": "application/json"
      },
      json={
          "data": {
              "name": "Alex Johnson",
              "country": "United Kingdom",
              "business_type": "e-commerce seller",
              "follower_count": "2500"
          },
          "qualification_criteria": [
              {
                  "criteria_name": "Physical Inventory",
                  "description": "Must own and store physical products",
                  "weight": 10.0,
                  "threshold": 8.0
              }
          ],
          "struct": {
              "suitability_score": "Overall score (0-10)",
              "final_verdict": "YES/NO decision"
          }
      }
  )

  response.raise_for_status()
  results = response.json()
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("https://api.sixtyfour.ai/qa-agent", {
    method: "POST",
    headers: {
      "x-api-key": "YOUR_API_KEY",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      data: {
        name: "Alex Johnson",
        country: "United Kingdom",
        business_type: "e-commerce seller",
        follower_count: "2500"
      },
      qualification_criteria: [
        {
          criteria_name: "Physical Inventory",
          description: "Must own and store physical products",
          weight: 10.0,
          threshold: 8.0
        }
      ],
      struct: {
        suitability_score: "Overall score (0-10)",
        final_verdict: "YES/NO decision"
      }
    })
  });

  const results = await response.json();
  console.log(results);
  ```
</CodeGroup>
