Skip to main content

REST API · v3 · AI-ready

Build with the Agility Credit API

Credit reports, fraud and identity checks, compliant applications, OFAC and MLA screening, and income verification, through one REST API with JSON requests and Bearer-key authentication.

NewConnect your AI assistant to the docs with our MCP server and llms.txt →

New AI-ready docs

Build with your AI assistant​

Connect Claude, Cursor or VS Code to the Agility Credit docs, or give any assistant the full reference. It reads the same endpoints, schemas and error codes you do, so the code it writes matches the real API.

  • MCP server

    Claude, Cursor and VS Code look up endpoints, headers, schemas and error codes while you code. Read-only, no API key needed.

  • llms.txt and Markdown docs

    Every page as Markdown at its URL + .md, an llms.txt index, and the whole reference in one file for any assistant.

  • OpenAPI spec and Postman

    Generate a client from the spec, or send your first request from a ready-made Postman collection.

Claude Code · one-time setup
$ claude mcp add agility-credit-docs -- npx -y @agilitycredit/docs-mcp
Then just ask
Which headers does POST /credit-reports need?
Write a Python function that runs an OFAC check.
What does a 409 from the Prefill endpoints mean?
Any assistant: apidocs.agilitycredit.com/llms-full.txtOpen

Quickstart

Your first credit inquiry in three steps​

Get a key, make a prequal (soft) inquiry in the UAT environment, and read the response.

  1. 1

    Get an API key

    Agility Credit sets up your account and gives you your tenant ID and your first user ID. Then log in to the Agility portal and go to Settings → Account → API Keys. Click Create API key and give it a descriptive name.

    UAT and production use separate API keys: create one in each environment's portal.

    No account yet? Email setup@agilitycredit.com.

    Shell
    export AGC_API_KEY="<your API key>"
    export AGC_TENANT_ID="<your tenant ID>"
    export AGC_USER_ID="<your user ID>"
  2. 2

    Make a credit inquiry

    Send POST /credit-reports with the bureau, the pull type and the applicant. A prequal pull doesn't need SSN or date of birth; a hard pull does.

    Every POST takes a fresh Idempotency-Key. We recommend a GUID.

    The applicant values here are placeholders. For UAT, use the test identities Agility Credit provides with your credentials.

    Prefer Postman? Import the collection and set apiKey, tenantId and userId in its variables.

    Download Postman collectionMake an Inquiry reference →
    POST /credit-reports
    curl -X POST https://api.agc-dev.com/v3/credit-reports \
    -H "Authorization: Bearer $AGC_API_KEY" \
    -H "Agc-Tenant-Id: $AGC_TENANT_ID" \
    -H "Agc-User-Id: $AGC_USER_ID" \
    -H "Idempotency-Key: $(uuidgen)" \
    -H "Content-Type: application/json" \
    -d '{
    "bureau_id": "experian",
    "pull_type": "prequal",
    "report_format": "json",
    "applicant_main": {
    "first_name": "JANE",
    "last_name": "SAMPLE",
    "address": "123 MAIN ST",
    "city": "ANYTOWN",
    "state": "TX",
    "zip": "75001",
    "income": { "gross_monthly": 5000 }
    }
    }'
  3. 3

    Read the response

    A 200 returns the report. body_type tells you which shape you got: inquiry, inquiry_joint, inquiry_multiple_formats, inquiry_with_bureau_error or compliance.

    Keep the Agc-Applicant-Id header. Pass it on later calls (OFAC, MLA, documents) to attach them to the same applicant, and fetch the report again any time with GET /credit-reports/{id}.

    Get a Report reference →
    Response (abridged)
    HTTP/1.1 200 OK
    Agc-Applicant-Id: <applicant id>
    Agc-Report-Id: <report id>
    Agc-Api-Version: <version>
    X-Rate-Limit: <limit>
    X-Rate-Limit-Remaining: <remaining>

    {
    "body_type": "inquiry",
    "metadata": {
    "report_id": "…",
    "transaction_id": "…",
    "bureau_id": "experian",
    "pull_type": "prequal",
    "report_format": "json"
    },
    "applicant_information": { … },
    "credit_scores": [ … ],
    "credit_summary": { … },
    "tradelines": [ … ],
    "inquiries": [ … ],
    "public_records": [ … ]
    }

