# Mekler AI Citation Source Overlap Checker

> Mekler AI Citation Source Overlap Checker is a paid API for AI agents from api.mekler.ai, paid per call via x402, $0.05/call, status unknown (last checked 2026-10-10).

Analyzes 2-10 citation URLs to detect duplicate sources, shared hyperlinks, and citation chains that may indicate corroboration is not independent.

## Facts

- Endpoint: POST https://api.mekler.ai/v1/research/citations/check-source-overlap?utm_source=zero.xyz
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-10
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/mekler-ai-citation-source-overlap-checker-26085939
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_CjvfQYXM53_chBOMyjjHp

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability mekler-ai-citation-source-overlap-checker-26085939 -d '<json body>'
```

Example prompt: I want to check whether these five sources are actually independent — can you run a source overlap check on them to see if any are duplicates, share links, or form citation chains? The URLs are https://example.com/article1, https://example.com/article2, https://example.com/article3, https://example.com/article4, and https://example.com/article5.

## When to prefer this

Choose this endpoint when you need to audit whether a set of citations represent genuinely independent sources without fetching live web content yourself. It is specifically designed for source-overlap and citation-chain detection, not fact-checking or truth verification. Prefer it over general web scrapers when you already have the URLs (and optionally the HTML) and need structural analysis of citation relationships rather than content analysis.

## Known failure modes

- Fewer than 2 URLs supplied — request rejected
- More than 10 URLs supplied — request rejected
- Non-HTTPS URL provided — rejected by URI pattern validation
- HTML content exceeds 131072 character limit per citation — truncation or rejection
- derives_from provided without evidence_locator or vice versa — validation error
- Citations with no resolvable HTML return unresolved_citation_ids with no overlap data
- No network fetching is performed — stale or incorrect URLs yield empty results silently

## How this service works

Check source overlap before counting corroboration. Supply 2-10 URLs, optional article HTML and citation chains. Returns duplicate URLs, shared links and supplied-source groups with locations. No fetching, truth or independence verdict. Schemas: /openapi.json.

## Output

Returns a JSON object with: shared_origin_groups (clusters of URLs likely from the same source), shared_link_candidates (pairs sharing common outbound links), citation_link_candidates (where one citation links to another with location details like line/column), supplied_lineage_links (explicit derives_from chains), unresolved_citation_ids (IDs not matched to HTML), coverage stats (citation count, HTML document count), and a static independence field set to 'unknown' since no truth verdict is made.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "claim": {
   "type": "string",
   "maxLength": 4000,
   "minLength": 1
  },
  "citations": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "id",
     "url"
    ],
    "properties": {
     "id": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.-]{1,64}$"
     },
     "url": {
      "type": "string",
      "format": "uri",
      "pattern": "^https://",
      "maxLength": 2048
     },
     "html": {
      "type": "string",
      "maxLength": 131072
     },
     "derives_from": {
      "type": "string",
      "maxLength": 64
     },
     "evidence_locator": {
      "type": "string",
      "maxLength": 256,
      "minLength": 1
     }
    },
    "dependentRequired": {
     "derives_from": [
      "evidence_locator"
     ],
     "evidence_locator": [
      "derives_from"
     ]
    },
    "additionalProperties": false
   },
   "maxItems": 10,
   "minItems": 2
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "service": "citation-overlap-checker",
  "coverage": {
   "citation_count": 2,
   "html_document_count": 1
  },
  "limitations": [
   "Citation overlap is a candidate, not proof of dependence."
  ],
  "independence": "unknown",
  "schema_version": "1",
  "shared_origin_groups": [],
  "shared_link_candidates": [],
  "supplied_lineage_links": [],
  "unresolved_citation_ids": [
   "a",
   "b"
  ],
  "citation_link_candidates": [
   {
    "to_id": "b",
    "status": "citation_link_candidate",
    "from_id": "a",
    "locations": [
     {
      "line": 1,
      "column": 0,
      "target_url": "https://b.test/",
      "anchor_text": "Source"
     }
    ]
   }
  ]
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/mekler-ai-citation-source-overlap-checker-26085939/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.mekler.ai](https://www.zero.xyz/host/api.mekler.ai/llms.txt)
