Nissei APInissei.com ↗
Search the Nissei Brazil store catalog and retrieve full product details including price, stock, specs, and gallery images via two structured endpoints.
What is the Nissei API?
The Nissei.com API provides two endpoints that expose the Brazilian electronics and consumer goods catalog at nissei.com. Call search_products to run free-text queries against the full store catalog and receive paginated summaries across up to 9 response fields per product, or call get_product with a url_key slug to pull complete product detail records including specifications, gallery images, stock state, and brand.
curl -X GET 'https://api.parse.bot/scraper/0a5cc95d-f873-4356-a26c-78dae205db9c/search_products?query=notebook' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace nissei-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Nissei store SDK — search products, drill into details."""
from parse_apis.nissei_com_api import Nissei, SortField, SortDirection, ProductNotFound
client = Nissei()
# Search the catalog sorted by price ascending, cap at 5 results.
for summary in client.product_summaries.search(
query="notebook", sort=SortField.PRICE, sort_dir=SortDirection.ASC, limit=5
):
print(summary.name, summary.price_display)
# Drill down: take the first hit and fetch its full detail page.
hit = client.product_summaries.search(query="monitor", limit=1).first()
if hit is not None:
product = hit.details()
print(product.name, product.brand, product.price)
print("Specs:", product.specifications)
print("Images:", product.image_urls)
# Point lookup by slug — with error handling for missing products.
try:
product = client.products.get(url_key="monitor-portatil-arzopa-z1fc-para-laptop-ips-16-1-144hz")
print(product.name, product.sku, product.in_stock)
except ProductNotFound:
print("Product page not found for that slug.")
print("exercised: product_summaries.search / details / products.get")
Searches the store catalog by free text and returns one page of matching products (20 products per page, fixed by the store). Each product carries its identifiers, name, slug, listing price and image. Pass `page` to walk further pages; omitting it returns page 1. `has_more` indicates the store offers a next page, and `total_results` is the store's own match count for the query. Results are relevance-ordered unless `sort`/`sort_dir` are supplied. Products that the store lists without a visible price (for example unavailable items) return null for product_id, sku, price, price_display and currency.
| Param | Type | Description |
|---|---|---|
| page | integer | 1-based result page number. |
| sort | string | Ordering field offered by the store's sort menu. Omitted = the store's default relevance ordering. |
| queryrequired | string | Free-text search term, e.g. notebook. The store applies fuzzy matching, so unusual terms may still return loosely related products. |
| sort_dir | string | Sort direction applied to `sort`. Omitted = the store's default direction for that field. |
{
"type": "object",
"fields": {
"page": "integer page number returned",
"count": "integer number of products on this page",
"query": "the search term echoed back",
"has_more": "boolean, true when a next result page exists",
"products": "array of product summaries (product_id, sku, name, url_key, url, price, price_display, currency, image_url)",
"total_results": "integer total matches the store reports for the query"
},
"sample": {
"data": {
"page": 2,
"count": 20,
"query": "notebook",
"has_more": true,
"products": [
{
"sku": "115169",
"url": "https://nissei.com/br/mochila-targus-city-tsb89004lp-para-notebook-15-6-negro",
"name": "Mochila Targus City TSB89004LP para Notebook 15.6\" - Preto",
"price": 26,
"url_key": "mochila-targus-city-tsb89004lp-para-notebook-15-6-negro",
"currency": "US$",
"image_url": "https://nissei.com/media/catalog/product/cache/c831b74073e8f93ee349897f877fc397/m/o/mochila_targus_city_tsb89004lp_para_notebook_15_6_negro_115169_0000.jpg",
"product_id": "159181",
"price_display": "US$ 26,00"
}
],
"total_results": 332
},
"status": "success"
}
}About the Nissei API
Search the Nissei Catalog
The search_products endpoint accepts a required query string and returns up to 20 products per page. Each product summary includes product_id, sku, name, url_key, url, price, price_display, currency, and image_url. The response also carries total_results (the total match count the store reports) and a has_more boolean so you can walk further pages by incrementing the page parameter. The store applies fuzzy matching, so queries with minor typos or variant spellings may still return relevant results.
Sorting is controlled by the optional sort and sort_dir parameters, which map to the sort options exposed in the store's own catalog menu. Omitting both falls back to the store's default relevance ordering.
Full Product Detail
The get_product endpoint takes the url_key value emitted by search_products and returns the complete detail record. Fields include sku, name, brand, price, currency, in_stock, description, image_urls (a gallery array), and url. The specifications table is returned as structured label/value pairs, making it straightforward to extract technical attributes like dimensions, processor model, or memory capacity without parsing free-form text.
brand is null when the product page carries no brand attribution, in_stock is null when the page shows no stock badge at all, and price is null when no price is displayed — so callers should handle all three as nullable fields rather than assuming a value is always present.
The Nissei API is a managed, monitored endpoint for nissei.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when nissei.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official nissei.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track price changes on specific Nissei SKUs by polling
get_productand comparing thepricefield over time. - Build a product comparison table by fetching multiple
url_keyslugs and aligning their specification label/value pairs. - Populate an affiliate catalog by running category or brand-name queries through
search_productsand storingurl,name,price_display, andimage_url. - Check real-time stock availability across a product list by reading the
in_stockboolean fromget_product. - Enumerate total catalog depth for a keyword by dividing
total_resultsby 20 and iterating through all pages via thepageparameter. - Extract structured technical specs from
get_productto feed a machine-learning model or structured product database. - Monitor whether a brand's products remain listed by querying
search_productswith a brand name and inspecting thecountandtotal_resultsfields.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does nissei.com have an official developer API?+
What does `get_product` return that `search_products` does not?+
search_products returns lightweight summaries — identifiers, a single image URL, and price. get_product adds the full description text, the complete image_urls gallery array, a structured specifications table with label/value pairs, the brand field, and the in_stock boolean. If you need specs or stock state, you must call get_product using the url_key from the search result.How does pagination work in `search_products`?+
page=1 (or omit it) to get the first page, then increment until has_more returns false. The total_results field tells you the full match count so you can calculate how many pages exist before iterating.Are customer reviews or ratings available through this API?+
Does the API cover Nissei storefronts outside Brazil?+
currency field reflects whatever token the page displays). Regional variants or other country storefronts are not currently covered. You can fork this API on Parse and revise it to point at a different regional URL if one exists.