API & developers

Everything on the website is also an API. Base URL: https://api.linesverify.com. Issuers get an API key after a short identity review; verification reads are open.

1. Get your issuer API key

Create an issuer account - it starts as PENDING while LinesVerify verifies your identity, then registration unlocks. The key is shown once; store it safely. You can also apply on WhatsApp: message +91 92740 70490 and reply REGISTER.

POST/api/issuers/register
curl -X POST https://api.linesverify.com/api/issuers/register \
  -H "content-type: application/json" \
  -d '{"name":"OM Enterprise","email":"you@company.com","phone":"+91...",
       "address":"Principal place of business","gstin":"23ABCDE1234F1Z5"}'

# 201 -> { "issuer_id": "iss_...", "api_key": "lvk_...", "status": "pending" }
Or create it in the browser

2. Register a document (issuers)

Approved issuers stamp each document they issue. You get back the LV-ID, verify link, QR image and the SHA-256 fingerprint.

POST/api/docs/registerheader: x-api-key
curl -X POST https://api.linesverify.com/api/docs/register \
  -H "x-api-key: lvk_..." \
  -F "file=@experience-letter.pdf" \
  -F "doc_type=Experience letter" \
  -F "holder_name=Rahul Sharma" \
  -F "issue_date=2026-10-16"

# -> { "id": "LV-T2GZ-G83F", "verify_url": "https://linesverify.com/verify.html?id=LV-T2GZ-G83F",
#      "qr_url": "/api/docs/LV-T2GZ-G83F/qr.png", "sha256": "..." }

Revoke anytime (never deleted, always shown as revoked): POST /api/docs/LV-XXXX-XXXX/revoke with the same x-api-key.

3. Verify a document (open)

No account needed to check. Look up by LV-ID, or POST the exact file for a fingerprint match.

GET/api/docs/LV-XXXX-XXXX
curl https://api.linesverify.com/api/docs/LV-T2GZ-G83F

# -> { "status": "verified", "record": { "id": "...", "issuer_name": "OM Enterprise",
#      "issuer_address": "...", "issuer_tier": 1, "doc_type": "...", "holder_name": "...",
#      "issue_date": "...", "registered_at": "...", "sha256": "...", "verify_url": "..." } }
POST/api/checkmultipart file
curl -X POST https://api.linesverify.com/api/check -F "file=@received.pdf"

# registry match -> { "status": "verified", "match": "exact_hash", "record": {...} }
# no match     -> { "status": "not_found" } plus edit-detection signals when found

GSTIN lookup for approved issuers: GET /api/gstin/23ABCDE1234F1Z5 with x-api-key - returns legal name and principal place of business from the GST network.

Response statuses

verifiedRegistry match. Trust the issuer record shown - including the issuer's verified name and address for tier-1 issuers.
revokedThe issuer revoked this document. It stays visible as revoked - never deleted.
not_foundNot found in the LinesVerify registry. Not proof of anything false - ask the issuer to register it at the source.

Questions: csranu1@gmail.com