MerQube Portfolio Handler API

list of portfolio handlers

Operations 6

GET /target_portfolio_handler Get all MerQube portfolio_handler.
POST /target_portfolio_handler Create a new MerQube portfolio_handler
DELETE /target_portfolio_handler/{uuid} Delete a MerQube portfolio_handler.
GET /target_portfolio_handler/{uuid} Returns the MerQube portfolio_handler with this uuid
PATCH /target_portfolio_handler/{uuid} Partially update a MerQube portfolio_handler
PUT /target_portfolio_handler/{uuid} Replace a MerQube portfolio_handler

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/merqube-portfolio-handler-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

merqube-portfolio-handler-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Merqube Portfolio Handler API
  version: 4.40.0
  contact:
    email: support@merqube.com
    name: API Support
    url: https://www.merqube.com/contact
  description: 'Operations tagged portfolio_handler across 2 of this provider''s published API definitions: merqube-api-openapi.json, merqube-api-raw.yaml. Each path carries the servers of the definition it was published in.'
servers:
- description: Production server
  url: https://api.merqube.com
- description: Testing server for next generation features
  url: https://api.staging.merqube.com
tags:
- description: list of portfolio handlers
  name: portfolio_handler
paths:
  /target_portfolio_handler:
    get:
      description: Get all MerQube portfolio_handler.
      parameters:
      - $ref: '#/components/parameters/filterParam'
      - $ref: '#/components/parameters/idsParam'
      - $ref: '#/components/parameters/nameParam'
      - $ref: '#/components/parameters/namesParam'
      - $ref: '#/components/parameters/namespaceParam'
      - $ref: '#/components/parameters/fieldsParam'
      - $ref: '#/components/parameters/debugParam'
      - $ref: '#/components/parameters/formatParam'
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  error_codes:
                    $ref: '#/components/schemas/ErrorCodes'
                  results:
                    items:
                      $ref: '#/components/schemas/TargetPortfolioHandlerPatchPutGet'
                    type: array
                type: object
          description: 200 response
      summary: Get all MerQube portfolio_handler.
      tags:
      - portfolio_handler
    post:
      description: Create a new MerQube portfolio_handler
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TargetPortfolioHandlerPost'
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  id:
                    description: the uuid of this portfolio_handler
                    type: string
                  status:
                    type: string
                type: object
          description: OK
        '400':
          description: illegal request body
        '403':
          description: not authorized to perform this operation
      summary: Create a new MerQube portfolio_handler
      tags:
      - portfolio_handler
    servers:
    - description: Production server
      url: https://api.merqube.com
    - description: Testing server for next generation features
      url: https://api.staging.merqube.com
  /target_portfolio_handler/{uuid}:
    parameters:
    - $ref: '#/components/parameters/uuidParam'
    delete:
      description: Delete a MerQube portfolio_handler.
      responses:
        '200':
          description: OK
        '403':
          description: not authorized
        '404':
          description: portfolio_handler does not exist
      summary: Delete a MerQube portfolio_handler.
      tags:
      - portfolio_handler
    get:
      description: Returns the MerQube portfolio_handler with this uuid
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TargetPortfolioHandlerPatchPutGet'
          description: 200 response
        '403':
          description: not authorized to perform this operation
        '404':
          description: portfolio_handler does not exist
      summary: Returns the MerQube portfolio_handler with this uuid
      tags:
      - portfolio_handler
    patch:
      description: Partialy update a MerQube portfolio_handler.
      requestBody:
        content:
          application/json:
            schema:
              type: object
        description: any fields from an portfolio_handler Manifest
      responses:
        '200':
          description: OK
        '400':
          description: illegal request body
        '403':
          description: not authorized
        '404':
          description: portfolio_handler does not exist
      summary: Partially update a MerQube portfolio_handler
      tags:
      - portfolio_handler
    put:
      description: Replace a MerQube portfolio_handler.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TargetPortfolioHandlerPatchPutGet'
      responses:
        '200':
          description: OK
        '400':
          description: illegal request body
        '403':
          description: not authorized
        '404':
          description: portfolio_handler does not exist
      summary: Replace a MerQube portfolio_handler
      tags:
      - portfolio_handler
    servers:
    - description: Production server
      url: https://api.merqube.com
    - description: Testing server for next generation features
      url: https://api.staging.merqube.com
