Optimizely Scheduled jobs API

Get information about scheduled jobs

Operations 7

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 /{clientId}/customerjobs/configured List configured scheduled jobs for a client · Get information about all configured scheduled jobs #
Ask an LLM
“Which scheduled jobs are configured on my client account and what triggers them?”
“Can I cap how many configured customer jobs come back?”
Tell an agent
List the configured scheduled jobs for client {clientId}.
Show up to {limit} configured customer jobs with their triggers for client {clientId}.
GET /{clientId}/customerjobs/running List scheduled jobs running right now · Get information about all running scheduled jobs #
Ask an LLM
“What scheduled jobs are running at the moment on my client account?”
“How long has each currently running customer job been going?”
Tell an agent
List the jobs currently running for client {clientId}.
Show start time and elapsed time of every running job in client {clientId}.
GET /scheduled-jobs List my account's experiment scheduled jobs · Get a list of Scheduled Jobs #
Ask an LLM
“What scheduled jobs belong to my Optimizely experimentation account?”
“Can I see all the recurring jobs set up across my projects' campaigns and experiments?”
Tell an agent
List the scheduled jobs in my account.
Show every experimentation scheduled job I own.
POST /scheduled-jobs Create a scheduled job for experiments · Create a Scheduled Job #
Ask an LLM
“How do I schedule a recurring job for the experiments in a project?”
“What frequency and job type must a new scheduled job specify?”
Tell an agent
Create a {job_type} scheduled job in project {project_id} running {frequency}.
Schedule a {job_type} job at {frequency} for experiments {experiment_ids} in project {project_id}.
DELETE /scheduled-jobs/{job_id} Archive a scheduled job · Archive a Scheduled Job #
Ask an LLM
“How do I archive a scheduled job I no longer need?”
“Does removing a scheduled job delete it or just archive it?”
Tell an agent destructive · confirm first
Archive scheduled job {job_id}.
Retire scheduled job {job_id} so it stops running.
GET /scheduled-jobs/{job_id} Get one scheduled job · Get a Scheduled Job #
Ask an LLM
“How do I look up the frequency and targets of a single scheduled job?”
“Can I fetch a scheduled job by its job ID?”
Tell an agent
Get scheduled job {job_id}.
Show the frequency and output channels of scheduled job {job_id}.
PATCH /scheduled-jobs/{job_id} Update a scheduled job · Update a Scheduled Job #
Ask an LLM
“How do I change how often a scheduled job runs?”
“Can I add campaigns or change output channels on an existing scheduled job?”
Tell an agent
Change scheduled job {job_id} to run {frequency}.
Set campaigns {campaign_ids} on scheduled job {job_id}.

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-scheduled-jobs-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-scheduled-jobs-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Optimizely Scheduled jobs API
  version: '1.0'
  description: 'Operations tagged Scheduled jobs across 2 of this provider''s published API definitions: optimizely-campaign-optimizely-campaign-rest-api-openapi.json, optimizely-web-experimentation-optimizely-api-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.campaign.episerver.net/rest
- url: https://api.optimizely.com/v2
tags:
- name: Scheduled Jobs
  description: Get information about scheduled jobs
