Optimizely Nodes API

The Nodes API from Optimizely — 6 operation(s) for nodes.

Operations 10

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

GET /api/v1/admin/Nodes List content tree nodes · Returns the EntitySet Nodes #
Ask an LLM
“How do I list the content tree nodes for my commerce site?”
“Can I filter nodes to the children of one parent node?”
Tell an agent
List all content nodes.
List nodes matching {filter}, ordered by {orderby}.
POST /api/v1/admin/Nodes Create a content node · Post a new entity to EntitySet Nodes #
Ask an LLM
“How do I add a new node to a website's content tree?”
“Can I set the parent and sort order when creating a node?”
Tell an agent
Create a {type} node under parent {parentId} on website {websiteId}.
Add a node of type {type} at sort position {sortOrder}.
GET /api/v1/admin/Nodes({id}) Get one content node · Returns the entity with the key from Nodes #
Ask an LLM
“Is there a call to read a single content node by ID?”
“What parent and website does a specific node belong to?”
Tell an agent
Get node {id}.
Show the parent and website of node {id}.
PUT /api/v1/admin/Nodes({id}) Replace a content node · Replace entity in EntitySet Nodes #
Ask an LLM
“What's the call to overwrite a content node record in full?”
“Which node fields should I resend when replacing it?”
Tell an agent
Replace node {id} with type {type} under parent {parentId}.
Overwrite the full node {id} for website {websiteId}.
DELETE /api/v1/admin/Nodes({id}) Delete a content node · Delete entity in EntitySet Nodes #
Ask an LLM
“How do I remove a node from the content tree?”
“Can I delete a node only if it hasn't changed since I read it?”
Tell an agent destructive · confirm first
Delete node {id}.
Delete node {id} with ETag {etag}.
PATCH /api/v1/admin/Nodes({id}) Move or reorder a content node · Update entity in EntitySet Nodes #
Ask an LLM
“How do I move a node under a different parent?”
“Can I change just the sort order of a node in the tree?”
Tell an agent
Move node {id} under parent {parentId}.
Set the sort order of node {id} to {sortOrder}.
GET /api/v1/admin/Nodes/Default.Default() Get the default node template · Call operation Default #
Ask an LLM
“What does a default content node record look like?”
“Where do I get starting values for a new node?”
Tell an agent
Get the default node template.
Show default values for a new content node.
DELETE /api/v1/admin/nodes/delete Bulk delete content nodes · Nodes delete route #
Ask an LLM
“Can I delete several content nodes at once?”
“Can I prune a batch of nodes by passing their IDs?”
Tell an agent destructive · confirm first
Bulk delete nodes {ids}.
Remove all of these content nodes: {ids}.
GET /api/v1/admin/nodes({key})/customproperties({custompropertyKey}) Get a custom property on a node · Nodes get custom property by key and custompropertykey #
Ask an LLM
“Where would I read a custom property stored on a content node?”
“Can I fetch an extra attribute attached to a node?”
Tell an agent
Get custom property {prop} on node {key}.
Show custom field {prop} for content node {key}.
GET /api/v1/admin/nodes({key})/pages({pageKey}) Get a page under a content node · Nodes get page by key and pagekey #
Ask an LLM
“Can I read a page that sits under a content node?”
“Which page versions belong to a given node?”
Tell an agent
Get page {page} under node {key}.
Show page {page} attached to content node {key}.

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-nodes-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-nodes-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: admin-v1
  title: Admin API V1 Nodes API
