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

# API Overview

> Reference for the currently available GTMAPIs validation API

# API Reference

GTMAPIs currently exposes Email Validation and Premium Catch-All Recovery APIs for high-volume GTM workflows. Other GTM data products are on the roadmap, but they are not documented as generally available public APIs yet.

## Base URL

```text theme={null}
https://api.gtmapis.com
```

Public API examples use paths rooted at `/v1`, such as `https://api.gtmapis.com/v1/validate`.

## Authentication

Send your API key in the `X-API-Key` header:

```bash theme={null}
X-API-Key: gtm_test_1234567890abcdef1234567890abcdef
```

See [Authentication](/authentication) for key format and environment guidance.

## Available Now

<CardGroup cols={2}>
  <Card title="OpenAPI Spec" icon="file-code" href="/api-reference/openapi">
    Machine-readable OpenAPI 3.1 reference for available-now public endpoints.
  </Card>

  <Card title="Single Validation" icon="envelope" href="/api-reference/validate-single">
    `POST /v1/validate`

    Validate one email address with B2B quality signals and credit charging.
  </Card>

  <Card title="Bulk Validation" icon="envelopes-bulk" href="/api-reference/validate-bulk">
    `POST /v1/validate/bulk`

    Validate up to 100 emails in one synchronous request.
  </Card>

  <Card title="Async Validation Jobs" icon="clock" href="/api-reference/validate-async">
    `POST /v1/validate/batch`

    Queue larger validation jobs, poll status, and retrieve signed result-download URLs.
  </Card>

  <Card title="Credit Balance" icon="coins" href="/api-reference/credits">
    `GET /v1/credits`

    Read the current Credit Ledger balance for the API key account.
  </Card>

  <Card title="Premium Catch-All Recovery" icon="rotate" href="/guides/catch-all-recovery-vs-competitors">
    `POST /v1/csv/jobs/{id}/recover-catchalls`

    Run opt-in recovery for risky catch-all rows in a completed validation job.
  </Card>
</CardGroup>

## Dashboard Workflows

Dashboard CSV upload, API key management, billing, and account settings remain dashboard workflows. Public API integrations can also create asynchronous validation jobs and inspect credit balance through the endpoints above.

<CardGroup cols={2}>
  <Card title="CSV Uploads" icon="file-csv" href="/guides/csv-upload">
    Upload CSVs from the dashboard and process validation jobs asynchronously.
  </Card>

  <Card title="API Integration" icon="code" href="/guides/api-integration">
    Use the validation API from production systems, scripts, and GTM workflows.
  </Card>
</CardGroup>

## Coming Later

Social intelligence, ad intelligence, company intelligence, email finder, people data, and prospecting APIs are not part of the available-now public API catalog. If you see an old or experimental reference to one of those products, treat it as future or gated surface until it appears in this overview and the public docs navigation.

## First Request

```bash theme={null}
curl -X POST https://api.gtmapis.com/v1/validate \
  -H "Content-Type: application/json" \
  -H "X-API-Key: gtm_test_1234567890abcdef1234567890abcdef" \
  -d '{"email":"john@company.com"}'
```

```json theme={null}
{
  "email": "john@company.com",
  "result": "valid",
  "syntax_valid": true,
  "dns_valid": true,
  "smtp_valid": true,
  "is_catchall": false,
  "is_role_based": false,
  "b2b_outbound_quality": "high",
  "b2b_quality": "high",
  "credits_charged": 1,
  "charge_reason": "Valid personal email with high B2B outbound quality"
}
```

## Credit Charging

One credit equals one High-Value Validation: a valid personal email that is not role-based, catch-all, invalid, risky, or unknown.

| Result                 | B2B quality         | Credits charged |
| ---------------------- | ------------------- | --------------- |
| `valid` personal email | `high`              | 1               |
| `valid_role_based`     | `low`               | 0               |
| `risky`                | `none` or `unknown` | 0               |
| `invalid`              | `none`              | 0               |
| `unknown`              | `unknown`           | 0               |

Standard catch-all detection returns `risky` and consumes 0 standard validation credits. Premium Catch-All Recovery is separate and opt-in; see [Catch-all detection vs recovery](/concepts/catch-all-detection-vs-recovery).

## Operational Endpoints

<CardGroup cols={2}>
  <Card title="Health Checks" icon="heart-pulse" href="/api-reference/health-checks">
    Check API liveness, readiness, and service health.
  </Card>

  <Card title="Rate Limits" icon="gauge" href="/guides/rate-limits">
    Understand request limits and retry behavior.
  </Card>
</CardGroup>
