Support

View as Markdown

Need help? The ApexVerify team is here. Find the right channel below — whether you have a billing question, a technical integration issue, or just want to report a bug.


Contact

Response times: We aim to respond to all support emails within 1 business day. For production-impacting issues, please include “URGENT” in the subject line to escalate priority handling.


Frequently Asked Questions

ApexVerify verifies two types of contact data:

  • Email addresses — We run syntax validation, domain/MX record checks, SMTP probing, and flag disposable, role-based, free-provider, and catch-all addresses.
  • Phone numbers — We identify number type (mobile, landline, VoIP, toll-free, etc.), check live network status, detect porting, and identify the current operator via HLR lookup.

Both modes are available for batch processing (file upload) and real-time unit verification (single record via API).

Credits are consumed per verified record:

  • 1 email credit per email address verified
  • 1 phone credit per phone number verified

Credits are deducted at the time verification launches, not at upload. If a batch uses cached results (account cache or global cache), you receive a 50% credit refund for those cache-hit records.

Check your current balance at any time with GET /v1/account/credits.

Both caches reduce cost on repeat verifications by reusing prior results:

CacheWhat it usesCredit refundPrivacy
Account cacheYour own previous results50%Private — only your data
Global cacheAnonymized results from all accounts50%Fully anonymized — no PII exposed

You can configure use_account_cache and use_global_cache on each batch via PUT /v1/batch/{uuid}. Both are enabled by default and checked in order: account cache first, then global cache. You can also set max_account_cache_backoff and max_global_cache_backoff (1–180 days) to control how far back the system looks.

Batch uploads accept a plain .TXT file with one email or phone number per line, UTF-8 encoded. No headers, no commas, no CSV — just raw values.

Example for email:

alice@example.com
bob@company.org
carol@domain.net

Example for phone (E.164 format recommended):

+6591234567
+447911123456
+12125551234

The file is uploaded via POST /v1/batch as multipart/form-data. Maximum file size and row limits are shown in the dashboard.

Parsing and parameter configuration are intentionally decoupled so you can iterate freely:

  1. Update parameters at any time using PUT /v1/batch/{uuid}
  2. Trigger a re-parse by calling PATCH /v1/batch/{uuid} again

You can repeat this cycle as many times as needed — there is no limit on re-parses before a batch is launched. The PATCH endpoint is idempotent and safe to call multiple times. See the API Verification Workflow guide for the full step-by-step.

Batch status is returned by GET /v1/batch/{uuid} and GET /v1/batch/{uuid}/details. Here are all possible values:

StatusMeaningNext action
parsing_contentFile is being parsed and preparedWait — poll again in a few seconds
internal_errorA system error occurred during parsingContact support with the batch_uuid
ready_for_verificationBatch is parsed and ready to launchCall POST /v1/batch/{uuid} to start
verification_ongoingVerification is runningPoll GET /v1/batch/{uuid} until done
verification_doneVerification complete, results availableExport via GET /v1/batch/{uuid}/export

Once a batch reaches verification_done, call:

1GET /v1/batch/{batch_uuid}/export?format=xlsx
2GET /v1/batch/{batch_uuid}/export?format=json
  • xlsx — Returns a binary Excel file, matching the layout from the web dashboard. Download with curl -o results.xlsx.
  • json — Returns a JSON object keyed by email/phone, each with full result fields (valid, wrong, quality, is_disposable, etc.).

You can also include include_details=true and include_statistics=true in the query string (both default to true) to control what sections appear in the JSON export.

All API key management happens in the Dashboard:

  1. Log in at app.apexverify.com
  2. Navigate to Settings → API Keys
  3. Click Generate New Key to create a new key
  4. To rotate, generate a new key first, update your integration, then revoke the old one

For a full walkthrough, see Creating Additional API Keys.