openapi: 3.2.0
info:
title: Daring Foods Pages API
version: wp/v2
summary: Public read access to the static marketing pages of daring.com.
description: 'Public, unauthenticated read access to the 17 static pages that make up daring.com - Home, Products, Our Mission, Ingredients, How To Cook, Locator, FAQ, Careers, Accessibility Statement, Terms & Conditions, VIP, and the Foodservice sub-tree (Foodservice, Products, Mission, How To Cook, Support, Store Locator) - via the WordPress REST API. Unlike the custom post types on this host, pages DO return their full rendered `content` and `excerpt`, which makes this the collection to read when harvesting Daring''s own statements about ingredients, sourcing, sustainability claims and foodservice terms. Pages are hierarchical: the Foodservice sub-pages carry a non-zero `parent`.'
contact:
name: Daring Foods
url: https://daring.com/faq/
license:
name: Site content - all rights reserved; see Terms & Conditions
url: https://daring.com/terms-and-conditions/
x-apis-io-provenance:
method: derived
source: https://daring.com/wp-json/
derived_on: '2026-08-04'
note: Routes enumerated from the live WordPress route index at https://daring.com/wp-json/ (222 routes across 10 namespaces) on 2026-08-04, then probed anonymously one at a time; only routes verified to return HTTP 200 without credentials are documented here. Schemas reflect fields observed in the live responses. Write methods exist on the same routes but require WordPress authentication (cookie + X-WP-Nonce, or Application Passwords) and return HTTP 401 anonymously, so they are not documented. No fabricated operations, parameters or fields.
servers:
- url: https://daring.com/wp-json
description: Production
tags:
- name: Pages
description: Static marketing pages of daring.com, including the Foodservice sub-tree.
paths:
/wp/v2/pages:
get:
tags:
- Pages
operationId: listPages
summary: List pages
description: Returns a paginated collection of published pages. Verified live at 17 pages.
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/perPage'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/order'
- $ref: '#/components/parameters/orderby'
- $ref: '#/components/parameters/context'
- $ref: '#/components/parameters/slugFilter'
- $ref: '#/components/parameters/include'
- $ref: '#/components/parameters/exclude'
- $ref: '#/components/parameters/offset'
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/embed'
- name: parent
in: query
description: Limit results to pages whose parent is one of the given IDs.
schema:
type: array
items:
type: integer
- name: menu_order
in: query
description: Limit results to pages with a specific menu_order value.
schema:
type: integer
responses:
'200':
description: A page of pages.
headers:
X-WP-Total:
$ref: '#/components/headers/XWPTotal'
X-WP-TotalPages:
$ref: '#/components/headers/XWPTotalPages'
Link:
$ref: '#/components/headers/LinkPagination'
Cache-Control:
$ref: '#/components/headers/CacheControl'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Page'
example:
- id: 447
date: '2023-06-07T16:09:53'
modified: '2024-09-26T19:16:51'
slug: faq
status: publish
type: page
link: https://daring.com/faq/
title:
rendered: FAQ
parent: 0
menu_order: 0
'400':
description: Invalid request parameter (rest_invalid_param).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: rest_invalid_param
message: 'Invalid parameter(s): per_page'
data:
status: 400
params:
per_page: per_page must be between 1 (inclusive) and 100 (inclusive)
/wp/v2/pages/{id}:
get:
tags:
- Pages
operationId: getPage
summary: Retrieve a page
description: Returns a single published page by numeric ID, including its full rendered content.
parameters:
- $ref: '#/components/parameters/idPath'
- $ref: '#/components/parameters/context'
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/embed'
responses:
'200':
description: The requested page.
headers:
Cache-Control:
$ref: '#/components/headers/CacheControl'
content:
application/json:
schema:
$ref: '#/components/schemas/Page'
example:
id: 447
date: '2023-06-07T16:09:53'
modified: '2024-09-26T19:16:51'
slug: faq
status: publish
type: page
link: https://daring.com/faq/
title:
rendered: FAQ
parent: 0
menu_order: 0
'404':
description: Object not found, or no route matches the request.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: rest_post_invalid_id
message: Invalid post ID.
data:
status: 404
components:
parameters:
slugFilter:
name: slug
in: query
description: Limit results to items with one of the given slugs.
schema:
type: array
items:
type: string
page:
name: page
in: query
description: Current page of the collection (1-based).
schema:
type: integer
minimum: 1
default: 1
perPage:
name: per_page
in: query
description: Maximum number of items returned per page. Verified server cap is 100; a larger value returns HTTP 400 rest_invalid_param.
schema:
type: integer
minimum: 1
maximum: 100
default: 10
include:
name: include
in: query
description: Limit result set to specific IDs.
schema:
type: array
items:
type: integer
orderby:
name: orderby
in: query
description: Field to sort the collection by.
schema:
type: string
enum:
- date
- id
- include
- modified
- relevance
- slug
- title
default: date
context:
name: context
in: query
description: Scope under which the request is made; determines the fields present in the response. Anonymous callers may use `view` and `embed` only - `edit` returns HTTP 401.
schema:
type: string
enum:
- view
- embed
default: view
exclude:
name: exclude
in: query
description: Ensure result set excludes specific IDs.
schema:
type: array
items:
type: integer
idPath:
name: id
in: path
required: true
description: Unique numeric identifier for the object.
schema:
type: integer
search:
name: search
in: query
description: Limit results to those matching a free-text string.
schema:
type: string
fields:
name: _fields
in: query
description: Comma-separated list of fields to limit the response to (e.g. `id,slug,title,link`). A WordPress core response-shaping convention, verified working on this host.
schema:
type: string
offset:
name: offset
in: query
description: Offset the result set by a specific number of items.
schema:
type: integer
minimum: 0
order:
name: order
in: query
description: Sort direction.
schema:
type: string
enum:
- asc
- desc
default: desc
embed:
name: _embed
in: query
description: Inline embeddable linked resources (featured media, terms, author) into an `_embedded` object.
schema:
type: boolean
schemas:
Error:
type: object
description: 'The WordPress REST error envelope. NOTE: this is NOT RFC 9457 problem+json - the media type is application/json and the shape is {code, message, data}.'
required:
- code
- message
- data
properties:
code:
type: string
description: Machine-readable WordPress error code, e.g. rest_post_invalid_id, rest_invalid_param, rest_no_route.
examples:
- rest_post_invalid_id
message:
type: string
description: Human-readable error message.
examples:
- Invalid post ID.
data:
type: object
properties:
status:
type: integer
description: HTTP status code, repeated in the body.
examples:
- 404
params:
type: object
additionalProperties:
type: string
description: 'Present on rest_invalid_param: per-parameter validation messages.'
details:
type: object
description: 'Present on rest_invalid_param: per-parameter structured detail.'
Page:
type: object
description: A WordPress page.
properties:
id:
type: integer
description: Unique identifier for the item.
date:
type:
- string
- 'null'
format: date-time
description: Publication date in the site's timezone.
date_gmt:
type:
- string
- 'null'
format: date-time
description: Publication date as GMT.
modified:
type: string
format: date-time
description: Last modification date in the site's timezone.
modified_gmt:
type: string
format: date-time
description: Last modification date as GMT.
guid:
type: object
properties:
rendered:
type: string
description: Globally unique identifier for the item.
slug:
type: string
description: Alphanumeric identifier unique to its post type.
status:
type: string
description: Publication status; only `publish` is visible anonymously.
examples:
- publish
type:
type: string
description: WordPress post type of the item.
link:
type: string
format: uri
description: Public URL of the item on daring.com.
title:
type: object
properties:
rendered:
type: string
description: 'Item title. NOTE: HTML entities are escaped in the rendered value (e.g. `Buffalo Mac & Cheese`).'
featured_media:
type: integer
description: Media library ID of the featured image; 0 when unset. Resolve via /wp/v2/media/{id} or `_embed`.
template:
type: string
description: Theme file used to display the item.
class_list:
type: array
items:
type: string
description: CSS class names WordPress generates for the item.
acf:
description: Advanced Custom Fields payload. Observed EMPTY (`[]`) on this host - the site runs ACF but does not expose field values over REST, so nutrition, ingredient and recipe-step data are NOT available through this API.
type:
- array
- object
yoast_head:
type: string
description: Yoast SEO rendered <head> markup for the item.
yoast_head_json:
type: object
description: Yoast SEO head metadata as structured JSON, including the schema.org JSON-LD graph.
_links:
type: object
description: HAL-style link relations (self, collection, about, wp:featuredmedia, curies).
content:
type: object
properties:
rendered:
type: string
protected:
type: boolean
description: Full page body as rendered HTML. Populated on this host.
excerpt:
type: object
properties:
rendered:
type: string
protected:
type: boolean
author:
type: integer
parent:
type: integer
description: ID of the parent page; 0 for top-level. Foodservice sub-pages carry the Foodservice page ID (15).
menu_order:
type: integer
description: Ordering position within the page tree.
comment_status:
type: string
ping_status:
type: string
featured_image_src:
type:
- string
- boolean
- 'null'
featured_image_src_square:
type:
- string
- boolean
- 'null'
headers:
XWPTotal:
description: Total number of items in the unpaginated collection.
schema:
type: integer
CacheControl:
description: 'Observed as `max-age=600, must-revalidate` on this host (WP Engine edge cache, x-cacheable: SHORT).'
schema:
type: string
LinkPagination:
description: RFC 8288 Link header carrying `prev` and `next` relations for the collection.
schema:
type: string
XWPTotalPages:
description: Total number of pages available at the requested per_page size.
schema:
type: integer