Campbell's Content API (WordPress REST)

The publicly callable WordPress REST API that The Campbell's Company serves from its consumer brand site. It is the de facto successor to the retired Campbell's Kitchen API: the same recipe and product catalog is reachable anonymously over the wp/v2 namespace, alongside Campbell's own custom post types (recipe, product, external_product, csc_faq) and its product/recipe taxonomies (csc_product_line, csc_product_cat, csc_product_tag, csc_dietary_alternative, csc_main_ingredient, csc_recipe_collection, csc_topic). Reads need no key, no signup and no quota; write methods are declared by WordPress core but the live surface returns Allow: GET to anonymous callers. Observed 2026-09-05: 316 recipes, 210 products, 36 FAQs, 422 cross-type search matches for "soup". Campbell's publishes no OpenAPI, no documentation and no versioning or deprecation policy for it — the description in openapi/ is derived by API Evangelist from the site's own route discovery document.

Operations 102

GET /wp/v2/posts GET /wp/v2/posts #
POST /wp/v2/posts POST /wp/v2/posts #
GET /wp/v2/posts/{id} GET /wp/v2/posts/{id} #
POST /wp/v2/posts/{id} POST /wp/v2/posts/{id} #
DELETE /wp/v2/posts/{id} DELETE /wp/v2/posts/{id} #
GET /wp/v2/pages GET /wp/v2/pages #
POST /wp/v2/pages POST /wp/v2/pages #
GET /wp/v2/pages/{id} GET /wp/v2/pages/{id} #
POST /wp/v2/pages/{id} POST /wp/v2/pages/{id} #
DELETE /wp/v2/pages/{id} DELETE /wp/v2/pages/{id} #
GET /wp/v2/media GET /wp/v2/media #
POST /wp/v2/media POST /wp/v2/media #
GET /wp/v2/media/{id} GET /wp/v2/media/{id} #
POST /wp/v2/media/{id} POST /wp/v2/media/{id} #
DELETE /wp/v2/media/{id} DELETE /wp/v2/media/{id} #
POST /wp/v2/media/{id}/post-process POST /wp/v2/media/{id}/post-process #
POST /wp/v2/media/{id}/edit POST /wp/v2/media/{id}/edit #
GET /wp/v2/product GET /wp/v2/product #
POST /wp/v2/product POST /wp/v2/product #
GET /wp/v2/product/{id} GET /wp/v2/product/{id} #
POST /wp/v2/product/{id} POST /wp/v2/product/{id} #
DELETE /wp/v2/product/{id} DELETE /wp/v2/product/{id} #
GET /wp/v2/recipe GET /wp/v2/recipe #
POST /wp/v2/recipe POST /wp/v2/recipe #
GET /wp/v2/recipe/{id} GET /wp/v2/recipe/{id} #
POST /wp/v2/recipe/{id} POST /wp/v2/recipe/{id} #
DELETE /wp/v2/recipe/{id} DELETE /wp/v2/recipe/{id} #
GET /wp/v2/external_product GET /wp/v2/external_product #
POST /wp/v2/external_product POST /wp/v2/external_product #
GET /wp/v2/external_product/{id} GET /wp/v2/external_product/{id} #
POST /wp/v2/external_product/{id} POST /wp/v2/external_product/{id} #
DELETE /wp/v2/external_product/{id} DELETE /wp/v2/external_product/{id} #
GET /wp/v2/csc_faq GET /wp/v2/csc_faq #
POST /wp/v2/csc_faq POST /wp/v2/csc_faq #
GET /wp/v2/csc_faq/{id} GET /wp/v2/csc_faq/{id} #
POST /wp/v2/csc_faq/{id} POST /wp/v2/csc_faq/{id} #
DELETE /wp/v2/csc_faq/{id} DELETE /wp/v2/csc_faq/{id} #
GET /wp/v2/types GET /wp/v2/types #
GET /wp/v2/types/{type} GET /wp/v2/types/{type} #
GET /wp/v2/statuses GET /wp/v2/statuses #
GET /wp/v2/statuses/{status} GET /wp/v2/statuses/{status} #
GET /wp/v2/taxonomies GET /wp/v2/taxonomies #
GET /wp/v2/taxonomies/{taxonomy} GET /wp/v2/taxonomies/{taxonomy} #
GET /wp/v2/categories GET /wp/v2/categories #
POST /wp/v2/categories POST /wp/v2/categories #
GET /wp/v2/categories/{id} GET /wp/v2/categories/{id} #
POST /wp/v2/categories/{id} POST /wp/v2/categories/{id} #
DELETE /wp/v2/categories/{id} DELETE /wp/v2/categories/{id} #
GET /wp/v2/tags GET /wp/v2/tags #
POST /wp/v2/tags POST /wp/v2/tags #
GET /wp/v2/tags/{id} GET /wp/v2/tags/{id} #
POST /wp/v2/tags/{id} POST /wp/v2/tags/{id} #
DELETE /wp/v2/tags/{id} DELETE /wp/v2/tags/{id} #
GET /wp/v2/csc_dietary_alternative GET /wp/v2/csc_dietary_alternative #
POST /wp/v2/csc_dietary_alternative POST /wp/v2/csc_dietary_alternative #
GET /wp/v2/csc_dietary_alternative/{id} GET /wp/v2/csc_dietary_alternative/{id} #
POST /wp/v2/csc_dietary_alternative/{id} POST /wp/v2/csc_dietary_alternative/{id} #
DELETE /wp/v2/csc_dietary_alternative/{id} DELETE /wp/v2/csc_dietary_alternative/{id} #
GET /wp/v2/csc_main_ingredient GET /wp/v2/csc_main_ingredient #
POST /wp/v2/csc_main_ingredient POST /wp/v2/csc_main_ingredient #
GET /wp/v2/csc_main_ingredient/{id} GET /wp/v2/csc_main_ingredient/{id} #
POST /wp/v2/csc_main_ingredient/{id} POST /wp/v2/csc_main_ingredient/{id} #
DELETE /wp/v2/csc_main_ingredient/{id} DELETE /wp/v2/csc_main_ingredient/{id} #
GET /wp/v2/csc_product_cat GET /wp/v2/csc_product_cat #
POST /wp/v2/csc_product_cat POST /wp/v2/csc_product_cat #
GET /wp/v2/csc_product_cat/{id} GET /wp/v2/csc_product_cat/{id} #
POST /wp/v2/csc_product_cat/{id} POST /wp/v2/csc_product_cat/{id} #
DELETE /wp/v2/csc_product_cat/{id} DELETE /wp/v2/csc_product_cat/{id} #
GET /wp/v2/csc_product_line GET /wp/v2/csc_product_line #
POST /wp/v2/csc_product_line POST /wp/v2/csc_product_line #
GET /wp/v2/csc_product_line/{id} GET /wp/v2/csc_product_line/{id} #
POST /wp/v2/csc_product_line/{id} POST /wp/v2/csc_product_line/{id} #
DELETE /wp/v2/csc_product_line/{id} DELETE /wp/v2/csc_product_line/{id} #
GET /wp/v2/csc_product_tag GET /wp/v2/csc_product_tag #
POST /wp/v2/csc_product_tag POST /wp/v2/csc_product_tag #
GET /wp/v2/csc_product_tag/{id} GET /wp/v2/csc_product_tag/{id} #
POST /wp/v2/csc_product_tag/{id} POST /wp/v2/csc_product_tag/{id} #
DELETE /wp/v2/csc_product_tag/{id} DELETE /wp/v2/csc_product_tag/{id} #
GET /wp/v2/csc_recipe_collection GET /wp/v2/csc_recipe_collection #
POST /wp/v2/csc_recipe_collection POST /wp/v2/csc_recipe_collection #
GET /wp/v2/csc_recipe_collection/{id} GET /wp/v2/csc_recipe_collection/{id} #
POST /wp/v2/csc_recipe_collection/{id} POST /wp/v2/csc_recipe_collection/{id} #
DELETE /wp/v2/csc_recipe_collection/{id} DELETE /wp/v2/csc_recipe_collection/{id} #
GET /wp/v2/csc_topic GET /wp/v2/csc_topic #
POST /wp/v2/csc_topic POST /wp/v2/csc_topic #
GET /wp/v2/csc_topic/{id} GET /wp/v2/csc_topic/{id} #
POST /wp/v2/csc_topic/{id} POST /wp/v2/csc_topic/{id} #
DELETE /wp/v2/csc_topic/{id} DELETE /wp/v2/csc_topic/{id} #
GET /wp/v2/users GET /wp/v2/users #
POST /wp/v2/users POST /wp/v2/users #
GET /wp/v2/users/{id} GET /wp/v2/users/{id} #
POST /wp/v2/users/{id} POST /wp/v2/users/{id} #
DELETE /wp/v2/users/{id} DELETE /wp/v2/users/{id} #
GET /wp/v2/users/me GET /wp/v2/users/me #
POST /wp/v2/users/me POST /wp/v2/users/me #
DELETE /wp/v2/users/me DELETE /wp/v2/users/me #
GET /wp/v2/comments GET /wp/v2/comments #
POST /wp/v2/comments POST /wp/v2/comments #
GET /wp/v2/comments/{id} GET /wp/v2/comments/{id} #
POST /wp/v2/comments/{id} POST /wp/v2/comments/{id} #
DELETE /wp/v2/comments/{id} DELETE /wp/v2/comments/{id} #
GET /wp/v2/search GET /wp/v2/search #

