Optimizely Work Requests API

The Work Requests API from Optimizely — 13 operation(s) for work requests.

Operations 16

GET /work-requests GET /work-requests #
POST /work-requests POST /work-requests #
GET /work-requests/{id} GET /work-requests/{id} #
PATCH /work-requests/{id} PATCH /work-requests/{id} #
GET /work-requests/{id}/comments GET /work-requests/{id}/comments #
POST /work-requests/{id}/comments POST /work-requests/{id}/comments #
GET /work-requests/{work_request_id}/comments/{comment_id} GET /work-requests/{work_request_id}/comments/{comment_id} #
POST /work-requests/{id}/attachments POST /work-requests/{id}/attachments #
DELETE /work-requests/{work_request_id}/attachments/{attachment_id} DELETE /work-requests/{work_request_id}/attachments/{attachment_id} #
POST /work-requests/{id}/creative-assets POST /work-requests/{id}/creative-assets #
DELETE /work-requests/{work_request_id}/creative-assets/{creative_asset_id} DELETE /work-requests/{work_request_id}/creative-assets/{creative_asset_id} #
GET /work-requests/{id}/approved-assets GET /work-requests/{id}/approved-assets #
POST /work-requests/{id}/campaigns POST /work-requests/{id}/campaigns #
POST /work-requests/{id}/tasks POST /work-requests/{id}/tasks #
GET /work-requests/{id}/related-resources GET /work-requests/{id}/related-resources #
PUT /work-requests/{work_request_id}/form-fields/{form_field_identifier} PUT /work-requests/{work_request_id}/form-fields/{form_field_identifier} #

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-work-requests-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 email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

optimizely-work-requests-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: V3
  title: Optimizely CMP Open API Documentation Work Requests API
servers:
- url: https://api.cmp.optimizely.com/v3
  description: v3 version of Optimizely CMP Open API
security:
- OAuth2:
  - openid
  - profile
  - offline_access
