Optimizely Personas API

The Personas API from Optimizely — 10 operation(s) for personas.

Operations 14

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/Personas List personalization personas · Returns the EntitySet Personas #
Ask an LLM
“How do I list every persona set up for personalization in Optimizely Configured Commerce?”
“Can I filter the persona list, say to only default personas, and count the results?”
Tell an agent
List all personas.
List personas matching {filter}, returning the first {top}.
POST /api/v1/admin/Personas Create a persona · Post a new entity to EntitySet Personas #
Ask an LLM
“What do I need to define a new shopper persona with a name and description?”
“Can a new persona be auto-assigned to guest users after a minimum number of actions?”
Tell an agent
Create a persona named {name} described as {description}.
Add persona {name} ({description}) that activates on {activateOn} and boosts search by {boostValue}.
GET /api/v1/admin/Personas({id}) Get a persona by ID · Returns the entity with the key from Personas #
Ask an LLM
“How can I see the settings of one persona, like its activation dates and boost value?”
“Which related records can I expand when reading a single persona?”
Tell an agent
Show persona {id}.
Get persona {id} with {expand} expanded.
PUT /api/v1/admin/Personas({id}) Replace a persona record · Replace entity in EntitySet Personas #
Ask an LLM
“Can I overwrite a persona with a full new definition in one call?”
“Do I have to resend the persona's name and description when replacing the whole record?”
Tell an agent
Replace persona {id} with name {name} and description {description}.
Overwrite persona {id} entirely, setting its deactivation date to {deactivateOn}.
DELETE /api/v1/admin/Personas({id}) Delete one persona · Delete entity in EntitySet Personas #
Ask an LLM
“How do I permanently delete a single persona?”
“Can I guard a persona delete with an If-Match ETag?”
Tell an agent destructive · confirm first
Delete persona {id}.
Delete persona {id} if its ETag is still {etag}.
PATCH /api/v1/admin/Personas({id}) Update part of a persona · Update entity in EntitySet Personas #
Ask an LLM
“Can I turn on search boosting for an existing persona without replacing it?”
“How do I change only a persona's sequence or boost value?”
Tell an agent
Patch persona {id} to enable search boost with value {boostValue}.
Update persona {id} so its sequence is {sequence}.
GET /api/v1/admin/Personas/Default.Default() Get default values for a new persona · Call operation Default #
Ask an LLM
“What defaults does the admin API fill in for a persona before it's created?”
“Is there a blank persona template to start from?”
Tell an agent
Get the default persona template.
Show the pre-filled values for a new persona.
POST /api/v1/admin/Personas/Default.archive Archive personas (OData action) · Call operation archive #
Ask an LLM
“Can I archive personas I no longer use instead of deleting them, via the Default.archive action?”
“How do I archive several personas with the POST archive action?”
Tell an agent
Archive personas {ids} using the Default.archive POST action.
POST to the persona archive action for IDs {ids}.
DELETE /api/v1/admin/personas/archive Archive personas (DELETE route) · Personas archive route #
Ask an LLM
“Is there a DELETE-style personas/archive route for archiving personas?”
“Which endpoint archives personas using the HTTP DELETE verb?”
Tell an agent destructive · confirm first
Archive personas {ids} through the DELETE personas/archive route.
Send a DELETE to the persona archive route for {ids}.
DELETE /api/v1/admin/personas/delete Delete several personas at once · Personas delete route #
Ask an LLM
“Can I bulk delete a list of personas in one call?”
“How do I permanently remove multiple personas rather than archiving them?”
Tell an agent destructive · confirm first
Bulk delete personas {ids}.
Permanently remove all personas in {ids}.
GET /api/v1/admin/personas({key})/categories({categoryKey}) Get a category assigned to a persona · Personas get category by key and categorykey #
Ask an LLM
“How do I check a specific category tied to a persona?”
“Which category records are linked to a persona for personalization?”
Tell an agent
Get category {categoryKey} of persona {key}.
Show persona {key}'s linked category {categoryKey}.
GET /api/v1/admin/personas({key})/customproperties({custompropertyKey}) Get a custom property on a persona · Personas get custom property by key and custompropertykey #
Ask an LLM
“Can I read one custom property value stored on a persona?”
“Where do I find custom attributes my team added to a persona?”
Tell an agent
Get custom property {custompropertyKey} on persona {key}.
Show persona {key}'s custom property {custompropertyKey}.
GET /api/v1/admin/personas({key})/userprofiles({userprofileKey}) Get a user profile assigned to a persona · Personas get user profile by key and userprofilekey #
Ask an LLM
“Is a particular user profile assigned to a given persona?”
“How do I read one user profile under a persona?”
Tell an agent
Get user profile {userprofileKey} under persona {key}.
Check whether persona {key} includes user profile {userprofileKey}.
GET /api/v1/personas/calculate Calculate the current shopper's personas · Personas V1 calculate #
Ask an LLM
“Which personas apply to the shopper in the current storefront session?”
“What endpoint works out personas for the signed-in user?”
Tell an agent
Calculate personas for the current session.
Work out which personas the current shopper matches.

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-personas-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-personas-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Optimizely Personas API
  version: '1.0'
  description: 'Operations tagged Personas across 2 of this provider''s published API definitions: optimizely-configured-commerce-admin-api-v1-openapi.json, optimizely-configured-commerce-storefront-api-v1-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://dogfood.commerce.insitesandbox.com