Explore the API

Pick a service family​

Each family matches a service on agilitycredit.com. Open one to see its endpoints, schemas and code samples.

Platform basics

How the API works

What every integration needs: authentication, environments, errors, rate limits and versioning.

Authentication​

Send your API key as a Bearer token on every request. Most endpoints also identify the tenant and the user making the call.

HeaderWhenValue
AuthorizationEvery requestBearer <api key>
Agc-Tenant-IdMost endpointsThe tenant ID provided by Agility Credit.
Agc-User-IdMost endpointsThe ID of the user making the request.
Idempotency-KeyEvery POSTA unique key per request. We recommend a GUID.
Agc-Applicant-IdOptional on most calls; required to read compliance records and documentsAttaches the call to an existing applicant. Leave it out and a new applicant is created.

Each endpoint's page lists exactly which headers it requires.

Idempotency keys are kept for 5 minutes. If you resend a request with the same Idempotency-Key within that time, you get the cached response from the first request instead of a second call.

Environments​

Build and test against UAT, then switch the base URL and API key to production. The API reference's "try it" panel lets you pick either server.

UAT is a private test environment: Agility Credit provides your UAT credentials. UAT calls are not billed and don't reach live credit bureaus.

UAT · test
API base URL
https://api.agc-dev.com/v3
Portal
app.agc-dev.com
Production · live
API base URL
https://api.agilitycredit.net/v3
Portal
app.agilitycredit.net

Errors​

We use standard HTTP status codes. 2xx means success, 4xx means something in the request needs fixing, and 5xx means a problem on our side. Each endpoint's page lists the codes it can return.

StatusMeaningWhat to do
400Bad RequestThe request failed validation. The error field says which field and why.
401UnauthorizedThe API key is missing, wrong or no longer active.
403ForbiddenThe key is valid but not allowed to do this, for example the product is not enabled for your tenant.
404Not foundThe resource or session doesn't exist (tenants, DL Verify sessions).
409ConflictA request with the same Idempotency-Key is still in progress, a step was called out of order, or a DL Verify selfie is still processing.
410GoneA prefill session expired. Start again with POST /prefill/auth.
429Too Many RequestsYou've used up your rate limit for the current 5-minute window.
500Server errorSomething went wrong on our side.
502Verification errorDL Verify couldn't process the session; retry with the same session_id.
400 Bad Request
{
"status": "Bad Request - Invalid Parameters",
"error": "Failed schema validation. Error: data.pull_type must be one of ['prequal', 'hard'] …"
}
401 · 429 · 500
{ "message": "Unauthorized" }
{ "error": "Too Many Requests" }
{ "message": "Agility Server Error" }

Rate limits​

You set your rate limit in your tenant profile, under the API key settings. It's counted over a 5-minute window, and responses carry two headers so you can pace your calls:

  • X-Rate-Limit: your current limit for the window.
  • X-Rate-Limit-Remaining: calls left in the window.

Going over returns 429 Too Many Requests. Wait for the window to reset, then retry.

Versioning​

The major version is in the URL (/v3). We release a new major version only for breaking changes; new features and backward-compatible updates ship as minor and patch versions, reported in the Agc-Api-Version response header.

Docs for earlier releases (3.0.1 and 2.0.3) are in the version menu at the top of the page.

Webhooks​

Instead of polling, subscribe to events from the portal under Settings → Account → Webhooks. Each delivery carries an event_id that stays the same across retries, so you can use it to skip duplicates. Add a secret to have deliveries signed with HMAC in the X-Agc-Signature header.

Need access or help with an integration?

Our team sets up tenants, products and API access.