paths:
  /{clientId}/customerjobs/configured:
    get:
      tags:
      - Scheduled Jobs
      summary: Get information about all configured scheduled jobs
      description: Get detailed information about all configured scheduled jobs, such as name, description, triggers.
      operationId: selectAllConfiguredJobs
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: integer
          format: int64
      - name: limit
        in: query
        description: 'Maximum number of retrieved configured scheduled jobs <p><i>Default value</i> : 100</p>'
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: All configured scheduled jobs were retrieved successfully (empty result if none was found).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestConfiguredJobStreamingCollection'
            application/vnd.optivo.broadmail.v1+json:
              schema:
                $ref: '#/components/schemas/RestConfiguredJobStreamingCollection'
        '400':
          description: Invalid limit request. Change the limit to less than 10000.
        '403':
          description: IP address was not allowed to access jobs rest api server.
      security:
      - Authorization: []
    servers:
    - url: https://api.campaign.episerver.net/rest
  /{clientId}/customerjobs/running:
    get:
      tags:
      - Scheduled Jobs
      summary: Get information about all running scheduled jobs
      description: Get detailed information about all running scheduled jobs, such as name, start time, elapsed running time.
      operationId: selectAllRunningJobs
      parameters:
      - name: clientId
        in: path
        description: Client ID
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: All running scheduled jobs were retrieved successfully (empty result if none was found).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestRunningJobStreamingCollection'
            application/vnd.optivo.broadmail.v1+json:
              schema:
                $ref: '#/components/schemas/RestRunningJobStreamingCollection'
        '400':
          description: Invalid limit request. Change the limit to less than 10000.
        '403':
          description: IP address was not allowed to access jobs rest api server.
      security:
      - Authorization: []
    servers:
    - url: https://api.campaign.episerver.net/rest
  /scheduled-jobs:
    get:
      description: Get the list of Scheduled Jobs that belong to your account
      operationId: list_scheduled_jobs
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/ScheduledJob'
                type: array
          description: Return Scheduled Job info
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Invalid credentials
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Unexpected error
      summary: Get a list of Scheduled Jobs
      tags:
      - Scheduled Jobs
      x-release-state: alpha
      security:
      - apiKey: []
      - OAuth2:
        - read
        - write
    post:
      operationId: create_scheduled_job
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScheduledJob'
        description: A string in JSON format that includes all the fields to create a Scheduled Job
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScheduledJob'
          description: Return the created ScheduledJob
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Invalid request body content
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Invalid credentials
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: You do not have permission to create a Scheduled Job under the specified Project
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Unexpected error
      summary: Create a Scheduled Job
      tags:
      - Scheduled Jobs
      x-release-state: alpha
      security:
      - apiKey: []
      - OAuth2:
        - read
        - write
    servers:
    - url: https://api.optimizely.com/v2
  /scheduled-jobs/{job_id}:
    delete:
      description: Archive a Scheduled Job by ID
      operationId: delete_scheduled_job
      parameters:
      - description: The ID of the Scheduled Job you'd like to archive
        in: path
        name: job_id
        required: true
        schema:
          format: int64
          type: integer
      responses:
        '204':
          description: Successfully archived Scheduled Job
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Invalid credentials.
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: You do not have permission to archive the specified Scheduled Job
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Job not found
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Unexpected error
      summary: Archive a Scheduled Job
      tags:
      - Scheduled Jobs
      x-release-state: alpha
      security:
      - apiKey: []
      - OAuth2:
        - read
        - write
    get:
      description: Get a Scheduled Job by ID
      operationId: get_scheduled_job
      parameters:
      - description: The ID of the Scheduled Job you'd like to get
        in: path
        name: job_id
        required: true
        schema:
          format: int64
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScheduledJob'
          description: Return Scheduled Job info
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Invalid ID supplied
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Invalid credentials
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: You do not have permission to access the specified Scheduled Job
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Scheduled Job not found
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Unexpected error
      summary: Get a Scheduled Job
      tags:
      - Scheduled Jobs
      x-release-state: alpha
      security:
      - apiKey: []
      - OAuth2:
        - read
        - write
    patch:
      description: Update a Scheduled Job by ID
      operationId: update_scheduled_job
      parameters:
      - description: The ID of the Scheduled Job you'd like to update
        in: path
        name: job_id
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScheduledJobUpdate'
        description: A string in JSON format that includes all the fields you'd like to change for a Scheduled Job
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScheduledJob'
          description: Return the updated Scheduled Job
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Invalid ID or request body supplied
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Invalid credentials
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: You do not have permission to edit the specified Scheduled Job
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Scheduled Job not found
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Unexpected error
      summary: Update a Scheduled Job
      tags:
      - Scheduled Jobs
      x-release-state: alpha
      security:
      - apiKey: []
      - OAuth2:
        - read
        - write
    servers:
    - url: https://api.optimizely.com/v2
