Factset · Capability

FactSet Portfolio Optimizer API — Optimizations

FactSet Portfolio Optimizer API — Optimizations. 6 operations. Lead operation: Factset Create and Run Fpo Optimization. Self-contained Naftiko capability covering one Factset business surface.

Run with Naftiko FactsetOptimizations

What You Can Do

POST
Postandoptimize — Factset Create and Run Fpo Optimization
/v1/analytics/engines/fpo/v3/optimizations
PUT
Putandoptimize — Factset Create or Update Fpo Optimization and Run It.
/v1/analytics/engines/fpo/v3/optimizations/{id}
GET
Getoptimizationparameters — Factset Get Fpo Optimization Parameters by Id
/v1/analytics/engines/fpo/v3/optimizations/{id}
DELETE
Canceloptimizationbyid — Factset Cancel Fpo Optimization by Id
/v1/analytics/engines/fpo/v3/optimizations/{id}
GET
Getoptimizationresult — Factset Get Fpo Optimization Result by Id
/v1/analytics/engines/fpo/v3/optimizations/{id}/result
GET
Getoptimizationstatusbyid — Factset Get Fpo Optimization Status by Id
/v1/analytics/engines/fpo/v3/optimizations/{id}/status

MCP Tools

factset-create-and-run-fpo

Factset Create and Run Fpo Optimization

factset-create-update-fpo-optimization

Factset Create or Update Fpo Optimization and Run It.

idempotent
factset-get-fpo-optimization-parameters

Factset Get Fpo Optimization Parameters by Id

read-only idempotent
factset-cancel-fpo-optimization-id

Factset Cancel Fpo Optimization by Id

idempotent
factset-get-fpo-optimization-result

Factset Get Fpo Optimization Result by Id

read-only idempotent
factset-get-fpo-optimization-status

Factset Get Fpo Optimization Status by Id

read-only idempotent

Capability Spec