security: []
tags:
- name: Personas
paths:
  /api/v1/admin/Personas:
    get:
      tags:
      - Personas
      summary: Returns the EntitySet Personas
      operationId: Personas_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:
      - Personas
      summary: Post a new entity to EntitySet Personas
      operationId: Personas_Post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Insite.Data.Entities.Persona'
        description: The entity to post
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
      deprecated: false
      security:
      - access_token: []
    servers:
    - url: https://dogfood.commerce.insitesandbox.com
  /api/v1/admin/Personas({id}):
    get:
      tags:
      - Personas
      summary: Returns the entity with the key from Personas
      operationId: Personas_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:
      - Personas
      summary: Replace entity in EntitySet Personas
      operationId: Personas_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.Persona'
        description: The entity to put
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
      deprecated: false
      security:
      - access_token: []
    delete:
      tags:
      - Personas
      summary: Delete entity in EntitySet Personas
      operationId: Personas_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:
      - Personas
      summary: Update entity in EntitySet Personas
      operationId: Personas_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.Persona'
        description: The entity to patch
        required: true
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
      deprecated: false
      security:
      - access_token: []
    servers:
    - url: https://dogfood.commerce.insitesandbox.com
  /api/v1/admin/Personas/Default.Default():
    get:
      tags:
      - Personas
      summary: Call operation Default
      operationId: Personas_Default
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
      deprecated: false
      security:
      - access_token: []
    servers:
    - url: https://dogfood.commerce.insitesandbox.com
  /api/v1/admin/Personas/Default.archive:
    post:
      tags:
      - Personas
      summary: Call operation archive
      operationId: Personas_Archive
      parameters:
      - name: ids
        in: query
        required: true
        explode: true
        schema:
          type: array
          items:
            type: string
            format: uuid
      requestBody:
        $ref: '#/components/requestBodies/Affiliates_ArchiveParameters'
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                type: object
      deprecated: false
      security:
      - access_token: []
    servers:
    - url: https://dogfood.commerce.insitesandbox.com
  /api/v1/admin/personas/archive:
    delete:
      tags:
      - Personas
      operationId: Personas_ArchiveRoute
      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: Personas archive route
      x-summary-source: derived
    servers:
    - url: https://dogfood.commerce.insitesandbox.com
  /api/v1/admin/personas/delete:
    delete:
      tags:
      - Personas
      operationId: Personas_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: Personas delete route
      x-summary-source: derived
    servers:
    - url: https://dogfood.commerce.insitesandbox.com
  /api/v1/admin/personas({key})/categories({categoryKey}):
    get:
      tags:
      - Personas
      operationId: Personas_GetCategoryByKeyAndCategorykey
      parameters:
      - name: key
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: categoryKey
        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: Personas get category by key and categorykey
      x-summary-source: derived
    servers:
    - url: https://dogfood.commerce.insitesandbox.com
  /api/v1/admin/personas({key})/customproperties({custompropertyKey}):
    get:
      tags:
      - Personas
      operationId: Personas_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: Personas get custom property by key and custompropertykey
      x-summary-source: derived
    servers:
    - url: https://dogfood.commerce.insitesandbox.com
  /api/v1/admin/personas({key})/userprofiles({userprofileKey}):
    get:
      tags:
      - Personas
      operationId: Personas_GetUserProfileByKeyAndUserprofilekey
      parameters:
      - name: key
        in: path
        required: true
        schema:
          type: string
          format: uuid
      - name: userprofileKey
        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: Personas get user profile by key and userprofilekey
      x-summary-source: derived
    servers:
    - url: https://dogfood.commerce.insitesandbox.com
  /api/v1/personas/calculate:
    get:
      tags:
      - Personas
      operationId: PersonasV1_Calculate
      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: Personas V1 calculate
      x-summary-source: derived
    servers:
    - url: https://dogfood.commerce.insitesandbox.com
components:
  schemas:
    Insite.Data.Entities.Persona:
      required:
      - description
      - name
      type: object
      properties:
        id:
          format: uuid
          type: string
          example: 00000000-0000-0000-0000-000000000000
        activateOn:
          format: date-time
          type: string
        deactivateOn:
          format: date-time
          type: string
        description:
          maxLength: 1024
          minLength: 0
          type: string
        isDefault:
          type: boolean
        name:
          maxLength: 100
          minLength: 0
          type: string
        ruleManagerId:
          format: uuid
          type: string
          example: 00000000-0000-0000-0000-000000000000
        sequence:
          format: int32
          type: integer
        favorProducts:
          type: boolean
        enableSearchBoost:
          type: boolean
        boostValue:
          format: decimal
          type: number
        autoAssignGuestUser:
          type: boolean
        autoAssignMinimumActions:
          format: int32
          type: integer
        personaSource:
          type: string
        createdOn:
          format: date-time
          type: string
        createdBy:
          type: string
        modifiedOn:
          format: date-time
          type: string
        modifiedBy:
          type: string
  requestBodies:
    Affiliates_ArchiveParameters:
      content:
        application/json:
          schema:
            type: object
            properties: {}
      description: archive action parameters
  securitySchemes:
    access_token:
      type: apiKey
      description: Token used to access storefront API.
      name: access_token
      in: query
x-refined-from:
- optimizely-configured-commerce-admin-api-v1-openapi.json
- optimizely-configured-commerce-storefront-api-v1-openapi.json