{
  "asOf": "2026-11-04",
  "currency": "INR",
  "gstIncluded": true,
  "creditValueInr": 0.1,
  "note": "Prices include GST. A limit of -1 means no cap. Enterprise limits are defaults and can be set differently in a contract.",
  "basePath": "/api/v1/prod",
  "freeGrants": {
    "signupCredits": 2500,
    "monthlyCredits": 500
  },
  "packs": [
    {
      "id": "api-dev",
      "name": "Dev",
      "priceInr": 1000,
      "credits": 10000,
      "ratePerCreditInr": 0.1
    },
    {
      "id": "api-build",
      "name": "Build",
      "priceInr": 5000,
      "credits": 55000,
      "ratePerCreditInr": 0.090909
    },
    {
      "id": "api-grow",
      "name": "Grow",
      "priceInr": 20000,
      "credits": 240000,
      "ratePerCreditInr": 0.083333
    }
  ],
  "scale": {
    "priceInrPerMonth": 7999,
    "monthlyCredits": 100000,
    "rolloverCapCredits": 300000
  },
  "enterprise": {
    "floorInrPerMonth": 15000,
    "ratePerCreditInr": 0.06,
    "byContract": true
  },
  "endpoints": [
    {
      "id": "health",
      "method": "GET",
      "path": "/health",
      "credits": 0,
      "priceInr": 0,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 0,
      "chargedWhen": "Never charged."
    },
    {
      "id": "getTimeline",
      "method": "GET",
      "path": "/get-timeline/{requestId}",
      "credits": 0,
      "priceInr": 0,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 0,
      "chargedWhen": "Never charged."
    },
    {
      "id": "judgesSearch",
      "method": "GET",
      "path": "/judges/search",
      "credits": 1,
      "priceInr": 0.1,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 1,
      "chargedWhen": "A successful response."
    },
    {
      "id": "searchCases",
      "method": "POST",
      "path": "/search/cases",
      "credits": 1,
      "priceInr": 0.1,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 1,
      "chargedWhen": "A successful response."
    },
    {
      "id": "caseDetail",
      "method": "GET",
      "path": "/cases/{id}",
      "credits": 1,
      "priceInr": 0.1,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 1,
      "chargedWhen": "A successful response."
    },
    {
      "id": "caseByCnr",
      "method": "GET",
      "path": "/cases/by-cnr/{cnr}",
      "credits": 1,
      "priceInr": 0.1,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 1,
      "chargedWhen": "Only when a record is returned. A CNR we do not hold is free until the record is found."
    },
    {
      "id": "caseRelated",
      "method": "GET",
      "path": "/cases/{id}/related",
      "credits": 1,
      "priceInr": 0.1,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 1,
      "chargedWhen": "A successful response."
    },
    {
      "id": "caseAnalysis",
      "method": "GET",
      "path": "/cases/{id}/analysis",
      "credits": 1,
      "priceInr": 0.1,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 400,
      "chargedWhen": "1 credit a read. The first read of a case by an organisation is priced at the credits generating the analysis used, up to the maximum."
    },
    {
      "id": "casePdf",
      "method": "GET",
      "path": "/cases/{id}/pdf",
      "credits": 5,
      "priceInr": 0.5,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 5,
      "chargedWhen": "A successful response."
    },
    {
      "id": "semanticSearch",
      "method": "POST",
      "path": "/search/cases/semantic",
      "credits": 10,
      "priceInr": 1,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 10,
      "chargedWhen": "A successful response."
    },
    {
      "id": "requestTimeline",
      "method": "POST",
      "path": "/request-timeline",
      "credits": 1,
      "priceInr": 0.1,
      "noMatchCredits": null,
      "cacheHitCredits": 1,
      "maxCredits": 1,
      "chargedWhen": "1 credit for a stored read. With refresh true, 1 credit only when live work is genuinely triggered."
    },
    {
      "id": "analyze",
      "method": "POST",
      "path": "/cases/{id}/analyze",
      "credits": 100,
      "priceInr": 10,
      "noMatchCredits": null,
      "cacheHitCredits": 1,
      "maxCredits": 120,
      "chargedWhen": "Generation costs the full credits. A case with a stored analysis returns it priced as a read of that analysis."
    },
    {
      "id": "analyzeConsolidated",
      "method": "POST",
      "path": "/cases/{id}/analyze-consolidated",
      "credits": 400,
      "priceInr": 40,
      "noMatchCredits": null,
      "cacheHitCredits": 1,
      "maxCredits": 400,
      "chargedWhen": "Generation costs the full credits. A matter with a stored analysis is priced as a read of it."
    },
    {
      "id": "partyScreen",
      "method": "POST",
      "path": "/party/screen",
      "credits": 100,
      "priceInr": 10,
      "noMatchCredits": 20,
      "cacheHitCredits": null,
      "maxCredits": 180,
      "chargedWhen": "Full credits when matches are found, the no match credits when a genuine screen finds none. Optional adjudication adds up to the maximum."
    },
    {
      "id": "partyScreenBatch",
      "method": "POST",
      "path": "/party/screen/batch",
      "credits": 100,
      "priceInr": 10,
      "noMatchCredits": 20,
      "cacheHitCredits": null,
      "maxCredits": 100,
      "chargedWhen": "Per item: full credits for a matched item, the no match credits for an item with no match."
    },
    {
      "id": "usage",
      "method": "GET",
      "path": "/usage",
      "credits": 0,
      "priceInr": 0,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 0,
      "chargedWhen": "Never charged."
    },
    {
      "id": "referenceCourts",
      "method": "GET",
      "path": "/reference/courts",
      "credits": 0,
      "priceInr": 0,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 0,
      "chargedWhen": "Never charged."
    },
    {
      "id": "referenceCaseTypes",
      "method": "GET",
      "path": "/reference/case-types",
      "credits": 0,
      "priceInr": 0,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 0,
      "chargedWhen": "Never charged."
    },
    {
      "id": "coverage",
      "method": "GET",
      "path": "/coverage",
      "credits": 0,
      "priceInr": 0,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 0,
      "chargedWhen": "Never charged."
    },
    {
      "id": "changesFeed",
      "method": "GET",
      "path": "/changes",
      "credits": 1,
      "priceInr": 0.1,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 1,
      "chargedWhen": "1 credit for each page of events returned."
    },
    {
      "id": "watchlistEvents",
      "method": "GET",
      "path": "/watchlists/{id}/events",
      "credits": 1,
      "priceInr": 0.1,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 1,
      "chargedWhen": "1 credit for each page of events returned."
    },
    {
      "id": "watchlistCreate",
      "method": "POST",
      "path": "/watchlists",
      "credits": 0,
      "priceInr": 0,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 0,
      "chargedWhen": "Never charged."
    },
    {
      "id": "watchlistList",
      "method": "GET",
      "path": "/watchlists",
      "credits": 0,
      "priceInr": 0,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 0,
      "chargedWhen": "Never charged."
    },
    {
      "id": "watchlistGet",
      "method": "GET",
      "path": "/watchlists/{id}",
      "credits": 0,
      "priceInr": 0,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 0,
      "chargedWhen": "Never charged."
    },
    {
      "id": "watchlistUpdate",
      "method": "PATCH",
      "path": "/watchlists/{id}",
      "credits": 0,
      "priceInr": 0,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 0,
      "chargedWhen": "Never charged."
    },
    {
      "id": "watchlistDelete",
      "method": "DELETE",
      "path": "/watchlists/{id}",
      "credits": 0,
      "priceInr": 0,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 0,
      "chargedWhen": "Never charged."
    },
    {
      "id": "watchlistItemsAdd",
      "method": "POST",
      "path": "/watchlists/{id}/items",
      "credits": 0,
      "priceInr": 0,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 0,
      "chargedWhen": "Never charged."
    },
    {
      "id": "watchlistItemsList",
      "method": "GET",
      "path": "/watchlists/{id}/items",
      "credits": 0,
      "priceInr": 0,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 0,
      "chargedWhen": "Never charged."
    },
    {
      "id": "watchlistItemRemove",
      "method": "DELETE",
      "path": "/watchlists/{id}/items/{cnr}",
      "credits": 0,
      "priceInr": 0,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 0,
      "chargedWhen": "Never charged."
    },
    {
      "id": "webhookCreate",
      "method": "POST",
      "path": "/webhooks",
      "credits": 0,
      "priceInr": 0,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 0,
      "chargedWhen": "Never charged."
    },
    {
      "id": "webhookList",
      "method": "GET",
      "path": "/webhooks",
      "credits": 0,
      "priceInr": 0,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 0,
      "chargedWhen": "Never charged."
    },
    {
      "id": "webhookGet",
      "method": "GET",
      "path": "/webhooks/{id}",
      "credits": 0,
      "priceInr": 0,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 0,
      "chargedWhen": "Never charged."
    },
    {
      "id": "webhookUpdate",
      "method": "PATCH",
      "path": "/webhooks/{id}",
      "credits": 0,
      "priceInr": 0,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 0,
      "chargedWhen": "Never charged."
    },
    {
      "id": "webhookDelete",
      "method": "DELETE",
      "path": "/webhooks/{id}",
      "credits": 0,
      "priceInr": 0,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 0,
      "chargedWhen": "Never charged."
    },
    {
      "id": "webhookRotateSecret",
      "method": "POST",
      "path": "/webhooks/{id}/rotate-secret",
      "credits": 0,
      "priceInr": 0,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 0,
      "chargedWhen": "Never charged."
    },
    {
      "id": "webhookTest",
      "method": "POST",
      "path": "/webhooks/{id}/test",
      "credits": 0,
      "priceInr": 0,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 0,
      "chargedWhen": "Never charged."
    },
    {
      "id": "webhookDeliveries",
      "method": "GET",
      "path": "/webhooks/{id}/deliveries",
      "credits": 0,
      "priceInr": 0,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 0,
      "chargedWhen": "Never charged."
    },
    {
      "id": "webhookDeliveryRetry",
      "method": "POST",
      "path": "/webhooks/{id}/deliveries/{deliveryId}/retry",
      "credits": 0,
      "priceInr": 0,
      "noMatchCredits": null,
      "cacheHitCredits": null,
      "maxCredits": 0,
      "chargedWhen": "Never charged."
    }
  ],
  "limitsByTier": {
    "free": {
      "requestsPerMinute": 10,
      "requestsPerDay": 500,
      "requestsPerMonth": 10000,
      "maxPageSize": 20,
      "maxPaginationDepth": 1000,
      "distinctCaseFetchesPerDay": 200,
      "pdfCallsPerMonth": 100,
      "liveFetchesPerDay": 0,
      "refreshRequestsPerMinute": 0,
      "semanticSearchRequestsPerMinute": 0,
      "litigationCheckRequestsPerMinute": 2,
      "litigationChecksPerMonth": 10,
      "distinctNamesScreenedPerDay": 25,
      "concurrentAnalysisJobs": 0,
      "apiKeys": 1
    },
    "payg": {
      "requestsPerMinute": 60,
      "requestsPerDay": 20000,
      "requestsPerMonth": 400000,
      "maxPageSize": 50,
      "maxPaginationDepth": 10000,
      "distinctCaseFetchesPerDay": 5000,
      "pdfCallsPerMonth": 2000,
      "liveFetchesPerDay": 200,
      "refreshRequestsPerMinute": 5,
      "semanticSearchRequestsPerMinute": 20,
      "litigationCheckRequestsPerMinute": 10,
      "litigationChecksPerMonth": -1,
      "distinctNamesScreenedPerDay": 500,
      "concurrentAnalysisJobs": 3,
      "apiKeys": 3
    },
    "scale": {
      "requestsPerMinute": 120,
      "requestsPerDay": 100000,
      "requestsPerMonth": 2000000,
      "maxPageSize": 100,
      "maxPaginationDepth": 50000,
      "distinctCaseFetchesPerDay": 50000,
      "pdfCallsPerMonth": 10000,
      "liveFetchesPerDay": 2000,
      "refreshRequestsPerMinute": 15,
      "semanticSearchRequestsPerMinute": 60,
      "litigationCheckRequestsPerMinute": 30,
      "litigationChecksPerMonth": -1,
      "distinctNamesScreenedPerDay": 5000,
      "concurrentAnalysisJobs": 10,
      "apiKeys": 10
    },
    "enterprise": {
      "requestsPerMinute": 600,
      "requestsPerDay": 1000000,
      "requestsPerMonth": 20000000,
      "maxPageSize": 100,
      "maxPaginationDepth": 100000,
      "distinctCaseFetchesPerDay": -1,
      "pdfCallsPerMonth": -1,
      "liveFetchesPerDay": -1,
      "refreshRequestsPerMinute": 30,
      "semanticSearchRequestsPerMinute": 120,
      "litigationCheckRequestsPerMinute": 60,
      "litigationChecksPerMonth": -1,
      "distinctNamesScreenedPerDay": -1,
      "concurrentAnalysisJobs": 25,
      "apiKeys": -1
    }
  }
}
