canonical: https://jentic.com/apis/layercall.com/layercall

# LayerCall API

The LayerCall API scores IP addresses, email addresses, phone numbers, domains, and device fingerprints for fraud risk, returning a risk_score from 0 to 100 and an allow, review, or block verdict. An IP check flags VPNs, proxies, Tor exit nodes, and datacenter ranges with geo and ASN context, and a single user-scoring call combines IP, email, phone, domain, and device signals for a whole signup. It also scores up to 500 values of one type in a batch, takes fraud reports and outcome labels as feedback, verifies AI agent HTTP Message Signatures, and maintains your own allow and block rules.

## For AI agents

Score signups, IPs, emails, phones, domains, and devices for fraud risk with an allow, review, or block verdict, label outcomes, and manage allow and block rules.

## Scope

Does not handle payment processing, chargeback disputes, user login, or KYC document checks. Use for risk scoring of IPs, emails, phones, domains, devices, and signups only.

## Capabilities

- Detect VPNs, proxies, Tor exit nodes, and datacenter IPs and return country, city, ASN, and ISP for an address
- Score an entire signup in one call from its ip, email, phone, domain, and device_id
- Verify and score an email address, and validate a phone number with an optional country
- Score up to 500 IPs, emails, domains, or phones of one type in a single batch request
- Feed back confirmed fraud with the report operation and label a past request_id as fraud or legit
- Verify an AI agent's HTTP Message Signature and decide whether to allow its request against your agent policy
- Create, list, bulk-import, and delete your own allow and block rules

## Use cases

### Agent-run signup screening through Jentic

An AI agent triaging new signups can send the applicant's IP, email, and phone to LayerCall's user-scoring operation and act on the verdict: approve on allow, queue for a human on review, reject on block. Through Jentic the agent finds the operation by intent and the API key is injected at call time, and a rule can keep the agent to scoring operations so it cannot rewrite your allow and block rules.

Example prompt: Call POST `/v1/score/user` with ip '185.220.101.5', email 'new.user@example.com', and phone '+14155550123', then approve the account only if verdict is 'allow'

### Signup and checkout fraud scoring

Fake accounts and fraudulent checkouts often share tells: a datacenter IP, a throwaway email, a VoIP phone number. LayerCall scores each signal separately or combines them in one user-scoring call, and the strictness parameter shifts the allow, review, and block thresholds without changing the underlying risk_score, so each flow can be tuned on its own.

Example prompt: Call GET `/v1/score/ip` with ip '203.0.113.42' and strictness 'strict', and flag the order for review if signals.is_vpn or signals.is_proxy is true

### Bulk list cleanup

Marketing lists and user exports accumulate bad addresses and numbers over time. The LayerCall batch operation takes a type of ip, email, domain, or phone and up to 500 items per request, so an existing list can be scored in a few calls and the high-risk entries removed.

Example prompt: Call POST `/v1/batch` with type 'email' and items set to the 250 addresses from the export, then return the ones whose verdict is 'block'

### Verifying AI agent traffic

Sites that accept agent traffic need to know which agent is calling rather than trusting a User-Agent string. LayerCall verifies HTTP Message Signatures (RFC 9421, Web Bot Auth) from a request's url and headers, and the authorize operation checks the request against the agent policy you set with the policy operations.

Example prompt: Call POST `/v1/agent/authorize` with the incoming request's url, method 'GET', and its signature headers, and serve the page only if the decision allows it

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/v1/score/user` | Score a whole signup |
| GET | `/v1/score/ip` | Score an IP address |
| GET | `/v1/verify/email` | Verify and score an email |
| GET | `/v1/lookup/phone` | Validate and score a phone number |
| POST | `/v1/batch` | Score up to 500 values at once |
| POST | `/v1/outcome` | Label a past score |
| POST | `/v1/verify/agent` | Verify an agent's message signature |

## Key resources

- **Scoring** — Score IPs, emails, phones, domains, devices, and whole signups, singly or in batches
- **Feedback** — Report confirmed fraud values and label past request ids as fraud or legit
- **Agent verification** — Verify agent HTTP Message Signatures, authorize agent requests, and read or replace the agent policy
- **Rules** — List, create, bulk-import, and delete allow and block rules

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 53 / 100
- **Maturity:** Foundational
- **Dimensions:**
  - Foundational Compliance: 55 / 100
  - Developer Experience & Jentic Compatibility: 68 / 100
  - AI-Readiness & Agent Experience: 31 / 100
  - Agent Usability: 94 / 100
  - Security: 55 / 100
  - AI Discoverability: 73 / 100
- **View full report:** https://jentic.com/apis/layercall.com/layercall/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring LayerCall by hand means choosing between the x-api-key header and a bearer token, handling 429 responses when the rate limit is hit, and shaping separate calls for each signal type. Through Jentic you install once, import LayerCall from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** LayerCall carries the values being scored in query strings and request bodies, so rules bound which operations your agent may call, not which IPs or emails it checks. You choose the operations it may call, so destructive ones like deleting every rule or replacing the agent policy are not included unless you add them.
- **Credential handling:** Your LayerCall API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'score a signup for fraud' or 'check if an IP is a VPN', and Jentic returns the matching LayerCall operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **MaxMind API** — IP geolocation and minFraud transaction risk scoring
- **Fingerprint API** — Browser and device identification for returning-visitor detection
- **Kickbox API** — Email address verification focused on deliverability
- **ipdata API** — IP geolocation with threat intelligence flags

## FAQ

### Is there a LayerCall MCP server?

You don't need an MCP server to give your agent the LayerCall API. Jentic connects it directly from the API Directory: import it, store your API key once, and your agent calls it. Operations are discovered on demand, so your agent's context carries no tool definitions it will not use.

### What authentication does the LayerCall API use?

Per its OpenAPI spec, LayerCall accepts your API key in the x-api-key header, or the same key as a bearer token in `Authorization: Bearer <key>`. Through Jentic, the key is stored encrypted by your own Jentic One instance and injected at execution time, so it never enters the agent's context.

### Can I score a whole signup in one call with the LayerCall API?

Yes. POST `/v1/score/user` accepts ip, email, phone, phone_country, domain, device_id, device_signals, and device_automation, and returns one risk_score with an allow, review, or block verdict. GET `/v1/score/user` takes the same core fields as query parameters.

### What are the rate limits for the LayerCall API?

The OpenAPI spec documents an x-ratelimit-limit response header of 600 requests per minute, with x-ratelimit-remaining showing what is left in the current minute, and a 429 response when you exceed it. The spec description also states a free tier of 1,000 lookups per month.

### How do I check an IP address with LayerCall through Jentic?

Install Jentic One with `curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh`, import the LayerCall API from the directory, and store your API key. Your agent then searches for 'score an IP address' and Jentic returns GET `/v1/score/ip`, which takes the address in the ip parameter. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Can I tell LayerCall when a score was wrong?

Yes. POST `/v1/outcome` takes the request_id of a past score and an outcome of fraud or legit. To flag a value directly, POST `/v1/report` takes a kind of ip, email, domain, or phone with a value or list of values.

### Can I limit what my agent is allowed to do with the LayerCall API?

Yes. For a screening assistant, write a rule that allows only POST `/v1/score/user`, GET `/v1/score/ip`, and GET `/v1/verify/email`: the agent can score signups and check IPs and emails, but cannot change your agent policy or touch your rules, and every call it makes is logged.
