Optimizely Punchout API

The Punchout API from Optimizely — 5 operation(s) for punchout.

Operations 5

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

POST /api/v1/punchout/setuprequest Start a punchout setup request · Punch out V1 setup request async #
Ask an LLM
“How does a buyer's procurement system start a punchout session with the storefront?”
“What does the punchout setup request endpoint accept?”
Tell an agent
Submit punchout setup request {request}.
Open a punchout session from the procurement system with setup request {request}.
GET /api/v1/punchout/sessionrequest Resume a punchout session · Punch out V1 session request async #
Ask an LLM
“Can I load an existing punchout session by its session id?”
“Where does a shopper land after the punchout setup handshake?”
Tell an agent
Load punchout session {punchoutsessionid}.
Resume the punchout shopping session {punchoutsessionid}.
POST /api/v1/punchout/profiletransactionrequest Send a punchout profile transaction request · Punch out V1 profile transaction request async #
Ask an LLM
“Which punchout transactions does the storefront support, per a profile request?”
“Is there an endpoint for the procurement profile handshake?”
Tell an agent
Send punchout profile transaction request {request}.
Ask the storefront for its supported punchout transactions with profile request {request}.
GET /api/v1/punchout/porequisition Return the cart as a punchout PO requisition · Punch out V1 po requisition async #
Ask an LLM
“How do I send the punchout cart back to the buyer's procurement system as a requisition?”
“Can I choose the requisition operation when returning a punchout cart?”
Tell an agent
Send the punchout cart back as a PO requisition.
Return the punchout requisition using operation {operation}.
POST /api/v1/punchout/orderrequest Submit a punchout purchase order request · Punch out V1 order request async #
Ask an LLM
“How does an approved purchase order come back from procurement into the storefront?”
“What does the punchout order request endpoint take?”
Tell an agent
Submit punchout order request {request}.
Place the approved procurement purchase order {request} through punchout.

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/optimizely:optimizely-punchout-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

optimizely-punchout-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: storefront-v1
  title: Storefront API V1 Punchout API
servers:
- url: https://dogfood.commerce.insitesandbox.com
security: []
tags:
- name: Punchout
paths:
  /api/v1/punchout/setuprequest:
    post:
      tags:
      - Punchout
      operationId: PunchOutV1_SetupRequestAsync
      parameters:
      - name: request
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
            text/json:
              schema:
                type: object
            application/xml:
              schema:
                type: object
            text/xml:
              schema:
                type: object
            text/html:
              schema:
                type: object
      summary: Punch out V1 setup request async
      x-summary-source: derived
  /api/v1/punchout/sessionrequest:
    get:
      tags:
      - Punchout
      operationId: PunchOutV1_SessionRequestAsync
      parameters:
      - name: punchoutsessionid
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
            text/json:
              schema:
                type: object
            application/xml:
              schema:
                type: object
            text/xml:
              schema:
                type: object
            text/html:
              schema:
                type: object
      summary: Punch out V1 session request async
      x-summary-source: derived
  /api/v1/punchout/profiletransactionrequest:
    post:
      tags:
      - Punchout
      operationId: PunchOutV1_ProfileTransactionRequestAsync
      parameters:
      - name: request
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
            text/json:
              schema:
                type: object
            application/xml:
              schema:
                type: object
            text/xml:
              schema:
                type: object
            text/html:
              schema:
                type: object
      summary: Punch out V1 profile transaction request async
      x-summary-source: derived
  /api/v1/punchout/porequisition:
    get:
      tags:
      - Punchout
      operationId: PunchOutV1_PoRequisitionAsync
      parameters:
      - name: operation
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
            text/json:
              schema:
                type: object
            application/xml:
              schema:
                type: object
            text/xml:
              schema:
                type: object
            text/html:
              schema:
                type: object
      summary: Punch out V1 po requisition async
      x-summary-source: derived
  /api/v1/punchout/orderrequest:
    post:
      tags:
      - Punchout
      operationId: PunchOutV1_OrderRequestAsync
      parameters:
      - name: request
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
            text/json:
              schema:
                type: object
            application/xml:
              schema:
                type: object
            text/xml:
              schema:
                type: object
            text/html:
              schema:
                type: object
      summary: Punch out V1 order request async
      x-summary-source: derived
components:
  securitySchemes:
    access_token:
      type: apiKey
      description: Token used to access storefront API.
      name: access_token
      in: query