components:
  parameters:
    filterParam:
      description: Search keyword for filtering; searches name and title for this substring
      in: query
      name: filter
      required: false
      schema:
        example: MQU
        type: string
    uuidParam:
      description: uuid of the resource
      in: path
      name: uuid
      required: true
      schema:
        type: string
    namespaceParam:
      description: Retrieve all resources in this namespace
      in: query
      name: namespace
      required: false
      schema:
        example: my_client_namespace
        type: string
    fieldsParam:
      description: only return these fields, plus id,namespace, for each of the resource definitions
      in: query
      name: fields
      required: false
      schema:
        example: title,description
        type: string
    nameParam:
      description: Taken as an *Exact* name to find a resource by
      in: query
      name: name
      required: false
      schema:
        example: MQUSTB20
        type: string
    namesParam:
      description: Taken as a comma delimited list of *Exact* names to find a list if resources by
      in: query
      name: names
      required: false
      schema:
        example: MQUSTB20,MQUSTRAV
        type: string
    debugParam:
      description: turns on debugging information by injecting a debug section at the top level
      in: query
      name: debug
      required: false
      schema:
        enum:
        - 'true'
        type: string
    formatParam:
      description: choose csv (Default json)
      in: query
      name: format
      required: false
      schema:
        enum:
        - csv
        type: string
    idsParam:
      description: Taken as a comma delimited list of ids to pull. ignored if ?names is specified.
      in: query
      name: ids
      required: false
      schema:
        example: abcd1234,wxyz4567
        type: string
  schemas:
    TargetPortfolioHandlerPost:
      additionalProperties: false
      description: Describes how to handle the validation and selection of Target Portfolios
      properties:
        auto_select:
          description: If true, the handler will automatically select the last valid portfolio for an effective timestamp
          type: boolean
        eod_final_portfolio_lock_enabled:
          default: false
          description: If true, finalized EOD target portfolios are locked after final selection.
          type: boolean
        event_notification_config:
          additionalProperties: false
          properties:
            FAILED_VALIDATION:
              $ref: '#/components/schemas/TargetPortfolioHandlerNotificationConfig'
            FINAL:
              $ref: '#/components/schemas/TargetPortfolioHandlerNotificationConfig'
            PASSED_VALIDATION:
              $ref: '#/components/schemas/TargetPortfolioHandlerNotificationConfig'
            PAST_DEADLINE:
              $ref: '#/components/schemas/TargetPortfolioHandlerNotificationConfig'
            PENDING_VALIDATION:
              $ref: '#/components/schemas/TargetPortfolioHandlerNotificationConfig'
            SELECTED:
              $ref: '#/components/schemas/TargetPortfolioHandlerNotificationConfig'
            UNSELECTED:
              $ref: '#/components/schemas/TargetPortfolioHandlerNotificationConfig'
          type: object
        intraday_auto_select:
          description: If true, the handler will automatically select the last valid intraday portfolio for an effective timestamp
          type: boolean
        intraday_final_portfolio_lock_enabled:
          default: false
          description: If true, finalized intraday target portfolios are locked after final selection.
          type: boolean
        intraday_selection_window:
          $ref: '#/components/schemas/TimestampWindow'
          description: Window to select intraday portfolios for an effective timestamp.
        intraday_validation_window:
          $ref: '#/components/schemas/TimestampWindow'
          description: Window to submit intraday portfolios for validation.
        intraday_validator_fn:
          type: string
        name:
          type: string
        namespace:
          description: the calling user must have permission to this namespace to create the handler in this namespace
          type: string
        selection_window:
          $ref: '#/components/schemas/TimestampWindow'
        validation_window:
          $ref: '#/components/schemas/TimestampWindow'
        validator_fn:
          type: string
      required:
      - name
      - namespace
      type: object
    CrudExtra:
      additionalProperties: false
      properties:
        id:
          type: string
        namespace:
          type: string
        status:
          $ref: '#/components/schemas/Status'
      required:
      - id
      - status
      - namespace
      type: object
    TargetPortfolioHandlerPatchPutGet:
      additionalProperties: false
      allOf:
      - $ref: '#/components/schemas/TargetPortfolioHandlerPost'
      - $ref: '#/components/schemas/CrudExtra'
      type: object
    Status:
      properties:
        created_at:
          type: string
        created_by:
          type: string
        last_modified:
          type: string
        last_modified_by:
          type: string
        locked_after:
          description: If this is set (non null), the manifest is locked for all edits to any other field after this timestamp. A PUT/PATCH may be used to first unlock the manifest, by setting this field (to a max of one hour in the future), or to `null` again, to make other edits.
          format: date-time
          type: string
      required:
      - last_modified
      type: object
    ErrorCodes:
      properties:
        code:
          type: string
        message:
          type: string
      type: object
    DisseminationDestinations:
      properties:
        email_dissapi_configs:
          items:
            properties:
              bcc_list:
                items:
                  type: string
                type: array
              cc_list:
                items:
                  type: string
                type: array
              content:
                type: string
              email_list:
                items:
                  type: string
                type: array
              file_keys:
                items:
                  type: string
                type: array
              recipient_list:
                items:
                  type: string
                minItems: 1
                type: array
              subject:
                type: string
            required:
            - recipient_list
            - subject
            type: object
          minItems: 1
          type: array
        s3_dissapi_configs:
          items:
            properties:
              bucket:
                type: string
              file_keys:
                items:
                  type: string
                type: array
              key_prefix:
                type: string
            required:
            - bucket
            - key_prefix
            - file_keys
            type: object
          type: array
        sftp_dissapi_configs:
          items:
            properties:
              file_keys:
                items:
                  type: string
                type: array
              sftp_ids:
                items:
                  type: string
                type: array
            required:
            - sftp_ids
            - file_keys
            type: object
          type: array
      type: object
    TargetPortfolioHandlerNotificationConfig:
      additionalProperties: false
      properties:
        diss_destinations:
          $ref: '#/components/schemas/DisseminationDestinations'
        file_name_format:
          type: string
      type: object
    TimestampWindow:
      additionalProperties: false
      properties:
        end_ts:
          description: the time of day of the deadline
          pattern: ^(?:[01]\d|2[0-3]):(?:[0-5]\d):(?:[0-5]\d)$
          type: string
        start_ts:
          description: the time of day of the deadline
          pattern: ^(?:[01]\d|2[0-3]):(?:[0-5]\d):(?:[0-5]\d)$
          type: string
        tzinfo:
          description: Timezone of the window
          type: string
      required:
      - end_ts
      type: object
x-refined-from:
- merqube-api-openapi.json
- merqube-api-raw.yaml
x-internal: true