Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/greenbrier-cos-parts-store-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.1.0
info:
title: Greenbrier Aftermarket Parts Store API
version: wp/v2
description: 'Public, unauthenticated read access to the Greenbrier aftermarket railcar parts catalog served by the WooCommerce
Store API on www.gbrx.com. Verified live on 2026-09-12 at 207 products across 140 product categories — gaskets, outlet
gates, hatch covers, valves, pipe assemblies and other replacement components for Greenbrier-built equipment. Products
carry SKU, price object, stock availability, dimensions, weight, attribute terms and variation references. This is the
read half of the WooCommerce Store API: the cart and checkout routes on the same namespace are session-scoped and are
deliberately not documented here.'
contact:
name: The Greenbrier Companies
url: https://www.gbrx.com/contact/
x-derived-from: https://www.gbrx.com/wp-json/ (route-index document, saved verbatim at openapi/_original/greenbrier-cos-wp-json-route-index.json)
+ live anonymous GET samples
x-derived-on: '2026-09-12'
x-api-evangelist-note: 'Third-party profile. The Greenbrier Companies publishes no developer program; this documents the
anonymously readable WordPress REST surface behind www.gbrx.com. Every path, parameter, type, default and enum below was
read from the server''s own published route descriptor on 2026-09-12 — nothing is invented. Only the GET methods are documented:
write methods exist on the same routes but require WordPress application-password credentials and are not part of the
public surface.'
servers:
- url: https://www.gbrx.com/wp-json
description: Greenbrier WooCommerce Store API
tags:
- name: Products
description: Aftermarket railcar replacement parts.
- name: Catalog
description: Product categories, tags, brands and attribute vocabularies.
paths:
/wc/store/v1/products:
get:
operationId: listStoreProducts
summary: List products
description: Retrieve a paginated collection of purchasable Greenbrier aftermarket parts, filterable by category, tag,
brand, attribute, stock status and price range.
tags:
- Products
parameters:
- name: after
in: query
description: Limit response to resources created after a given ISO8601 compliant date.
schema:
type: string
format: date-time
- name: attribute_relation
in: query
description: The logical relationship between attributes when filtering across multiple at once.
schema:
type: string
enum:
- in
- and
default: and
- name: attributes
in: query
description: Limit result set to products with selected global attributes.
schema:
type: array
items:
type: object
default: []
- name: before
in: query
description: Limit response to resources created before a given ISO8601 compliant date.
schema:
type: string
format: date-time
- name: brand
in: query
description: Limit result set to products assigned a set of brand IDs or slugs, separated by commas.
schema:
type: string
- name: brand_operator
in: query
description: Operator to compare product brand terms.
schema:
type: string
enum:
- in
- not_in
- and
default: in
- name: catalog_visibility
in: query
description: Determines if hidden or visible catalog products are shown.
schema:
type: string
enum:
- any
- visible
- catalog
- search
- hidden
- name: category
in: query
description: Limit result set to products assigned a set of category IDs or slugs, separated by commas.
schema:
type: string
- name: category_operator
in: query
description: Operator to compare product category terms.
schema:
type: string
enum:
- in
- not_in
- and
default: in
- name: context
in: query
description: Scope under which the request is made; determines fields present in response.
schema:
type: string
enum:
- view
- embed
- edit
default: view
- name: date_column
in: query
description: When limiting response using after/before, which date column to compare against.
schema:
type: string
enum:
- date
- date_gmt
- modified
- modified_gmt
default: date
- name: exclude
in: query
description: Ensure result set excludes specific IDs.
schema:
type: array
items:
type: integer
default: []
- name: featured
in: query
description: Limit result set to featured products.
schema:
type: boolean
- name: include
in: query
description: Limit result set to specific ids.
schema:
type: array
items:
type: integer
default: []
- name: max_price
in: query
description: Limit result set to products based on a maximum price, provided using the smallest unit of the currency.
schema:
type: string
- name: min_price
in: query
description: Limit result set to products based on a minimum price, provided using the smallest unit of the currency.
schema:
type: string
- name: offset
in: query
description: Offset the result set by a specific number of items.
schema:
type: integer
- name: on_sale
in: query
description: Limit result set to products on sale.
schema:
type: boolean
- name: order
in: query
description: Order sort attribute ascending or descending.
schema:
type: string
enum:
- asc
- desc
default: desc
- name: orderby
in: query
description: Sort collection by object attribute.
schema:
type: string
enum:
- date
- modified
- id
- include
- title
- slug
- price
- popularity
- rating
- menu_order
- comment_count
default: date
- name: page
in: query
description: Current page of the collection.
schema:
type: integer
default: 1
minimum: 1
- name: parent
in: query
description: Limit result set to those of particular parent IDs.
schema:
type: array
items:
type: integer
default: []
- name: parent_exclude
in: query
description: Limit result set to all items except those of a particular parent ID.
schema:
type: array
items:
type: integer
default: []
- name: per_page
in: query
description: Maximum number of items to be returned in result set.
schema:
type: integer
default: 10
minimum: 1
maximum: 100
- name: rating
in: query
description: Limit result set to products with a certain average rating.
schema:
type: array
items:
type: integer
enum:
- 1
- 2
- 3
- 4
- 5
default: []
- name: related
in: query
description: Limit result set to products related to a specific product ID.
schema:
type: integer
- name: search
in: query
description: Limit results to those matching a string.
schema:
type: string
- name: sku
in: query
description: Limit result set to products with specific SKU(s). Use commas to separate.
schema:
type: string
- name: slug
in: query
description: Limit result set to products with specific slug(s). Use commas to separate.
schema:
type: string
- name: stock_status
in: query
description: Limit result set to products with specified stock status.
schema:
type: array
items:
type: string
enum:
- instock
- outofstock
- onbackorder
default: []
- name: tag
in: query
description: Limit result set to products assigned a set of tag IDs or slugs, separated by commas.
schema:
type: string
- name: tag_operator
in: query
description: Operator to compare product tags.
schema:
type: string
enum:
- in
- not_in
- and
default: in
- name: type
in: query
description: Limit result set to products assigned a specific type.
schema:
type: string
enum:
- simple
- grouped
- external
- variable
- variation
responses:
'200':
description: A page of product records.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/StoreProduct'
headers:
X-WP-Total:
description: Total number of matching records.
schema:
type: integer
X-WP-TotalPages:
description: Total number of pages at the requested per_page size.
schema:
type: integer
'400':
description: Invalid parameter (rest_invalid_param).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: No route or resource matched (rest_no_route / rest_post_invalid_id).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/wc/store/v1/products/{id}:
get:
operationId: getStoreProduct
summary: Get a product
description: Retrieve one product by its numeric ID.
tags:
- Products
parameters:
- name: context
in: query
description: Scope under which the request is made; determines fields present in response.
schema:
type: string
enum:
- view
- embed
- edit
default: view
- name: id
in: path
description: Unique identifier for the resource.
required: true
schema:
type: integer
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StoreProduct'
'400':
description: Invalid parameter (rest_invalid_param).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: No route or resource matched (rest_no_route / rest_post_invalid_id).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/wc/store/v1/products/categories:
get:
operationId: listStoreProductCategories
summary: List product categories
description: Retrieve the product category tree used to navigate the parts catalog.
tags:
- Catalog
parameters:
- name: context
in: query
description: Scope under which the request is made; determines fields present in response.
schema:
type: string
enum:
- view
- embed
- edit
default: view
- name: exclude
in: query
description: Ensure result set excludes specific IDs.
schema:
type: array
items:
type: integer
default: []
- name: hide_empty
in: query
description: If true, empty terms will not be returned.
schema:
type: boolean
default: true
- name: include
in: query
description: Limit result set to specific ids.
schema:
type: array
items:
type: integer
default: []
- name: order
in: query
description: Sort ascending or descending.
schema:
type: string
enum:
- asc
- desc
default: asc
- name: orderby
in: query
description: Sort by term property.
schema:
type: string
enum:
- name
- slug
- count
default: name
- name: page
in: query
description: Current page of the collection.
schema:
type: integer
default: 1
minimum: 1
- name: parent
in: query
description: Limit results to terms with a specific parent (hierarchical taxonomies only).
schema:
type: integer
- name: per_page
in: query
description: Maximum number of items to be returned in result set. Defaults to no limit if left blank.
schema:
type: integer
minimum: 0
- name: search
in: query
description: Limit results to those matching a string.
schema:
type: string
responses:
'200':
description: A page of product categories.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/StoreProductCategory'
headers:
X-WP-Total:
description: Total number of matching records.
schema:
type: integer
X-WP-TotalPages:
description: Total number of pages at the requested per_page size.
schema:
type: integer
'400':
description: Invalid parameter (rest_invalid_param).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: No route or resource matched (rest_no_route / rest_post_invalid_id).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/wc/store/v1/products/categories/{id}:
get:
operationId: getStoreProductCategory
summary: Get a product category
description: Retrieve one product category by ID.
tags:
- Catalog
parameters:
- name: context
in: query
description: Scope under which the request is made; determines fields present in response.
schema:
type: string
enum:
- view
- embed
- edit
default: view
- name: id
in: path
description: Unique identifier for the resource.
required: true
schema:
type: integer
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StoreProductCategory'
'400':
description: Invalid parameter (rest_invalid_param).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: No route or resource matched (rest_no_route / rest_post_invalid_id).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/wc/store/v1/products/attributes:
get:
operationId: listStoreProductAttributes
summary: List product attributes
description: Retrieve the global product attribute vocabularies. Verified live at 33 attributes on 2026-09-12, including
dimensions, material, nominal thickness, o-ring, PSI, steam connections, thickness and weight.
tags:
- Catalog
parameters:
- name: context
in: query
description: Scope under which the request is made; determines fields present in response.
schema:
type: string
enum:
- view
- edit
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/StoreProductAttribute'
headers:
X-WP-Total:
description: Total number of matching records.
schema:
type: integer
X-WP-TotalPages:
description: Total number of pages at the requested per_page size.
schema:
type: integer
'400':
description: Invalid parameter (rest_invalid_param).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: No route or resource matched (rest_no_route / rest_post_invalid_id).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/wc/store/v1/products/attributes/{attribute_id}/terms:
get:
operationId: listStoreProductAttributeTerms
summary: List attribute terms
description: Retrieve the terms defined for one global product attribute.
tags:
- Catalog
parameters:
- name: __experimental_visual
in: query
description: If true, include experimental visual swatch data for wc-visual attribute terms.
schema:
type: boolean
default: false
- name: attribute_id
in: path
description: Unique identifier for the attribute.
required: true
schema:
type: integer
- name: context
in: query
description: Scope under which the request is made; determines fields present in response.
schema:
type: string
enum:
- view
- edit
default: view
- name: exclude
in: query
description: Ensure result set excludes specific IDs.
schema:
type: array
items:
type: integer
default: []
- name: hide_empty
in: query
description: If true, empty terms will not be returned.
schema:
type: boolean
default: true
- name: include
in: query
description: Limit result set to specific ids.
schema:
type: array
items:
type: integer
default: []
- name: order
in: query
description: Sort ascending or descending.
schema:
type: string
enum:
- asc
- desc
default: asc
- name: orderby
in: query
description: Sort by term property.
schema:
type: string
enum:
- name
- slug
- count
- menu_order
- name_num
- id
default: name
- name: page
in: query
description: Current page of the collection.
schema:
type: integer
default: 1
minimum: 1
- name: parent
in: query
description: Limit results to terms with a specific parent (hierarchical taxonomies only).
schema:
type: integer
- name: per_page
in: query
description: Maximum number of items to be returned in result set. Defaults to no limit if left blank.
schema:
type: integer
minimum: 0
- name: search
in: query
description: Limit results to those matching a string.
schema:
type: string
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/StoreProductAttribute'
headers:
X-WP-Total:
description: Total number of matching records.
schema:
type: integer
X-WP-TotalPages:
description: Total number of pages at the requested per_page size.
schema:
type: integer
'400':
description: Invalid parameter (rest_invalid_param).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: No route or resource matched (rest_no_route / rest_post_invalid_id).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/wc/store/v1/products/collection-data:
get:
operationId: getStoreCollectionData
summary: Get collection aggregates
description: Retrieve aggregate facet data for a product query — price range, attribute counts, rating counts, stock-status
counts and taxonomy counts. This is the data behind the store's filter widgets.
tags:
- Catalog
parameters:
- name: after
in: query
description: Limit response to resources created after a given ISO8601 compliant date.
schema:
type: string
format: date-time
- name: attribute_relation
in: query
description: The logical relationship between attributes when filtering across multiple at once.
schema:
type: string
enum:
- in
- and
default: and
- name: attributes
in: query
description: Limit result set to products with selected global attributes.
schema:
type: array
items:
type: object
default: []
- name: before
in: query
description: Limit response to resources created before a given ISO8601 compliant date.
schema:
type: string
format: date-time
- name: brand
in: query
description: Limit result set to products assigned a set of brand IDs or slugs, separated by commas.
schema:
type: string
- name: brand_operator
in: query
description: Operator to compare product brand terms.
schema:
type: string
enum:
- in
- not_in
- and
default: in
- name: calculate_attribute_counts
in: query
description: If requested, calculates attribute term counts for products in the collection.
schema:
type: array
items:
type: object
default: []
- name: calculate_price_range
in: query
description: If true, calculates the minimum and maximum product prices for the collection.
schema:
type: boolean
default: false
- name: calculate_rating_counts
in: query
description: If true, calculates rating counts for products in the collection.
schema:
type: boolean
default: false
- name: calculate_stock_status_counts
in: query
description: If true, calculates stock counts for products in the collection.
schema:
type: boolean
default: false
- name: calculate_taxonomy_counts
in: query
description: If requested, calculates taxonomy term counts for products in the collection.
schema:
type: array
items:
type: string
default: []
- name: catalog_visibility
in: query
description: Determines if hidden or visible catalog products are shown.
schema:
type: string
enum:
- any
- visible
- catalog
- search
- hidden
- name: category
in: query
description: Limit result set to products assigned a set of category IDs or slugs, separated by commas.
schema:
type: string
- name: category_operator
in: query
description: Operator to compare product category terms.
schema:
type: string
enum:
- in
- not_in
- and
default: in
- name: context
in: query
description: Scope under which the request is made; determines fields present in response.
schema:
type: string
enum:
- view
- edit
default: view
- name: date_column
in: query
description: When limiting response using after/before, which date column to compare against.
schema:
type: string
enum:
- date
- date_gmt
- modified
- modified_gmt
default: date
- name: exclude
in: query
description: Ensure result set excludes specific IDs.
schema:
type: array
items:
type: integer
default: []
- name: featured
in: query
description: Limit result set to featured products.
schema:
type: boolean
- name: include
in: query
description: Limit result set to specific ids.
schema:
type: array
items:
type: integer
default: []
- name: max_price
in: query
description: Limit result set to products based on a maximum price, provided using the smallest unit of the currency.
schema:
type: string
- name: min_price
in: query
description: Limit result set to products based on a minimum price, provided using the smallest unit of the currency.
schema:
type: string
- name: offset
in: query
description: Offset the result set by a specific number of items.
schema:
type: integer
- name: on_sale
in: query
description: Limit result set to products on sale.
schema:
type: boolean
- name: order
in: query
description: Order sort attribute ascending or descending.
schema:
type: string
enum:
- asc
- desc
default: desc
- name: orderby
in: query
description: Sort collection by object attribute.
schema:
type: string
enum:
- date
- modified
- id
- include
- title
- slug
- price
- popularity
- rating
- menu_order
- comment_count
default: date
- name: page
in: query
description: Current page of the collection.
schema:
type: integer
default: 1
minimum: 1
- name: parent
in: query
description: Limit result set to those of particular parent IDs.
schema:
type: array
items:
type: integer
default: []
- name: parent_exclude
in: query
description: Limit result set to all items except those of a particular parent ID.
schema:
type: array
items:
type: integer
default: []
- name: per_page
in: query
description: Maximum number of items to be returned in result set.
schema:
type: integer
default: 10
minimum: 1
maximum: 100
- name: rating
in: query
description: Limit result set to products with a certain average rating.
schema:
type: array
items:
type: integer
enum:
- 1
- 2
- 3
- 4
- 5
default: []
- name: related
in: query
description: Limit result set to products related to a specific product ID.
schema:
type: integer
- name: search
in: query
description: Limit results to those matching a string.
schema:
type: string
- name: sku
in: query
description: Limit result set to products with specific SKU(s). Use commas to separate.
schema:
type: string
- name: slug
in: query
description: Limit result set to products with specific slug(s). Use commas to separate.
schema:
type: string
- name: stock_status
in: query
description: Limit result set to products with specified stock status.
schema:
type: array
items:
type: string
enum:
- instock
- outofstock
- onbackorder
default: []
- name: tag
in: query
description: Limit result set to products assigned a set of tag IDs or slugs, separated by commas.
schema:
type: string
- name: tag_operator
in: query
description: Operator to compare product tags.
schema:
type: string
enum:
- in
- not_in
- and
default: in
- name: type
in: query
description: Limit result set to products assigned a specific type.
schema:
type: string
enum:
- simple
- grouped
- external
- variable
- variation
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StoreCollectionData'
'400':
description: Invalid parameter (rest_invalid_param).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: No route or resource matched (rest_no_route / rest_post_invalid_id).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
components:
schemas:
StoreProduct:
type: object
properties:
id:
type: integer
name:
type: string
slug:
type: string
parent:
type: integer
type:
type: string
variation:
type: string
permalink:
type: string
format: uri
sku:
type: string
short_description:
type: string
description:
type: string
on_sale:
type: boolean
prices:
type: object
properties:
price:
type: string
regular_price:
type: string
sale_price:
type: string
price_range:
type: string
currency_code:
type: string
currency_symbol:
type: string
currency_minor_unit:
type: integer
currency_decimal_separator:
type: string
currency_thousand_separator:
type: string
currency_prefix:
type: string
currency_suffix:
type: string
price_html:
type: string
average_rating:
type: string
review_count:
type: integer
images:
type: array
items:
type: object
additionalProperties: true
categories:
type: array
items:
type: object
additionalProperties: true
tags:
type: array
items:
type: string
# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/greenbrier-cos/refs/heads/main/openapi/greenbrier-cos-parts-store-api-openapi.yml