tags:
- name: Work Requests
paths:
  /work-requests:
    get:
      operationId: listWorkRequests
      tags:
      - Work Requests
      summary: GET /work-requests
      description: '<span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Get a list of work requests. '
      parameters:
      - name: created_by
        in: query
        schema:
          type: string
          description: Unique identifier of the creator of the work requests. You can append multiple times, for example `created_by=creator1&created_by=creator2`.
        example:
        - 1265ca474ba987cc925164aa7
        - 606995f714ace404593cce4c
      - name: status
        in: query
        schema:
          type: string
          description: Status of a work request. You can append multiple times, for example `status=Submitted&status=Declined`
          enum:
          - Submitted
          - Accepted
          - Completed
          - Declined
        example:
        - Accepted
        - Submitted
      - name: order_by
        in: query
        schema:
          type: string
          description: Ordering parameter of the work requests.
          enum:
          - priority
          - status
          - created_at
          - due_date
        example: due_date
      - name: order_as
        in: query
        schema:
          type: string
          description: Sorting order of the work requests.
          enum:
          - asc
          - desc
        example: desc
      - name: template_ids
        in: query
        description: Unique identifiers of the templates. You can append multiple times, for example `template_ids=template1&template_ids=template2`.
        schema:
          type: array
          items:
            type: string
        example:
        - 1265ca474ba987cc925164aa7
        - 606995f714ace404593cce4c
      - name: created_at__from
        in: query
        required: false
        description: Date and time as the lower limit to filter work requests by `created_at`, in ISO 8601 UTC format
        schema:
          type: string
          format: date-time
        example: '2018-11-30T13:32:44Z'
      - name: created_at__to
        in: query
        required: false
        description: Date and time as the upper limit to filter work requests by `created_at`, in ISO 8601 UTC format
        schema:
          type: string
          format: date-time
        example: '2018-12-31T23:59:59Z'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/page_size'
      responses:
        '200':
          description: List of fetched work requests
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  data:
                    description: List of work requests
                    type: array
                    items:
                      $ref: '#/components/schemas/WorkRequestResponse'
                  pagination:
                    allOf:
                    - $ref: '#/components/schemas/Pagination'
                    - type: object
                      properties:
                        next:
                          type:
                          - string
                          - 'null'
                          example: https://api.cmp.optimizely.com/v3/work-requests?offset=10&page_size=10
                required:
                - data
                - pagination
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    post:
      tags:
      - Work Requests
      summary: POST /work-requests
      description: '<span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Create a work request. '
      operationId: createWorkRequest
      requestBody:
        description: Payload to create a work request
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkRequestCreateRequest'
            example:
              template_id: 5c89aebe611eca11302420af
              assignees:
              - 74ba987cc9251689abc123
              form_fields:
              - identifier: title
                type: text
                values:
                - Some title
              - identifier: brief
                type: brief
                values:
                - type: attachment_brief
                  value:
                    key: 10d5c89aebe611eca11302420ac80002
                    name: Attachment
              - identifier: 630c486a90546926f034ea28
                type: richtext
                values:
                - <b>rich</b> text
              - identifier: 630c479690546926f034ea13
                type: label
                values:
                - 630c479690546926f034ea15
              - identifier: 630c47be90546926f034ea17
                type: dropdown
                values:
                - 630c47be90546926f034ea18
              - identifier: 630c482b90546926f034ea22
                type: simple_number
                values:
                - 1234.345678
              - identifier: 630c484b90546926f034ea23
                type: percentage_number
                values:
                - 23
              - identifier: 630c481b90546926f034ea21
                type: currency_number
                values:
                - 123.56
              - identifier: 630c485e90546926f034ea24
                type: checkbox
                values:
                - 630c485e90546926f034ea25
              - identifier: 630c47d290546926f034ea1b
                type: radio_button
                values:
                - 630c47d290546926f034ea1c
              - identifier: creative_assets
                type: file
                values:
                - key: creative-asset-key-1
                  name: Creative Asset 1
                - key: creative-asset-key-2
                  name: Creative Asset 2
              - identifier: due_date
                type: date
                values:
                - '2022-02-20T12:02:03.000000Z'
              - identifier: media_links
                type: text_area
                values:
                - 'some text

                  more text'
      responses:
        '201':
          description: Created work request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkRequestResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
  /work-requests/{id}:
    get:
      operationId: getWorkRequest
      tags:
      - Work Requests
      summary: GET /work-requests/{id}
      description: '<span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Get a work request by ID. '
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the work request
        example: 9119a313057e401189407116fcd3aa24
      responses:
        '200':
          description: Fetched work request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkRequestResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      operationId: updateWorkRequest
      tags:
      - Work Requests
      summary: PATCH /work-requests/{id}
      description: '<span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Updates a work request. '
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the work request
        example: 9119a313057e401189407116fcd3aa24
      requestBody:
        description: Payload to update the work request
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkRequestUpdateRequest'
      responses:
        '204':
          description: Work request updated
        '400':
          $ref: '#/components/responses/ClientError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
  /work-requests/{id}/comments:
    get:
      operationId: listWorkRequestComments
      tags:
      - Work Requests
      summary: GET /work-requests/{id}/comments
      description: '<span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Get list of comments for a work request. '
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the work request
        example: da80cfd7bbf84959a8a981acbad996b3
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/page_size'
      responses:
        '200':
          description: List of comments for the work request
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  data:
                    description: List of work request comments
                    type: array
                    items:
                      $ref: '#/components/schemas/WorkRequestCommentResponse'
                  pagination:
                    allOf:
                    - $ref: '#/components/schemas/Pagination'
                    - type: object
                      properties:
                        next:
                          type:
                          - string
                          - 'null'
                          example: https://api.cmp.optimizely.com/v3/work-requests/da80cfd7bbf84959a8a981acbad996b3/comments?offset=10&page_size=10
                required:
                - data
                - pagination
        '400':
          $ref: '#/components/responses/ClientError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    post:
      operationId: addCommentToWorkRequest
      tags:
      - Work Requests
      summary: POST /work-requests/{id}/comments
      description: '<span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Post a comment on a work request. '
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the work request
        example: da80cfd7bbf84959a8a981acbad996b3
      requestBody:
        description: Payload to add comment
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CommentWithReplyCreateRequest'
      responses:
        '201':
          description: Created comment for the work request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkRequestCommentResponse'
        '400':
          $ref: '#/components/responses/ClientError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /work-requests/{work_request_id}/comments/{comment_id}:
    get:
      operationId: getWorkRequestComment
      tags:
      - Work Requests
      summary: GET /work-requests/{work_request_id}/comments/{comment_id}
      description: <span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Get a work request comment by ID.
      parameters:
      - name: work_request_id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the work request
        example: da80cfd7bbf84959a8a981acbad996b3
      - name: comment_id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the work request comment
        example: 5fe38c39574b52a62a089239
      responses:
        '200':
          description: Fetched work request comment
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkRequestCommentResponse'
        '400':
          $ref: '#/components/responses/ClientError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /work-requests/{id}/attachments:
    post:
      operationId: addAttachmentToWorkRequest
      tags:
      - Work Requests
      summary: POST /work-requests/{id}/attachments
      description: '<span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Create attachments for a work request. '
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the work request
        example: da80cfd7bbf84959a8a981acbad996b3
      requestBody:
        description: Payload to create an attachment
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AttachmentRequest'
      responses:
        '201':
          description: Created attachment for the work request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AttachmentResponse'
        '400':
          $ref: '#/components/responses/ClientError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /work-requests/{work_request_id}/attachments/{attachment_id}:
    delete:
      operationId: deleteWorkRequestAttachment
      tags:
      - Work Requests
      summary: DELETE /work-requests/{work_request_id}/attachments/{attachment_id}
      description: <span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Delete a work request attachment.
      parameters:
      - name: work_request_id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the work request
        example: 7674a2a69f8d4eb48e8d4dafaebc7238
      - name: attachment_id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the work request attachment
        example: 62f2052962f36e010b9471f1
      responses:
        '204':
          description: Deleted the attachment
        '400':
          $ref: '#/components/responses/ClientError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
  /work-requests/{id}/creative-assets:
    post:
      operationId: createWorkRequestCreativeAsset
      tags:
      - Work Requests
      summary: POST /work-requests/{id}/creative-assets
      description: '<span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Create creative assets for a work request. '
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the work request
        example: da80cfd7bbf84959a8a981acbad996b3
      requestBody:
        description: Payload to create creative assets
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreativeAssetRequest'
      responses:
        '200':
          description: Created creative asset for the work request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreativeAssetResponse'
        '400':
          $ref: '#/components/responses/ClientError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /work-requests/{work_request_id}/creative-assets/{creative_asset_id}:
    delete:
      operationId: deleteWorkRequestCreativeAsset
      tags:
      - Work Requests
      summary: DELETE /work-requests/{work_request_id}/creative-assets/{creative_asset_id}
      description: <span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Delete a work request creative asset.
      parameters:
      - name: work_request_id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the work request
        example: 7674a2a69f8d4eb48e8d4dafaebc7238
      - name: creative_asset_id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the work request creative asset
        example: 209d2d281e2b11edbac602420ac80012
      responses:
        '204':
          description: Deleted the creative asset
        '400':
          $ref: '#/components/responses/ClientError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
  /work-requests/{id}/approved-assets:
    get:
      operationId: listWorkRequestApprovedAssets
      tags:
      - Work Requests
      summary: GET /work-requests/{id}/approved-assets
      description: <span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Get a list of approved assets of a work request.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the work request
        example: da80cfd7bbf84959a8a981acbad996b3
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/page_size'
      responses:
        '200':
          description: List of approved assets for the work request
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  data:
                    description: List of work request approved assets
                    type: array
                    items:
                      $ref: '#/components/schemas/WorkRequestApprovedAssetResponse'
                  pagination:
                    allOf:
                    - $ref: '#/components/schemas/Pagination'
                    - type: object
                      properties:
                        next:
                          type:
                          - string
                          - 'null'
                          example: https://api.cmp.optimizely.com/v3/work-requests/da80cfd7bbf84959a8a981acbad996b3/approved-assets?offset=10&page_size=10
                required:
                - data
                - pagination
        '400':
          $ref: '#/components/responses/ClientError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /work-requests/{id}/campaigns:
    post:
      operationId: createCampaignFromWorkRequest
      tags:
      - Work Requests
      summary: POST /work-requests/{id}/campaigns
      description: '<span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Create a new campaign from a work request. '
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the work request
        example: da80cfd7bbf84959a8a981acbad996b3
      requestBody:
        description: Payload to create a campaign
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkRequestCampaignRequest'
      responses:
        '201':
          description: Created a campaign from a work request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkRequestCampaignResponse'
        '400':
          $ref: '#/components/responses/ClientError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /work-requests/{id}/tasks:
    post:
      operationId: createTaskFromWorkRequest
      tags:
      - Work Requests
      summary: POST /work-requests/{id}/tasks
      description: '<span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Create a new task from a work request. '
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the work request
        example: da80cfd7bbf84959a8a981acbad996b3
      requestBody:
        description: Payload to create a task
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkRequestTaskRequest'
      responses:
        '201':
          description: Created a task from a work request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkRequestTaskResponse'
        '400':
          $ref: '#/components/responses/ClientError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
  /work-requests/{id}/related-resources:
    get:
      operationId: listWorkRequestRelatedResources
      tags:
      - Work Requests
      summary: GET /work-requests/{id}/related-resources
      description: <span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Get a list of work request related resources.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the work request
        example: da80cfd7bbf84959a8a981acbad996b3
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/page_size'
      responses:
        '200':
          description: List of fetched work request related resources
          content:
            application/json:
              schema:
                type: object
                additionalProperties: false
                properties:
                  data:
                    description: List of work request related resources
                    type: array
                    items:
                      $ref: '#/components/schemas/WorkRequestRelatedResourceResponse'
                  pagination:
                    allOf:
                    - $ref: '#/components/schemas/Pagination'
                    - type: object
                      properties:
                        next:
                          type:
                          - string
                          - 'null'
                          example: https://api.cmp.optimizely.com/v3/work-requests/5fe4925ef8a9378056bf4e37/related-resources?offset=10&page_size=10
                required:
                - data
                - pagination
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /work-requests/{work_request_id}/form-fields/{form_field_identifier}:
    put:
      operationId: updateWorkRequestFormField
      tags:
      - Work Requests
      summary: PUT /work-requests/{work_request_id}/form-fields/{form_field_identifier}
      description: <span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Updates a work request form field.
      parameters:
      - name: work_request_id
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the work request
        example: 7674a2a69f8d4eb48e8d4dafaebc7238
      - name: form_field_identifier
        in: path
        required: true
        schema:
          type: string
          description: Unique identifier of the work request form field
        example: 209d2d281e2b11edbac602420ac80012
      requestBody:
        description: Payload to update the work request form field
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkRequestFormFieldUpdateRequest'
      responses:
        '200':
          description: Updated work request form field
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkRequestRequestFormFieldUpdateResponse'
        '400':
          $ref: '#/components/responses/ClientError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