portfolio-optimizer-optimizations.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: FactSet Portfolio Optimizer API — Optimizations
  description: 'FactSet Portfolio Optimizer API — Optimizations. 6 operations. Lead operation: Factset Create and Run Fpo
    Optimization. Self-contained Naftiko capability covering one Factset business surface.'
  tags:
  - Factset
  - Optimizations
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    FACTSET_API_KEY: FACTSET_API_KEY
capability:
  consumes:
  - type: http
    namespace: portfolio-optimizer-optimizations
    baseUri: https://api.factset.com
    description: FactSet Portfolio Optimizer API — Optimizations business capability. Self-contained, no shared references.
    resources:
    - name: analytics-engines-fpo-v3-optimizations
      path: /analytics/engines/fpo/v3/optimizations
      operations:
      - name: postandoptimize
        method: POST
        description: Factset Create and Run Fpo Optimization
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: X-FactSet-Api-Long-Running-Deadline
          in: header
          type: integer
          description: Long running deadline in seconds.
        - name: Cache-Control
          in: header
          type: string
          description: Standard HTTP header.  Accepts no-cache, no-store, max-age, max-stale.
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: analytics-engines-fpo-v3-optimizations-id
      path: /analytics/engines/fpo/v3/optimizations/{id}
      operations:
      - name: putandoptimize
        method: PUT
        description: Factset Create or Update Fpo Optimization and Run It.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: from url, provided from the location header in the Create and Run FPO optimization endpoint
          required: true
        - name: X-FactSet-Api-Long-Running-Deadline
          in: header
          type: integer
          description: Long running deadline in seconds.
        - name: Cache-Control
          in: header
          type: string
          description: Standard HTTP header.  Accepts no-cache, no-store, max-age, max-stale.
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: getoptimizationparameters
        method: GET
        description: Factset Get Fpo Optimization Parameters by Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: from url, provided from the location header in the Create and Run FPO optimization endpoint
          required: true
      - name: canceloptimizationbyid
        method: DELETE
        description: Factset Cancel Fpo Optimization by Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: from url, provided from the location header in the Create and Run FPO optimization endpoint
          required: true
    - name: analytics-engines-fpo-v3-optimizations-id-result
      path: /analytics/engines/fpo/v3/optimizations/{id}/result
      operations:
      - name: getoptimizationresult
        method: GET
        description: Factset Get Fpo Optimization Result by Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: from url, provided from the location header in the Get FPO optimization status by id endpoint
          required: true
        - name: Accept
          in: header
          type: string
          description: Standard HTTP header. Value can be gzip, compress, deflate, br, identity and/or *
    - name: analytics-engines-fpo-v3-optimizations-id-status
      path: /analytics/engines/fpo/v3/optimizations/{id}/status
      operations:
      - name: getoptimizationstatusbyid
        method: GET
        description: Factset Get Fpo Optimization Status by Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: from url, provided from the location header in the Create and Run FPO optimization endpoint
          required: true
    authentication:
      type: basic
      username: '{{env.FACTSET_USER}}'
      password: '{{env.FACTSET_PASS}}'
  exposes:
  - type: rest
    namespace: portfolio-optimizer-optimizations-rest
    port: 8080
    description: REST adapter for FactSet Portfolio Optimizer API — Optimizations. One Spectral-compliant resource per consumed
      operation, prefixed with /v1.
    resources:
    - path: /v1/analytics/engines/fpo/v3/optimizations
      name: analytics-engines-fpo-v3-optimizations
      description: REST surface for analytics-engines-fpo-v3-optimizations.
      operations:
      - method: POST
        name: postandoptimize
        description: Factset Create and Run Fpo Optimization
        call: portfolio-optimizer-optimizations.postandoptimize
        with:
          X-FactSet-Api-Long-Running-Deadline: rest.X-FactSet-Api-Long-Running-Deadline
          Cache-Control: rest.Cache-Control
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/analytics/engines/fpo/v3/optimizations/{id}
      name: analytics-engines-fpo-v3-optimizations-id
      description: REST surface for analytics-engines-fpo-v3-optimizations-id.
      operations:
      - method: PUT
        name: putandoptimize
        description: Factset Create or Update Fpo Optimization and Run It.
        call: portfolio-optimizer-optimizations.putandoptimize
        with:
          id: rest.id
          X-FactSet-Api-Long-Running-Deadline: rest.X-FactSet-Api-Long-Running-Deadline
          Cache-Control: rest.Cache-Control
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: getoptimizationparameters
        description: Factset Get Fpo Optimization Parameters by Id
        call: portfolio-optimizer-optimizations.getoptimizationparameters
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: canceloptimizationbyid
        description: Factset Cancel Fpo Optimization by Id
        call: portfolio-optimizer-optimizations.canceloptimizationbyid
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/analytics/engines/fpo/v3/optimizations/{id}/result
      name: analytics-engines-fpo-v3-optimizations-id-result
      description: REST surface for analytics-engines-fpo-v3-optimizations-id-result.
      operations:
      - method: GET
        name: getoptimizationresult
        description: Factset Get Fpo Optimization Result by Id
        call: portfolio-optimizer-optimizations.getoptimizationresult
        with:
          id: rest.id
          Accept: rest.Accept
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/analytics/engines/fpo/v3/optimizations/{id}/status
      name: analytics-engines-fpo-v3-optimizations-id-status
      description: REST surface for analytics-engines-fpo-v3-optimizations-id-status.
      operations:
      - method: GET
        name: getoptimizationstatusbyid
        description: Factset Get Fpo Optimization Status by Id
        call: portfolio-optimizer-optimizations.getoptimizationstatusbyid
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: portfolio-optimizer-optimizations-mcp
    port: 9090
    transport: http
    description: MCP adapter for FactSet Portfolio Optimizer API — Optimizations. One tool per consumed operation, routed
      inline through this capability's consumes block.
    tools:
    - name: factset-create-and-run-fpo
      description: Factset Create and Run Fpo Optimization
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: portfolio-optimizer-optimizations.postandoptimize
      with:
        X-FactSet-Api-Long-Running-Deadline: tools.X-FactSet-Api-Long-Running-Deadline
        Cache-Control: tools.Cache-Control
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: factset-create-update-fpo-optimization
      description: Factset Create or Update Fpo Optimization and Run It.
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: portfolio-optimizer-optimizations.putandoptimize
      with:
        id: tools.id
        X-FactSet-Api-Long-Running-Deadline: tools.X-FactSet-Api-Long-Running-Deadline
        Cache-Control: tools.Cache-Control
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: factset-get-fpo-optimization-parameters
      description: Factset Get Fpo Optimization Parameters by Id
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: portfolio-optimizer-optimizations.getoptimizationparameters
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: factset-cancel-fpo-optimization-id
      description: Factset Cancel Fpo Optimization by Id
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: portfolio-optimizer-optimizations.canceloptimizationbyid
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: factset-get-fpo-optimization-result
      description: Factset Get Fpo Optimization Result by Id
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: portfolio-optimizer-optimizations.getoptimizationresult
      with:
        id: tools.id
        Accept: tools.Accept
      outputParameters:
      - type: object
        mapping: $.
    - name: factset-get-fpo-optimization-status
      description: Factset Get Fpo Optimization Status by Id
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: portfolio-optimizer-optimizations.getoptimizationstatusbyid
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.