Documentation

Specifications

Other Resources

🔗
Overlay
https://raw.githubusercontent.com/api-evangelist/campbell-soup/refs/heads/main/overlays/campbell-soup-content-api-overlay.yaml
🔗
ErrorCatalog
https://raw.githubusercontent.com/api-evangelist/campbell-soup/refs/heads/main/errors/campbell-soup-problem-types.yml
🔗
Conventions
https://raw.githubusercontent.com/api-evangelist/campbell-soup/refs/heads/main/conventions/campbell-soup-conventions.yml
🔗
Idempotency
https://raw.githubusercontent.com/api-evangelist/campbell-soup/refs/heads/main/conventions/campbell-soup-conventions.yml
🔗
DataModel
https://raw.githubusercontent.com/api-evangelist/campbell-soup/refs/heads/main/data-model/campbell-soup-data-model.yml
🔗
Conformance
https://raw.githubusercontent.com/api-evangelist/campbell-soup/refs/heads/main/conformance/campbell-soup-conformance.yml
🔗
Lifecycle
https://raw.githubusercontent.com/api-evangelist/campbell-soup/refs/heads/main/lifecycle/campbell-soup-lifecycle.yml
🔗
Plans
https://raw.githubusercontent.com/api-evangelist/campbell-soup/refs/heads/main/plans/campbell-soup-plans-pricing.yml
🔗
MCPServer
https://raw.githubusercontent.com/api-evangelist/campbell-soup/refs/heads/main/mcp/campbell-soup-mcp.yml
🔗
ToolCrosswalk
https://raw.githubusercontent.com/api-evangelist/campbell-soup/refs/heads/main/mcp/campbell-soup-tool-crosswalk.yml
🔗
AgentSkill
https://raw.githubusercontent.com/api-evangelist/campbell-soup/refs/heads/main/skills/_index.yml
🔗
APIsJSON
https://raw.githubusercontent.com/api-evangelist/campbell-soup/refs/heads/main/apis.yml