servers:
- url: https://dogfood.commerce.insitesandbox.com
security: []
tags:
- name: Nodes
paths:
  /api/v1/admin/Nodes:
    get:
      tags:
      - Nodes
      summary: Returns the EntitySet Nodes
      operationId: Nodes_Get
      parameters:
      - name: $expand
        in: query
        description: Expands related entities inline.
        required: false
        schema:
          type: string
      - name: $filter
        in: query
        description: Filters the results, based on a Boolean condition.
        required: false
        schema:
          type: string
      - name: $select
        in: query
        description: Selects which properties to include in the response.
        required: false
        schema:
          type: string
      - name: $apply
        in: query
        description: Aggregates the results according to one or more transformations.
        required: false
        schema:
          type: string
      - name: $orderby
        in: query
        description: Sorts the results.
        required: false
        schema:
          type: string
      - name: $top
        in: query
        description: Returns only the first n results.
        required: false
        schema:
          type: integer
          format: int32
      - name: $skip
        in: query
        description: Skips the first n results.
        required: false
        schema:
          type: integer
          format: int32
      - name: $count
        in: query
        description: Includes a count of the matching results in the response.
        required: false
        schema:
          type: boolean
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
      deprecated: false
      security:
      - access_token: []
    post:
      tags:
      - Nodes
      summary: Post a new entity to EntitySet Nodes
      operationId: Nodes_Post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Insite.Data.Entities.Node'
        description: The entity to post
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
      deprecated: false
      security:
      - access_token: []
  /api/v1/admin/Nodes({id}):
    get:
      tags:
      - Nodes
      summary: Returns the entity with the key from Nodes
      operationId: Nodes_GetById
      parameters:
      - name: id
        in: path
        description: 'key: id'
        required: true
        schema:
          type: string
          format: uuid
      - name: $expand
        in: query
        description: Expands related entities inline.
        required: false
        schema:
          type: string
      - name: $select
        in: query
        description: Selects which properties to include in the response.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
      deprecated: false
      security:
      - access_token: []
    put:
      tags:
      - Nodes
      summary: Replace entity in EntitySet Nodes
      operationId: Nodes_PutById
      parameters:
      - name: id
        in: path
        description: 'key: id'
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Insite.Data.Entities.Node'
        description: The entity to put
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
      deprecated: false
      security:
      - access_token: []
    delete:
      tags:
      - Nodes
      summary: Delete entity in EntitySet Nodes
      operationId: Nodes_DeleteById
      parameters:
      - name: id
        in: path
        description: 'key: id'
        required: true
        schema:
          type: string
          format: uuid
      - name: If-Match
        in: header
        description: If-Match header
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
      deprecated: false
      security:
      - access_token: []
    patch:
      tags:
      - Nodes
      summary: Update entity in EntitySet Nodes
      operationId: Nodes_PatchById
      parameters:
      - name: id
        in: path
        description: 'key: id'
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Insite.Data.Entities.Node'
        description: The entity to patch
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
      deprecated: false
      security:
      - access_token: []
  /api/v1/admin/Nodes/Default.Default():
    get:
      tags:
      - Nodes
      summary: Call operation Default
      operationId: Nodes_Default
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
      deprecated: false
      security:
      - access_token: []
  /api/v1/admin/nodes/delete:
    delete:
      tags:
      - Nodes
      operationId: Nodes_DeleteRoute
      parameters:
      - name: ids
        in: query
        required: true
        explode: true
        schema:
          type: array
          items:
            type: string
            format: uuid
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
      deprecated: false
      security:
      - access_token: []
      summary: Nodes delete route
      x-summary-source: derived
  /api/v1/admin/nodes({key})/customproperties({custompropertyKey}):
    get:
      tags:
      - Nodes
      operationId: Nodes_GetCustomPropertyByKeyAndCustompropertykey
      parameters:
      - name: key
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: custompropertyKey
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: $expand
        in: query
        description: Expands related entities inline.
        required: false
        schema:
          type: string
      - name: $select
        in: query
        description: Selects which properties to include in the response.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
      deprecated: false
      security:
      - access_token: []
      summary: Nodes get custom property by key and custompropertykey
      x-summary-source: derived
  /api/v1/admin/nodes({key})/pages({pageKey}):
    get:
      tags:
      - Nodes
      operationId: Nodes_GetPageByKeyAndPagekey
      parameters:
      - name: key
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: pageKey
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: $expand
        in: query
        description: Expands related entities inline.
        required: false
        schema:
          type: string
      - name: $select
        in: query
        description: Selects which properties to include in the response.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
      deprecated: false
      security:
      - access_token: []
      summary: Nodes get page by key and pagekey
      x-summary-source: derived
components:
  schemas:
    Insite.Data.Entities.Node:
      type: object
      properties:
        id:
          format: uuid
          type: string
          example: 00000000-0000-0000-0000-000000000000
        type:
          type: string
        parentId:
          format: uuid
          type: string
          example: 00000000-0000-0000-0000-000000000000
        sortOrder:
          format: int32
          type: integer
        websiteId:
          format: uuid
          type: string
          example: 00000000-0000-0000-0000-000000000000
        createdOn:
          format: date-time
          type: string
        createdBy:
          type: string
        modifiedOn:
          format: date-time
          type: string
        modifiedBy:
          type: string
  securitySchemes:
    access_token:
      type: apiKey
      description: Token used to access storefront API.
      name: access_token
      in: query