Tridge APItridge.com ↗
Search Tridge's agri-food product catalog and retrieve global trade statistics, wholesale/farmgate prices, supplier listings, sell offers, and market insights via 7 endpoints.
What is the Tridge API?
The Tridge API gives developers structured access to Tridge's agri-food intelligence platform across 7 endpoints. Use search_products to resolve any commodity name to a product_code, then pull global and per-country import/export statistics, annual trade values in USD and volumes in kg, wholesale and farmgate price series, supplier company directories, active sell offers, and editorial market insights including news articles and market reports.
curl -X GET 'https://api.parse.bot/scraper/049bdc9b-07a7-44d5-acbe-fa6d03434ff5/search_products?query=mango' \ -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 tridge-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: Tridge agri-food trade data — search, trade, prices, suppliers, offers, and insights."""
from parse_apis.tridge_com_api import Tridge, InputNotFound, InsightContentType
client = Tridge()
# Search for agri-food products by keyword; limit= caps total items fetched.
product = client.products.search(query="mango", limit=1).first()
if product is None:
print("no products found")
raise SystemExit
print(product.name, product.product_code, product.thumbnail_url)
# Drill into the global trade overview for this product.
overview = product.trade_overview()
print(overview.product_name, "HS:", overview.hs_code)
print("Updated:", overview.updated_at)
# Show top exporting countries (if export data exists).
if overview.exports is not None:
print(f"Export base year: {overview.exports.base_year}")
for tc in overview.exports.top_countries[:3]:
print(f" #{tc.rank} {tc.country_code} ${tc.value_usd:,.0f} {tc.volume_kg:,.0f} kg")
# Pick the first available country code and fetch its country-level trade profile.
if overview.country_codes:
country_code = overview.country_codes[0]
try:
country = overview.country_overview(country_code=country_code)
except InputNotFound:
print(f"no country overview for {country_code}")
raise SystemExit
print(f"\n{country.product_name} in {country.country_code}")
if country.exports is not None:
for yr in country.exports.annual[:3]:
print(f" {yr.year}: ${yr.value_usd:,.0f} {yr.volume_kg:,.0f} kg")
if country.export_transactions is not None:
print(f" Sample rate: {country.export_transactions.sample_rate:.4f}")
for tx in country.export_transactions.sampled_transactions[:3]:
print(f" {tx.date} {tx.export_country_code}->{tx.import_country_code} ${tx.unit_price_usd_per_kg:.2f}/kg")
# Global price overview for this product.
prices = product.price_overview()
print(f"\nPrices for {prices.product_name}, updated {prices.updated_at}")
if prices.wholesale is not None and prices.wholesale.top_countries:
top = prices.wholesale.top_countries[0]
print(f" Top wholesale country: {top.country_code} avg ${top.unit_price_avg_usd_per_kg:.2f}/kg")
# Supplier sell offers for this product.
offer = product.offers.list(limit=1).first()
if offer is not None:
print(f"\nOffer: {offer.name} from {offer.origin_country_code}")
if offer.supplier is not None:
print(f" Supplier: {offer.supplier.name} ({offer.supplier.country_code})")
# Supplier companies for this product.
supplier = product.suppliers.list(limit=1).first()
if supplier is not None:
print(f"\nSupplier: {supplier.name} in {supplier.country_code}")
# Market insights (articles) about the product.
insight = client.insights.list(
content_type=InsightContentType.ARTICLE,
insight_product_code="mango",
limit=1,
).first()
if insight is not None:
print(f"\nInsight: {insight.title} ({insight.date})")
print(f" {insight.summary[:120]}...")
print("\nexercised: products.search / trade_overview / country_overview / price_overview / offers.list / suppliers.list / insights.list")
Searches Tridge's food product catalog by free text and returns matching products with their product_code, the identifier consumed by get_product_trade_overview and get_country_trade_overview. One round trip per call. Paginated by offset: `offset` defaults to 0 and `limit` to 20 (maximum 100); `has_more` reports whether a further page exists and `total_count` is the site's total match count. An empty query returns the site's default popular products.
| Param | Type | Description |
|---|---|---|
| limit | integer | Number of products per page, 1 to 100. |
| queryrequired | string | Free-text product search term, e.g. a commodity name. |
| offset | integer | Zero-based index of the first product to return; add the previous page's limit to continue. |
{
"type": "object",
"fields": {
"limit": "integer, page size applied",
"query": "echo of the search term",
"offset": "integer, offset applied",
"has_more": "boolean, true when a later page exists",
"products": "array of {product_code, name, localized_name, thumbnail_url}; product_code is the slug accepted by the trade overview endpoints",
"total_count": "integer, total products matching on the site"
},
"sample": {
"data": {
"limit": 5,
"query": "mango",
"offset": 0,
"has_more": true,
"products": [
{
"name": "Fresh Mango",
"product_code": "fresh-mango",
"thumbnail_url": "https://static.kuma.tridge.com/2026-10-02/images/product_thumbnails/fresh-mango.jpg",
"localized_name": "Fresh Mango"
},
{
"name": "Mango Juice",
"product_code": "mango-juice",
"thumbnail_url": "https://static.kuma.tridge.com/2026-10-02/images/product_thumbnails/mango-juice.jpg",
"localized_name": "Mango Juice"
}
],
"total_count": 67
},
"status": "success"
}
}About the Tridge API
Product Discovery and Trade Statistics
Start with search_products, which accepts a free-text query (e.g. "blueberry" or "cassava starch") and returns a paginated list of matching products — each carrying a product_code slug, display name, localized name, and thumbnail URL. That product_code drives every other endpoint. Pass it to get_product_trade_overview to get the mapped 6-digit HS code, the latest base_year, and ranked lists of the top exporting and importing countries with value_usd and volume_kg, plus the largest bilateral trade flows and a count of exporter/importer companies by country. For a single country's profile, get_country_trade_overview adds three years of annual export and import history, ranked partner countries, and monthly scaled unit-price series with confidence bounds.
Price Data and Supplier Intelligence
get_product_price_overview returns both wholesale and farmgate price objects. The global view lists top_countries with unit_price_avg_usd_per_kg, lower/upper bounds, and year-over-year change, plus a 12-month price series. Supply a country_code to narrow to one market. list_product_suppliers returns up to 50 companies from Tridge's public directory, filterable by country_code and trade direction (supply or sourcing side), with fields including company name, location coordinates, industries, and value-chain roles; a separate premium_suppliers array surfaces featured listings. list_product_offers retrieves active sell-offer catalog entries: offer name, price with currency and unit when stated, minimum order volume, incoterms, origin country, and an HTML description.
Market Insights
list_market_insights surfaces Tridge editorial content — news articles, market reports, stories, journals, data insights, guides, and weekly product bulletins — sorted newest first. Filter by free-text query, country_code, insight_product_code, or content_type. Pagination uses an opaque cursor token returned in next_cursor; the response also carries total_count and has_more. Each item includes title, date, summary, page_url, and an array of associated products with their codes.
The Tridge API is a managed, monitored endpoint for tridge.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when tridge.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 tridge.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?+
- Map commodity names to HS codes and pull annual import/export values for trade compliance research.
- Build a dashboard tracking the top 10 exporting countries for any agricultural product by
value_usdandvolume_kg. - Compare wholesale vs. farmgate price trends across producing countries using
get_product_price_overviewmonthly series. - Populate a supplier discovery tool with company locations, value-chain roles, and active sell offers from
list_product_suppliersandlist_product_offers. - Monitor new Tridge market reports and news articles for a specific commodity via
list_market_insightswithinsight_product_codefilter. - Analyze a single country's year-over-year trade trajectory for a product using the three-year
annualarray fromget_country_trade_overview. - Identify bilateral trade concentration by inspecting
top_trade_flowsshare-of-world figures for sourcing or market-entry analysis.
| 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 Tridge have an official developer API?+
What does `list_product_suppliers` actually return, and does it include contact details?+
product_code, with optional country_code and direction filters. Each record includes company name (masked as displayed on the site), ISO-3166 country code, coordinates, industries, and value-chain roles. A separate premium_suppliers array includes logo URLs and contact-related fields for featured listings. The endpoint also returns total_count so you know how many companies exist beyond the 50 returned.How fresh is the trade statistics data?+
get_product_trade_overview, get_country_trade_overview, get_product_price_overview) returns an updated_at ISO timestamp reflecting when Tridge last refreshed the data. The base_year field in the trade response indicates the most recent complete trade year used for rankings and aggregates, which typically lags the current calendar year because official customs data is published with a delay.Does the API cover historical trade data beyond the three most recent years?+
get_country_trade_overview returns an annual array for the three most recent trade years, and get_product_trade_overview surfaces the single base_year for rankings. Longer time-series history is not exposed by these endpoints. You can fork this API on Parse and revise it to add a dedicated historical-series endpoint if Tridge surfaces that data in another view.Can I retrieve the full text or PDF of a market report through `list_market_insights`?+
list_market_insights returns item metadata — title, date, summary, page_url, associated product codes, and content type — but not the full article body or document download. The page_url field links to the original Tridge page. You can fork this API on Parse and revise it to add a detail endpoint that fetches the full content for a given item id or code.