Work with this as data

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/campbells-content-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 Specification

campbell-soup-content-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: The Campbell's Company Content API (WordPress REST)
  version: wp/v2
  description: 'Machine-readable description of the publicly callable WordPress REST API that The Campbell''s Company serves
    from its consumer brand site www.campbells.com. It is the live successor to the retired Campbell''s Kitchen developer
    API (developer.campbellskitchen.com, now NXDOMAIN): the same recipe and product catalog is reachable anonymously over
    `wp/v2`, together with Campbell''s own custom post types (`recipe`, `product`, `external_product`, `csc_faq`) and taxonomies
    (`csc_main_ingredient`, `csc_product_line`, `csc_recipe_collection`, `csc_topic` and siblings).


    DERIVED, NOT PUBLISHED. Campbell''s does not publish an OpenAPI. Every path, method, parameter name, type, enum and default
    in this document was read mechanically from the route discovery document the site itself serves at https://www.campbells.com/wp-json/wp/v2
    (saved verbatim at openapi/_original/campbell-soup-wp-json-routes.json). Nothing here was invented. Response schemas are
    intentionally left as generic objects because the discovery document declares request arguments only, not response bodies.


    Anonymous callers get read access (`Allow: GET`); write methods are declared by WordPress core but rejected without credentials.
    Observed 2026-09-05: 316 recipes, 210 products, 36 FAQs.'
  contact:
    name: The Campbell's Company
    url: https://www.campbells.com/contact-us/
  x-derived-from: https://www.campbells.com/wp-json/wp/v2
  x-derivation-method: mechanical transform of the WordPress wp/v2 route discovery document