components:
  schemas:
    WorkRequestRequestFormFieldCurrencyNumberTypePayload:
      type: object
      properties:
        type:
          type: string
          description: Type of the form field
          example: currency_number
          enum:
          - currency_number
        values:
          type: array
          description: Currency amount for the form field
          maxItems: 1
          items:
            type: string
          example:
          - '123.45'
      required:
      - type
      - values
    TextTypeFormFieldResponse:
      allOf:
      - $ref: '#/components/schemas/BaseFormFieldResponse'
      - type: object
        properties:
          values:
            type: array
            items:
              type: string
              description: Any string value
              example: Sample text
    WorkRequestRequestFormFieldCheckboxTypeResponse:
      type: object
      properties:
        type:
          type: string
          description: Type of the form field
          example: checkbox
          enum:
          - checkbox
        values:
          type: array
          description: Values for the form field
          items:
            type: object
            properties:
              id:
                type: string
                description: Unique identifier of the choice
              name:
                type: string
                description: Name of the choice
            required:
            - id
            - name
          example:
          - id: 63342902e84c7544973c07ce
            name: Option 1
          - id: 633429b2e84c7544973c07e7
            name: Option 2
      required:
      - type
      - values
    WorkRequestRequestFormFieldBriefTypeResponse:
      type: object
      properties:
        type:
          type: string
          description: Type of the form field
          example: brief
          enum:
          - brief
        values:
          type: array
          description: Brief value payload
          maxItems: 1
          items:
            oneOf:
            - $ref: '#/components/schemas/WorkRequestTextBriefResponse'
            - $ref: '#/components/schemas/WorkRequestAttachmentBriefResponse'
            discriminator:
              propertyName: type
              mapping:
                text_brief: '#/components/schemas/WorkRequestTextBriefResponse'
                attachment_brief: '#/components/schemas/WorkRequestAttachmentBriefResponse'
      required:
      - type
      - values
    FileTypeFormFieldValueResponse:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the file
          example: 6dzf4ds4fds4f4564dzsfd
        name:
          type: string
          description: Name of the file
          example: Sample Name
        url:
          type: string
          description: URL of the file
          example: https://files.cmp.optimizely.com/download/8nv8svsdnivjusdijuvisdv?token=token
      required:
      - id
      - name
      - url
    MultiChoiceTypeFormFieldResponse:
      allOf:
      - $ref: '#/components/schemas/BaseFormFieldResponse'
      - type: object
        properties:
          values:
            type: array
            description: Array of choices
            items:
              type: object
              properties:
                id:
                  type: string
                  description: Unique identifier of the choice
                  example: 9119a313057e401189407116fcd3
                name:
                  type: string
                  description: Name of the choice
                  example: Choice 1
              required:
              - id
              - name
    WorkRequestTaskResponse:
      type: object
      additionalProperties: false
      properties:
        id:
          type: string
          description: Unique identifier of the task
          example: 8q7f910551b00a722e0418830cee6612
        title:
          type: string
          description: Title of the task
          example: The awesome task
        reference_id:
          type: string
          description: Reference Id of the task
          example: TSK-1111
        start_at:
          type:
          - string
          - 'null'
          format: date-time
          description: Start date of the task, in ISO 8601 UTC format (2022-12-01T06:00:00Z)
          example: '2022-12-01T06:00:00Z'
        due_at:
          type:
          - string
          - 'null'
          format: date-time
          description: Due date of the task, in ISO 8601 UTC format (2022-12-31T06:00:00Z)
          example: '2022-12-31T06:00:00Z'
        owner_id:
          type: string
          description: Unique identifier of the owner
          example: 8q7f910551b00a722e0418830cee6612
        links:
          type: object
          additionalProperties: false
          description: Meta links
          properties:
            self:
              type: string
              description: URL of the task
              example: https://api.cmp.optimizely.com/v3/tasks/8q7f910551b00a722e0418830cee6612
            owner:
              type:
              - string
              - 'null'
              description: URL of the task owner
              example: https://api.cmp.optimizely.com/v3/users/8q7f910551b00a722e0418830cee6612
          required:
          - self
          - brief
      required:
      - id
      - title
      - start_at
      - due_at
      - owner_id
      - links
    AttachmentRequest:
      type: object
      additionalProperties: false
      properties:
        key:
          type: string
          minLength: 1
          maxLength: 100
          description: Unique identifier of the file upload session. This is the `upload_meta_fields.key` field retrieved from the `/v3/upload-u

# --- truncated at 32 KB (86 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/optimizely/refs/heads/main/openapi/optimizely-work-requests-api-openapi.yml