↑ ↓ to move ↵ to open
NPPA API · Endpoint

NPPA Formulations Search API

Search India's notified NPPA ceiling prices by formulation name, paged, with the SO number and date on every row.

  • 1 credit per call
  • Failed calls are free
  • Updated
  • nppa.search.formulations
Response completed
{  "has_more": false,  "page": 1,  "total": 3,  "items": [    {      "ceiling_price": 4.15,      "currency": "INR",      "dosage_form": "MODIFIED RELEASE TABLET",      "formulation": "METFORMIN",      "so_date": "2026-03-25",      "so_number": "1575(E)",      "source_url": "https://nppaipdms.gov.in/NPPA/rest/schFormDataTableNew?dosageId=0&schFormulationId=0&strengthId=0",      "strength": "1000 MG",      "unit": "1 Tablet"    },    {      "ceiling_price": 3.57,      "currency": "INR",      "dosage_form": "TABLET",      "formulation": "METFORMIN",      "so_date": "2026-03-25",      "so_number": "1575(E)",      "source_url": "https://nppaipdms.gov.in/NPPA/rest/schFormDataTableNew?dosageId=0&schFormulationId=0&strengthId=0",      "strength": "1000 MG",      "unit": "1 Tablet"    }  ]}
Try it live, free
Input

What you send

The input object of the request, with every field the endpoint accepts.

FieldTypeRequiredWhat it doesExample
query string yes Formulation name to search, for example "METFORMIN". Matched against the name NPPA files the price under, not the display name in its scheduled list; use nppa.formulation.get for that. METFORMIN
limit integer no Rows per page. From 1 to 100. Default: 20. 5
page integer no Page of matching rows to return, starting at 1. At least 1. Default: 1.
so_number string no Keep only one gazette notification, for example "1575(E)". Case and spacing are ignored.
sort string no Row order: formulation name (default), cheapest ceiling price first, or most expensive first. Allowed values: name, price_low, price_high. Default: name. name · price_low · price_high
Response

Fields it returns

What each record in the response holds, with the values from the sample above.

FieldTypeExample
items[].ceiling_price number 4.15
items[].currency string INR
items[].dosage_form string MODIFIED RELEASE TABLET
items[].formulation string METFORMIN
items[].so_date string 2026-03-25
items[].so_number string 1575(E)
items[].source_url string https://nppaipdms.gov.in/NPPA/rest/schFormDataTableNew?dosageId…
items[].strength string 1000 MG
items[].unit string 1 Tablet
has_more boolean false
items array 3 records
page integer 1
total integer 3
REST API · MCP server

Call it from your code, or ask your agent

Set UPSCRAPE_API_KEY to your key and copy a working request.

curl --request POST \  --url https://data.upscrape.com/execute \  --header "Authorization: Bearer $UPSCRAPE_API_KEY" \  --header "Content-Type: application/json" \  --header "Prefer: wait=30" \  --data '{  "capability": "nppa.search.formulations",  "input": {    "limit": 5,    "query": "METFORMIN"  }}'
In your AI agent Claude · Cursor · any MCP client
1Add the Upscrape MCP server
https://data.upscrape.com/mcp
2Ask for the data in plain words

With Upscrape, get the NPPA formulations search for query "METFORMIN". Tell me what it costs before you run it, then show the results as a table.

The agent finds the endpoint, shows you the price, and runs it with your credits.
NPPA

More from the NPPA API

Questions

NPPA Formulations Search API FAQ

The short answers. The docs have the long ones.

Still have a question? Talk to the people who build the endpoints.
How much does the NPPA Formulations Search API cost?

1 credit per successful call, shown before it runs. You buy credits once, and paid credits never expire.

What do I send?

Send query. The input fields below list every option with its type and limits.

Do I need a NPPA login?

No. It reads public NPPA data; nothing runs on your account.

Can my AI agent call it?

Yes, over MCP: the agent finds nppa.search.formulations, checks its price and runs it with the same credits as the REST API.

Get started

Your first NPPA call is free.

Up to 100 free credits to start, no card needed.