servers:
- url: https://www.campbells.com/wp-json
  description: Campbell's consumer brand site — recipes, products, FAQs (316/210/36 observed 2026-09-05)
- url: https://www.snydersofhanover.com/wp-json
  description: Snyder's of Hanover brand site — same wp/v2 contract, 37 products observed 2026-09-05
- url: https://www.pacefoods.com/wp-json
  description: Pace Foods brand site — same wp/v2 contract, 28 products observed 2026-09-05
tags:
- name: Recipes
- name: Products
- name: External Products
- name: FAQs
- name: Taxonomies
- name: Search
- name: Posts
- name: Pages
- name: Media
- name: Authors
- name: Comments
- name: Discovery
components:
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: WordPress application passwords over HTTP Basic. Required for every write method; not issued to the public.
  schemas:
    WPError:
      type: object
      description: The WordPress REST error envelope returned on every 4xx/5xx.
      properties:
        code:
          type: string
        message:
          type: string
        data:
          type: object
          properties:
            status:
              type: integer
      required:
      - code
      - message
paths:
  /wp/v2/posts:
    get:
      operationId: getPosts
      tags:
      - Posts
      summary: GET /wp/v2/posts
      description: WordPress REST API route declared by the live discovery document at https://www.campbells.com/wp-json/wp/v2.
      parameters:
      - name: context
        in: query
        required: false
        schema:
          type: string
          enum:
          - view
          - embed
          - edit
          default: view
        description: Scope under which the request is made; determines fields present in response.
      - name: page
        in: query
        required: false
        schema:
          type: integer
          default: 1
        description: Current page of the collection.
      - name: per_page
        in: query
        required: false
        schema:
          type: integer
          default: 10
        description: Maximum number of items to be returned in result set.
      - name: search
        in: query
        required: false
        schema:
          type: string
        description: Limit results to those matching a string.
      - name: after
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Limit response to posts published after a given ISO8601 compliant date.
      - name: modified_after
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Limit response to posts modified after a given ISO8601 compliant date.
      - name: author
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
          default: []
        description: Limit result set to posts assigned to specific authors.
      - name: author_exclude
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
          default: []
        description: Ensure result set excludes posts assigned to specific authors.
      - name: before
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Limit response to posts published before a given ISO8601 compliant date.
      - name: modified_before
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Limit response to posts modified before a given ISO8601 compliant date.
      - name: exclude
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
          default: []
        description: Ensure result set excludes specific IDs.
      - name: include
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
          default: []
        description: Limit result set to specific IDs.
      - name: search_semantics
        in: query
        required: false
        schema:
          type: string
          enum:
          - exact
        description: How to interpret the search input.
      - name: offset
        in: query
        required: false
        schema:
          type: integer
        description: Offset the result set by a specific number of items.
      - name: order
        in: query
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
          default: desc
        description: Order sort attribute ascending or descending.
      - name: orderby
        in: query
        required: false
        schema:
          type: string
          enum:
          - author
          - date
          - id
          - include
          - modified
          - parent
          - relevance
          - slug
          - include_slugs
          - title
          default: date
        description: Sort collection by post attribute.
      - name: search_columns
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - post_title
            - post_content
            - post_excerpt
          default: []
        description: Array of column names to be searched.
      - name: slug
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
        description: Limit result set to posts with one or more specific slugs.
      - name: status
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - acf-disabled
            - request-completed
            - request-failed
            - request-confirmed
            - request-pending
            - inherit
            - auto-draft
            - trash
            - private
            - pending
            - draft
            - future
            - publish
            - any
          default: publish
        description: Limit result set to posts assigned one or more statuses.
      - name: tax_relation
        in: query
        required: false
        schema:
          type: string
          enum:
          - AND
          - OR
        description: Limit result set based on relationship between multiple taxonomies.
      - name: categories
        in: query
        required: false
        schema:
          type: object
        description: Limit result set to items with specific terms assigned in the categories taxonomy.
      - name: categories_exclude
        in: query
        required: false
        schema:
          type: object
        description: Limit result set to items except those with specific terms assigned in the categories taxonomy.
      - name: tags
        in: query
        required: false
        schema:
          type: object
        description: Limit result set to items with specific terms assigned in the tags taxonomy.
      - name: tags_exclude
        in: query
        required: false
        schema:
          type: object
        description: Limit result set to items except those with specific terms assigned in the tags taxonomy.
      - name: sticky
        in: query
        required: false
        schema:
          type: boolean
        description: Limit result set to items that are sticky.
      - name: ignore_sticky
        in: query
        required: false
        schema:
          type: boolean
          default: true
        description: Whether to ignore sticky posts or not.
      - name: format
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - standard
            - aside
            - chat
            - gallery
            - link
            - image
            - quote
            - status
            - video
            - audio
        description: Limit result set to items assigned one or more given formats.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '403':
          description: Forbidden — the caller lacks the capability, or an edge policy rejected the request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
    post:
      operationId: postPosts
      tags:
      - Posts
      summary: POST /wp/v2/posts
      description: 'WordPress REST API route declared by the live discovery document at https://www.campbells.com/wp-json/wp/v2.
        Write access requires authentication; the live surface returns `Allow: GET` to anonymous callers.'
      security:
      - basicAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                date:
                  type: string
                  format: date-time
                date_gmt:
                  type: string
                  format: date-time
                slug:
                  type: string
                status:
                  type: string
                  enum:
                  - acf-disabled
                  - private
                  - pending
                  - draft
                  - future
                  - publish
                password:
                  type: string
                title:
                  type: object
                content:
                  type: object
                author:
                  type: integer
                excerpt:
                  type: object
                featured_media:
                  type: integer
                comment_status:
                  type: string
                  enum:
                  - open
                  - closed
                ping_status:
                  type: string
                  enum:
                  - open
                  - closed
                format:
                  type: string
                  enum:
                  - standard
                  - aside
                  - chat
                  - gallery
                  - link
                  - image
                  - quote
                  - status
                  - video
                  - audio
                meta:
                  type: object
                sticky:
                  type: boolean
                template:
                  type: string
                categories:
                  type: array
                  items:
                    type: integer
                tags:
                  type: array
                  items:
                    type: integer
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '403':
          description: Forbidden — the caller lacks the capability, or an edge policy rejected the request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
  /wp/v2/posts/{id}:
    get:
      operationId: getPostsId
      tags:
      - Posts
      summary: GET /wp/v2/posts/{id}
      description: WordPress REST API route declared by the live discovery document at https://www.campbells.com/wp-json/wp/v2.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: Path parameter declared by the WordPress route pattern.
      - name: context
        in: query
        required: false
        schema:
          type: string
          enum:
          - view
          - embed
          - edit
          default: view
        description: Scope under which the request is made; determines fields present in response.
      - name: excerpt_length
        in: query
        required: false
        schema:
          type: integer
        description: Override the default excerpt length.
      - name: password
        in: query
        required: false
        schema:
          type: string
        description: The password for the post if it is password protected.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '403':
          description: Forbidden — the caller lacks the capability, or an edge policy rejected the request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
    post:
      operationId: postPostsId
      tags:
      - Posts
      summary: POST /wp/v2/posts/{id}
      description: 'WordPress REST API route declared by the live discovery document at https://www.campbells.com/wp-json/wp/v2.
        Write access requires authentication; the live surface returns `Allow: GET` to anonymous callers.'
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: Path parameter declared by the WordPress route pattern.
      security:
      - basicAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                date:
                  type: string
                  format: date-time
                date_gmt:
                  type: string
                  format: date-time
                slug:
                  type: string
                status:
                  type: string
                  enum:
                  - acf-disabled
                  - private
                  - pending
                  - draft
                  - future
                  - publish
                password:
                  type: string
                title:
                  type: object
                content:
                  type: object
                author:
                  type: integer
                excerpt:
                  type: object
                featured_media:
                  type: integer
                comment_status:
                  type: string
                  enum:
                  - open
                  - closed
                ping_status:
                  type: string
                  enum:
                  - open
                  - closed
                format:
                  type: string
                  enum:
                  - standard
                  - aside
                  - chat
                  - gallery
                  - link
                  - image
                  - quote
                  - status
                  - video
                  - audio
                meta:
                  type: object
                sticky:
                  type: boolean
                template:
                  type: string
                categories:
                  type: array
                  items:
                    type: integer
                tags:
                  type: array
                  items:
                    type: integer
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '403':
          description: Forbidden — the caller lacks the capability, or an edge policy rejected the request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
    delete:
      operationId: deletePostsId
      tags:
      - Posts
      summary: DELETE /wp/v2/posts/{id}
      description: 'WordPress REST API route declared by the live discovery document at https://www.campbells.com/wp-json/wp/v2.
        Write access requires authentication; the live surface returns `Allow: GET` to anonymous callers.'
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: Path parameter declared by the WordPress route pattern.
      security:
      - basicAuth: []
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '403':
          description: Forbidden — the caller lacks the capability, or an edge policy rejected the request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
  /wp/v2/pages:
    get:
      operationId: getPages
      tags:
      - Pages
      summary: GET /wp/v2/pages
      description: WordPress REST API route declared by the live discovery document at https://www.campbells.com/wp-json/wp/v2.
      parameters:
      - name: context
        in: query
        required: false
        schema:
          type: string
          enum:
          - view
          - embed
          - edit
          default: view
        description: Scope under which the request is made; determines fields present in response.
      - name: page
        in: query
        required: false
        schema:
          type: integer
          default: 1
        description: Current page of the collection.
      - name: per_page
        in: query
        required: false
        schema:
          type: integer
          default: 10
        description: Maximum number of items to be returned in result set.
      - name: search
        in: query
        required: false
        schema:
          type: string
        description: Limit results to those matching a string.
      - name: after
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Limit response to posts published after a given ISO8601 compliant date.
      - name: modified_after
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Limit response to posts modified after a given ISO8601 compliant date.
      - name: author
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
          default: []
        description: Limit result set to posts assigned to specific authors.
      - name: author_exclude
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
          default: []
        description: Ensure result set excludes posts assigned to specific authors.
      - name: before
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Limit response to posts published before a given ISO8601 compliant date.
      - name: modified_before
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Limit response to posts modified before a given ISO8601 compliant date.
      - name: exclude
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
          default: []
        description: Ensure result set excludes specific IDs.
      - name: include
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
          default: []
        description: Limit result set to specific IDs.
      - name: menu_order
        in: query
        required: false
        schema:
          type: integer
        description: Limit result set to posts with a specific menu_order value.
      - name: search_semantics
        in: query
        required: false
        schema:
          type: string
          enum:
          - exact
        description: How to interpret the search input.
      - name: offset
        in: query
        required: false
        schema:
          type: integer
        description: Offset the result set by a specific number of items.
      - name: order
        in: query
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
          default: desc
        description: Order sort attribute ascending or descending.
      - name: orderby
        in: query
        required: false
        schema:
          type: string
          enum:
          - author
          - date
          - id
          - include
          - modified
          - parent
          - relevance
          - slug
          - include_slugs
          - title
          - menu_order
          default: date
        description: Sort collection by post attribute.
      - name: parent
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
          default: []
        description: Limit result set to items with particular parent IDs.
      - name: parent_exclude
        in: query
        required: false
        schema:
          type: array
          items:
            type: integer
          default: []
        description: Limit result set to all items except those of a particular parent ID.
      - name: search_columns
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - post_title
            - post_content
            - post_excerpt
          default: []
        description: Array of column names to be searched.
      - name: slug
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
        description: Limit result set to posts with one or more specific slugs.
      - name: status
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - acf-disabled
            - request-completed
            - request-failed
            - request-confirmed
            - request-pending
            - inherit
            - auto-draft
            - trash
            - private
            - pending
            - draft
            - future
            - publish
            - any
          default: publish
        description: Limit result set to posts assigned one or more statuses.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '403':
          description: Forbidden — the caller lacks the capability, or an edge policy rejected the request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
    post:
      operationId: postPages
      tags:
      - Pages
      summary: POST /wp/v2/pages
      description: 'WordPress REST API route declared by the live discovery document at https://www.campbells.com/wp-json/wp/v2.
        Write access requires authentication; the live surface returns `Allow: GET` to anonymous callers.'
      security:
      - basicAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                date:
                  type: string
                  format: date-time
                date_gmt:
                  type: string
                  format: date-time
                slug:
                  type: string
                status:
                  type: string
                  enum:
                  - acf-disabled
                  - private
                  - pending
                  - draft
                  - future
                  - publish
                password:
                  type: string
                parent:
                  type: integer
                title:
                  type: object
                content:
                  type: object
                author:
                  type: integer
                excerpt:
                  type: object
                featured_media:
                  type: integer
                comment_status:
                  type: string
                  enum:
                  - open
                  - closed
                ping_status:
                  type: string
                  enum:
                  - open
                  - closed
                menu_order:
                  type: integer
                meta:
                  type: object
                template:
                  type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '403':
          description: Forbidden — the caller lacks the capability, or an edge policy rejected the request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource matched
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
  /wp/v2/pages/{id}:
    get:
      operationId: getPagesId
      tags:
      - Pages
      summary: GET /wp/v2/pages/{id}
      description: WordPress REST API route declared by the live discovery document at https://www.campbells.com/wp-json/wp/v2.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: Path parameter declared by the WordPress route pattern.
      - name: context
        in: query
        required: false
        schema:
          type: string
          enum:
          - view
          - embed
          - edit
          default: view
        description: Scope under which the request is made; determines fields present in response.
      - name: excerpt_length
        in: query
        required: false
        schema:
          type: integer
        description: Override the default excerpt length.
      - name: password
        in: query
        required: false
        schema:
          type: string
        description: The password for the post if it is password protected.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '403':
          description: Forbidden — the caller lacks the capability, or an edge policy rejected the request
          content:
   

# --- truncated at 32 KB (258 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/campbell-soup/refs/heads/main/openapi/campbell-soup-content-api-openapi.yml