Flexible input
Send a raw sentence, a partially complete object, document text, a URL or a group of records. Preserve the original input for traceability.
The Enrich API creates a clear boundary between raw application data and validated, AI-generated context. Define the fields you need, run a controlled pipeline and return predictable JSON.

A stable API contract keeps provider-specific prompt logic out of product code and gives teams one place to govern output quality.
Send a raw sentence, a partially complete object, document text, a URL or a group of records. Preserve the original input for traceability.
Name every requested enrichment. A field can be extracted, classified, summarized, normalized, scored or resolved.
Return a schema-bound object with validation status, confidence metadata, provider trace and actionable errors.
Each stage has a narrow responsibility. That makes failures easier to diagnose and quality easier to measure.
Validate a scoped API key and attach account-level limits.
Clean encoding, map aliases and identify the record type.
Resolve enrichments, schemas and provider routing policy.
Run extraction, model calls, tools and deterministic transforms.
Check the output and return data, warnings or an error object.
These static examples describe an intended interface. They do not create a live service until you connect a backend.
| Method | Endpoint | Purpose | Typical response |
|---|---|---|---|
| POST | /v1/enrich | Run a synchronous enrichment for one record. | Validated data object and execution metadata. |
| POST | /v1/enrich/batch | Create an asynchronous job for many records. | Job identifier, accepted count and status URL. |
| GET | /v1/jobs/{job_id} | Read batch progress and retrieve completed output. | Queued, running, completed or failed job state. |
| GET | /v1/schemas | List available output schemas and versions. | Schema names, versions and compatibility details. |
| POST | /v1/validate | Validate an object without rerunning enrichment. | Field-level validation results and repair hints. |
A readable request helps developers understand what the pipeline will do. A stable response makes integration predictable.
POST /v1/enrich HTTP/1.1
Host: api.enrichapi.com
Authorization: Bearer $ENRICH_API_KEY
Content-Type: application/json
Idempotency-Key: 9f42c7f7-example
{
"input": {
"company": "Example Robotics",
"website": "example.com"
},
"enrichments": [
"company_summary",
"industry",
"location",
"semantic_tags"
],
"schema": "company_profile_v1",
"routing": {
"policy": "balanced",
"fallback": true
}
}{
"request_id": "req_01JEXAMPLE",
"status": "completed",
"data": {
"company_name": "Example Robotics",
"industry": "Industrial automation",
"summary": "Software for warehouse robotics and fleet operations.",
"location": {
"city": "San Francisco",
"country": "United States"
},
"semantic_tags": ["robotics", "warehouse-ai", "fleet-operations"]
},
"validation": {
"schema": "company_profile_v1",
"valid": true,
"warnings": []
}
}AI enrichment becomes operationally useful when every request is traceable and safe to retry.
Prevent duplicate work when a client retries after a timeout or interrupted connection.
Expose remaining quota, reset timing and request cost so clients can back off gracefully.
Return a request identifier and preserve stage-level timing without logging sensitive content by default.
Separate authentication, input validation, provider failure, schema failure and quota errors.
Verify batch completion events with timestamps, replay protection and rotating secrets.
Allow additive changes while protecting clients from unexpected field or type changes.
Use these answers as an implementation checklist before connecting the static interface to a backend.
Start with one record type, one schema and a small set of fields. Then expand the pipeline after you can measure quality and failure modes.