components:
  schemas:
    RestConfiguredJobStreamingCollection:
      type: object
      properties:
        elements:
          type: array
          items:
            $ref: '#/components/schemas/RestConfiguredJob'
        links:
          type: array
          writeOnly: true
          items:
            $ref: '#/components/schemas/RestApiLink'
        count:
          type: integer
          format: int32
        offset:
          type: integer
          format: int32
        limit:
          type: integer
          format: int32
    RestConfiguredJob:
      type: object
      properties:
        name:
          type: string
          description: Name of the scheduled job
        description:
          type: string
          description: Description of the scheduled job
        type:
          type: string
          description: Type of the scheduled job
        jobData:
          type: object
          additionalProperties:
            type: string
        triggers:
          type: array
          items:
            $ref: '#/components/schemas/RestJobTrigger'
    RestApiLink:
      type: object
      properties:
        href:
          type: string
        rel:
          type: string
    RestJobTrigger:
      type: object
      properties:
        name:
          type: string
          description: Trigger name
        state:
          type: string
          description: Trigger status
        nextFireTime:
          type: string
          description: Date and time of the next trigger fire
          format: date-time
        lastFiredTime:
          type: string
          description: Date and time of the last trigger fire
          format: date-time
        started:
          type: string
          description: Start date and time of the trigger
          format: date-time
        finished:
          type: string
          description: Finish date and time of the trigger
          format: date-time
    RestRunningJobStreamingCollection:
      type: object
      properties:
        elements:
          type: array
          items:
            $ref: '#/components/schemas/RestRunningJob'
        links:
          type: array
          writeOnly: true
          items:
            $ref: '#/components/schemas/RestApiLink'
        count:
          type: integer
          format: int32
        offset:
          type: integer
          format: int32
        limit:
          type: integer
          format: int32
    RestRunningJob:
      type: object
      properties:
        name:
          type: string
          description: Name of the running scheduled job
        started:
          type: string
          description: Start date and time of the scheduled job
          format: date-time
        elapsedRunningTime:
          type: object
          properties:
            seconds:
              type: integer
              format: int64
            zero:
              type: boolean
            nano:
              type: integer
              format: int32
            negative:
              type: boolean
            units:
              type: array
              items:
                type: object
                properties:
                  durationEstimated:
                    type: boolean
                  duration:
                    type: object
                    properties:
                      seconds:
                        type: integer
                        format: int64
                      zero:
                        type: boolean
                      nano:
                        type: integer
                        format: int32
                      negative:
                        type: boolean
                  timeBased:
                    type: boolean
                  dateBased:
                    type: boolean
          description: Elapsed running time of the scheduled job
    ScheduledJobUpdate:
      properties:
        archived:
          description: Whether the Scheduled Job is archived
          type: boolean
        campaign_ids:
          description: A list of campaign_ids that should be considered during the job
          items:
            format: int64
            type: integer
          type: array
        experiment_ids:
          description: A list of experiment_ids that should be considered during the job
          items:
            format: int64
            type: integer
          type: array
        frequency:
          enum:
          - daily
          - weekly
          type: string
        job_type:
          description: The type of job to be performed
          enum:
          - project_results
          type: string
        output_channels:
          description: An object describing how the output of the job should be communicated
          type: object
        project_id:
          description: The project that the job is associated with
          format: int64
          type: integer
      type: object
    ScheduledJob:
      properties:
        account_id:
          description: The account that the job is associated with
          example: 456
          format: int64
          readOnly: true
          type: integer
        archived:
          default: false
          description: Whether the Scheduled Job is archived
          example: false
          readOnly: true
          type: boolean
        campaign_ids:
          default: []
          description: A list of campaign_ids that should be considered during the job
          example:
          - 12
          - 34
          items:
            format: int64
            type: integer
          type: array
        experiment_ids:
          default: []
          description: A list of experiment_ids that should be considered during the job
          example:
          - 56
          - 78
          - 90
          items:
            format: int64
            type: integer
          type: array
        frequency:
          description: How often the job should be performed
          enum:
          - daily
          - weekly
          example: weekly
          type: string
        id:
          description: The unique identifier of the Scheduled Job
          example: 123
          format: int64
          readOnly: true
          type: integer
        job_type:
          description: The type of job to be performed
          enum:
          - project_results
          example: project_results
          type: string
        output_channels:
          default: {}
          description: An object describing how the output of the job should be communicated
          example: '{"email": ["test@example.com", "another@example.com"]}'
          type: object
        project_id:
          description: The project that the job is associated with
          example: 789
          format: int64
          type: integer
      required:
      - project_id
      - job_type
      - frequency
      type: object
    Error:
      properties:
        code:
          type: string
        message:
          type: string
        messages:
          type: object
        uuid:
          format: uuid
          type: string
      type: object
  securitySchemes:
    Authorization:
      type: apiKey
      name: Authorization
      in: header
    OAuth2:
      description: Write applications that authenticate with the REST API via OAuth 2.0. Or, to authenticate using a personal token, see https://docs.developers.optimizely.com/web/docs/personal-token
      flows:
        authorizationCode:
          authorizationUrl: https://app.optimizely.com/oauth2/authorize
          scopes:
            all: Full access to your account
          tokenUrl: https://app.optimizely.com/oauth2/token
      type: oauth2
    apiKey:
      scheme: bearer
      type: http
x-refined-from:
- optimizely-campaign-optimizely-campaign-rest-api-openapi.json
- optimizely-web-experimentation-optimizely-api-openapi.json