Early accessWe're onboarding teams in batches. The sandbox and docs are open to everyone. Request access →

Skip to content
APIserver.in

Accounting & ERP SaaS

Clean party masters and ITC you can defend.

Validate every GSTIN on an invoice, check that the supplier actually files, and keep party masters in sync with MCA.

The problem

  • ITC claims depend on suppliers filing GSTR-1 and GSTR-3B on time.
  • Party masters drift: wrong legal names, cancelled registrations, stale addresses.
  • Bulk re-verification is slow and expensive with per-seat tools.

The flow

  1. 1GST Verify on invoice entry₹0.75 per check confirms status and legal name.
  2. 2GST Returns monthlyTwelve periods of GSTR-1/3B status per supplier, ₹1.00 each.
  3. 3Bulk re-verifyDrop a CSV of your party master; invalid rows are skipped at ₹0.
curl https://api.apiserver.in/v1/gst/verify \
  -H "Authorization: Bearer as_test_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"gstin":"24AAHCS9156P1ZL"}'
const res = await fetch("https://api.apiserver.in/v1/gst/verify", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.APISERVER_KEY ?? "as_test_YOUR_KEY"}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "gstin": "24AAHCS9156P1ZL"
  }),
});

const { success, data, meta, error } = await res.json();
console.log(meta.charged, meta.amount_inr); // failed calls are never charged
import os, requests

res = requests.post(
    "https://api.apiserver.in/v1/gst/verify",
    headers={
        "Authorization": f"Bearer {os.getenv('APISERVER_KEY', 'as_test_YOUR_KEY')}",
    },
    json={
        "gstin": "24AAHCS9156P1ZL",
    },
    timeout=10,
)
body = res.json()
print(body["meta"]["charged"], body["meta"]["amount_inr"])
<?php
$ch = curl_init('https://api.apiserver.in/v1/gst/verify');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . (getenv('APISERVER_KEY') ?: 'as_test_YOUR_KEY'),
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'gstin' => '24AAHCS9156P1ZL',
    ]),
]);
$body = json_decode(curl_exec($ch), true);
echo $body['meta']['charged'] ? 'charged' : 'not charged';

This call

₹0.75

incl. GST · failed checks ₹0

A party master that stays correct, and an ITC risk report built from real filing data.

Your first verified business is a few minutes away.

No sales call. No minimum. ₹0 for failed calls.