ISM World APIismworld.org ↗
Access ISM Manufacturing PMI reports via API. Get headline PMI values, sub-indices, commentary, respondent quotes, and detailed data tables for the current and prior month.
What is the ISM World API?
The ISM World API provides access to monthly ISM Manufacturing PMI reports through a single endpoint, get_manufacturing_report, returning over 10 structured response fields including the headline PMI value, a full at-a-glance sub-index summary table, analyst commentary paragraphs, respondent quotes, and breakdowns of industries reporting growth or contraction. It covers the current and previous month's reports.
curl -X GET 'https://api.parse.bot/scraper/3e053129-cacc-4423-87ea-13d531fce8e3/get_manufacturing_report?month=may' \ -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 ismworld-org-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: ISM Manufacturing PMI Report API — bounded, re-runnable."""
from parse_apis.ism_manufacturing_pmi_report_api import ISM, ReportNotFound
client = ISM()
# Fetch the current month's manufacturing PMI report
report = client.reports.get(month="may")
print(f"Headline: {report.headline}")
print(f"PMI Value: {report.pmi_value}")
print(f"Report: {report.report_title}")
# Inspect the at-a-glance summary table
for index in report.at_a_glance[:3]:
print(f" {index.index_name}: {index.current_month_value} ({index.direction}, {index.rate_of_change})")
# Access sub-index detail tables
for name, sub in list(report.sub_indices.items())[:2]:
print(f"Sub-index '{name}': {len(sub.data)} rows, headers={sub.headers}")
# Read commentary and industry data
if report.respondent_comments:
print(f"First respondent comment: {report.respondent_comments[0][:80]}...")
print(f"Industries growing: {report.industries_growing[:3]}")
# Typed error handling for unavailable months
try:
old_report = client.reports.get(month="january")
print(f"January report: {old_report.headline}")
except ReportNotFound as exc:
print(f"Report not found: {exc.message}")
print("exercised: reports.get / at_a_glance / sub_indices / ReportNotFound")
Get the ISM Manufacturing PMI report for a given month. Returns headline PMI value, at-a-glance summary table with all sub-indices, analyst commentary, respondent quotes, and detailed sub-index breakdown tables. Only the current month and previous month reports are available on the site; older months return an error.
| Param | Type | Description |
|---|---|---|
| month | string | Full English month name for the report (e.g., 'may', 'april'). Case-insensitive. Only the current and previous month's reports are available. If omitted, defaults to 'may'. |
{
"type": "object",
"fields": {
"summary": "array of strings - First 5 summary paragraphs",
"headline": "string - Headline text (e.g., 'Manufacturing PMI® at 54%')",
"pmi_value": "number - Headline PMI index value",
"at_a_glance": "array of objects - Summary table rows with index_name, current_month_value, previous_month_value, percentage_point_change, direction, rate_of_change, trend_months",
"sub_indices": "object - Detailed sub-index tables keyed by name, each with headers array and data array",
"report_title": "string - Full report title including month and year",
"current_month": "string - Current report month abbreviation (e.g., 'May')",
"previous_month": "string - Previous month abbreviation (e.g., 'Apr')",
"full_commentary": "array of strings - All commentary paragraphs",
"industries_growing": "array of strings - Industries reporting growth",
"respondent_comments": "array of strings - Industry respondent quotes",
"industries_contracting": "array of strings - Industries reporting contraction"
},
"sample": {
"data": {
"summary": [
"(Tempe, Arizona) — Economic activity in the manufacturing sector expanded in March..."
],
"headline": "Manufacturing PMI®at 52.7%",
"pmi_value": 52.7,
"at_a_glance": [
{
"direction": "Growing",
"index_name": "Manufacturing PMI",
"trend_months": 3,
"rate_of_change": "Faster",
"current_month_value": 52.7,
"previous_month_value": 52.4,
"percentage_point_change": "+0.3"
}
],
"sub_indices": {
"New Orders": {
"data": [
[
"Mar 2026",
"29.1",
"56.3"
]
],
"headers": [
"New Orders",
"% Higher",
"% Same"
]
}
},
"report_title": "March 2026 ISM®Manufacturing PMI®Report",
"current_month": "Mar",
"previous_month": "Feb",
"full_commentary": [
"(Tempe, Arizona) — Economic activity in the manufacturing sector expanded in March..."
],
"industries_growing": [
"Printing & Related Support Activities",
"Primary Metals",
"Transportation Equipment"
],
"respondent_comments": [
"\"This is expected to be a transition year for the U.S. trucking market...\" [Transportation Equipment]"
],
"industries_contracting": []
},
"status": "success"
}
}About the ISM World API
What the API Returns
The get_manufacturing_report endpoint returns the full content of a monthly ISM Manufacturing PMI report. The response includes pmi_value (the numeric headline index), headline (the formatted headline string such as 'Manufacturing PMI® at 54%'), and report_title with the specific month and year. The at_a_glance array delivers the summary table rows, each containing index_name, current_month_value, previous_month_value, percentage_point_change, and direction — covering sub-indices like New Orders, Production, Employment, Supplier Deliveries, and Inventories.
Sub-Indices and Commentary
The sub_indices object contains detailed breakdown tables keyed by sub-index name, each with a headers array and a data array for row-level data. Commentary is split across summary (first five paragraphs) and full_commentary (all paragraphs), making it straightforward to display abbreviated or full analyst narrative. The industries_growing array lists industry names explicitly reported as expanding, and equivalent contraction data is accessible through the sub-index tables.
Filtering by Month
The month parameter accepts a full English month name (case-insensitive, e.g., 'march' or 'April'). Only the current month and the immediately preceding month are available — older historical reports are not returned. The current_month and previous_month fields in the response confirm which reports are accessible at any given time.
The ISM World API is a managed, monitored endpoint for ismworld.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ismworld.org 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 ismworld.org 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?+
- Tracking the monthly headline
pmi_valueto plot manufacturing sector expansion or contraction trends - Building economic dashboards that display
at_a_glancesub-index changes (New Orders, Employment, Production) month over month - Alerting systems that detect when specific sub-indices cross the 50-point threshold using
percentage_point_changeanddirectionfields - Aggregating
industries_growingdata to identify which manufacturing verticals are outperforming in a given month - Feeding
full_commentaryand respondent quotes into NLP pipelines for sentiment analysis on manufacturing conditions - Monitoring supply chain indicators like Supplier Deliveries and Inventories sub-indices for procurement planning
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does ISM World have an official developer API?+
What does the `at_a_glance` field contain, and how is it structured?+
at_a_glance array represents one row from the report's summary table. It includes index_name (e.g., 'New Orders'), current_month_value, previous_month_value, percentage_point_change, and direction (e.g., 'Growing' or 'Contracting'). This covers all major sub-indices in a single structured array.How far back does the API's historical data go?+
Does the API cover the ISM Services PMI report in addition to Manufacturing?+
get_manufacturing_report. The ISM Services (Non-Manufacturing) PMI is a separate monthly publication. You can fork the API on Parse and revise it to add an endpoint targeting the Services PMI report.Are the detailed sub-index tables available for all reported indices, or only the headline?+
sub_indices object contains detailed breakdown tables for each major sub-index — not just the headline PMI. Each entry is keyed by sub-index name and includes headers and row-level data arrays, giving access to the granular industry-level detail published in the full report.