Measurabl Portfolios API

The Portfolios API from Measurabl — 3 operation(s) for portfolios.

Operations 4

POST /core/v0/portfolios Creates a new portfolio for a specified account
GET /core/v0/portfolios Returns a list of portfolios for a specified account
PATCH /core/v0/portfolios/{portfolio_id} Update a specific portfolio's name for a specified account
GET /partners/v0/portfolios Returns the portfolios that a partner can access

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/measurabl-portfolios-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

measurabl-portfolios-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Measurabl Portfolios API
  version: v0
  description: 'Operations tagged Portfolios across 2 of this provider''s published API definitions: measurabl-core-openapi.yml, measurabl-partners-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.measurabl.com/core/v0
  description: Base URL declared by the provider in apis.yml (roadmap#122).
- url: https://api.measurabl.com/partners/v0
  description: Base URL declared by the provider in apis.yml (roadmap#122).
tags:
- name: Portfolios
paths:
  /core/v0/portfolios:
    post:
      summary: Creates a new portfolio for a specified account
      tags:
      - Portfolios
      security:
      - OAuth2: []
      parameters: []
      responses:
        '200':
          description: Portfolios created
          content:
            application/vnd.api+json:
              example:
                data:
                  id: 62e6ebc9-ceb4-4ed2-b547-c058add4451c
                  type: portfolios
                  attributes:
                    name: Example Portfolio
                    createdAt: '2026-07-16T13:21:42Z'
                    updatedAt: '2026-07-16T13:21:42Z'
              schema:
                $ref: '#/components/schemas/json_api'
        '400':
          description: Bad Request
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '400'
                  title: Internal Server Error
                  detail: Bad Request
              schema:
                $ref: '#/components/schemas/json_api'
        '500':
          description: An internal error has occurred
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '500'
                  title: Internal Server Error
                  detail: An error occurred with the request
              schema:
                $ref: '#/components/schemas/json_api'
        '401':
          description: Unauthorized Request
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '401'
                  title: Unauthorized
                  detail: Unauthorized AppType or Product required for this request
              schema:
                $ref: '#/components/schemas/json_api'
        '429':
          description: Too Many Requests
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '429'
                  title: Too Many Requests
                  detail: Rate Limit Exceeded
              schema:
                $ref: '#/components/schemas/json_api'
        '502':
          description: Bad Gateway
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '502'
                  title: Bad Gateway
                  detail: A Measurabl Server is down, please try again later
              schema:
                $ref: '#/components/schemas/json_api'
        '408':
          description: Request timeout
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '408'
                  title: Request Timeout
                  detail: The request you made has timed out
              schema:
                $ref: '#/components/schemas/json_api'
        '404':
          description: Account not found
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '404'
                  title: Account not found
                  detail: The specified account does not exist
              schema:
                $ref: '#/components/schemas/json_api'
        '403':
          description: unauthorized request
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '403'
                  title: Forbidden
                  detail: 'A valid auth token is required.

                    POST to ''/token'' with a valid ''key'' and ''secret'' to get an auth token.

                    '
              schema:
                $ref: '#/components/schemas/json_api'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    type:
                      type: string
                    attributes:
                      type: object
                      properties:
                        name:
                          type: string
                      required:
                      - name
              example:
                data:
                  type: portfolios
                  attributes:
                    name: New Portfolio Name
        required: true
        description: Request body used to create a portfolio for an account
    get:
      summary: Returns a list of portfolios for a specified account
      tags:
      - Portfolios
      security:
      - OAuth2: []
      parameters:
      - name: page
        in: query
        schema:
          type: integer
      - name: pageSize
        in: query
        schema:
          type: integer
      responses:
        '200':
          description: Return list of account portfolios
          content:
            application/vnd.api+json:
              example:
                data:
                - id: 0e393177-8571-4b52-93ea-2bd16dbfc205
                  type: portfolios
                  attributes:
                    name: Test Portfolio
                    createdAt: '2026-07-16T13:21:43Z'
                    updatedAt: '2026-07-16T13:21:43Z'
                  relationships:
                    primaryUser:
                      data:
                        id: 62ac308d-6796-4c6a-817f-ba545db4b68f
                        type: users
                included:
                - id: 62ac308d-6796-4c6a-817f-ba545db4b68f
                  type: users
                  attributes:
                    email: erasmo@example.example
                    firstName: ExampleUser
                    lastName: Test
                    createdAt: '2026-07-16T13:21:43Z'
                    updatedAt: '2026-07-16T13:21:43Z'
                meta:
                  total_count: 2
                  item_count: 2
                  page_count: 1
                  current_page: 1
                  prev_page: null
                  next_page: null
                  last_page: 1
                  from_record: 1
                  to_record: 2
                links:
                  self: /api/v1/core/accounts/267a1bd2-ea8f-48fb-8a82-8b5109c06908/portfolios
                  prev: null
                  next: null
              schema:
                $ref: '#/components/schemas/json_api'
        '400':
          description: Bad Request
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '400'
                  title: Internal Server Error
                  detail: Bad Request
              schema:
                $ref: '#/components/schemas/json_api'
        '500':
          description: An internal error has occurred
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '500'
                  title: Internal Server Error
                  detail: An error occurred with the request
              schema:
                $ref: '#/components/schemas/json_api'
        '401':
          description: Unauthorized Request
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '401'
                  title: Unauthorized
                  detail: Unauthorized AppType or Product required for this request
              schema:
                $ref: '#/components/schemas/json_api'
        '429':
          description: Too Many Requests
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '429'
                  title: Too Many Requests
                  detail: Rate Limit Exceeded
              schema:
                $ref: '#/components/schemas/json_api'
        '502':
          description: Bad Gateway
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '502'
                  title: Bad Gateway
                  detail: A Measurabl Server is down, please try again later
              schema:
                $ref: '#/components/schemas/json_api'
        '408':
          description: Request timeout
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '408'
                  title: Request Timeout
                  detail: The request you made has timed out
              schema:
                $ref: '#/components/schemas/json_api'
        '404':
          description: Account not found
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '404'
                  title: Account not found
                  detail: The specified account does not exist
              schema:
                $ref: '#/components/schemas/json_api'
        '403':
          description: unauthorized request
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '403'
                  title: Forbidden
                  detail: 'A valid auth token is required.

                    POST to ''/token'' with a valid ''key'' and ''secret'' to get an auth token.

                    '
              schema:
                $ref: '#/components/schemas/json_api'
    servers:
    - url: https://api.measurabl.com/core/v0
      description: Base URL declared by the provider in apis.yml (roadmap#122).
  /core/v0/portfolios/{portfolio_id}:
    patch:
      summary: Update a specific portfolio's name for a specified account
      tags:
      - Portfolios
      security:
      - OAuth2: []
      parameters:
      - name: portfolio_id
        in: path
        description: 'Example: 74d75229-efad-4ef7-898e-607ad832796d'
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Portfolios Updated
          content:
            application/vnd.api+json:
              example:
                data:
                  id: 8069c37d-ba84-4109-8d86-7f4da9270a6b
                  type: portfolios
                  attributes:
                    name: New Portfolio Name
                    createdAt: '2026-07-16T13:16:44.547Z'
                    updatedAt: '2026-07-16T13:21:44.547Z'
              schema:
                $ref: '#/components/schemas/json_api'
        '400':
          description: Bad Request
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '400'
                  title: Bad Request
                  detail: An invalid UUID parameter was submitted with the request (portfolio_id)
              schema:
                $ref: '#/components/schemas/json_api'
        '500':
          description: An internal error has occurred
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '500'
                  title: Internal Server Error
                  detail: An error occurred with the request
              schema:
                $ref: '#/components/schemas/json_api'
        '401':
          description: Unauthorized Request
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '401'
                  title: Unauthorized
                  detail: Unauthorized AppType or Product required for this request
              schema:
                $ref: '#/components/schemas/json_api'
        '429':
          description: Too Many Requests
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '429'
                  title: Too Many Requests
                  detail: Rate Limit Exceeded
              schema:
                $ref: '#/components/schemas/json_api'
        '502':
          description: Bad Gateway
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '502'
                  title: Bad Gateway
                  detail: A Measurabl Server is down, please try again later
              schema:
                $ref: '#/components/schemas/json_api'
        '408':
          description: Request timeout
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '408'
                  title: Request Timeout
                  detail: The request you made has timed out
              schema:
                $ref: '#/components/schemas/json_api'
        '404':
          description: Account not found
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '404'
                  title: Account not found
                  detail: The specified account does not exist
              schema:
                $ref: '#/components/schemas/json_api'
        '403':
          description: unauthorized request
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '403'
                  title: Forbidden
                  detail: 'A valid auth token is required.

                    POST to ''/token'' with a valid ''key'' and ''secret'' to get an auth token.

                    '
              schema:
                $ref: '#/components/schemas/json_api'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    id:
                      type: string
                    type:
                      type: string
                    attributes:
                      type: object
                      properties:
                        name:
                          type: string
                      required:
                      - name
              example:
                data:
                  id: a5750181-57f7-4e04-9bb8-8b5c092507b0
                  type: portfolios
                  attributes:
                    name: Updated Portfolio Name
        required: true
        description: Request body used to update a portfolio
    servers:
    - url: https://api.measurabl.com/core/v0
      description: Base URL declared by the provider in apis.yml (roadmap#122).
  /partners/v0/portfolios:
    get:
      summary: Returns the portfolios that a partner can access
      tags:
      - Portfolios
      security:
      - OAuth2: []
      parameters:
      - name: page
        in: query
        schema:
          type: integer
      - name: pageSize
        in: query
        schema:
          type: integer
      responses:
        '200':
          description: list of portfolios
          content:
            application/vnd.api+json:
              example:
                data:
                - id: caa54ae2405bb71d14a4c992b3864337
                  type: portfolios
                  attributes:
                    name: ACME Co.
                    createdAt: '2014-06-05T03:55:36.000Z'
                    updatedAt: '2019-03-28T00:04:32.000Z'
                meta:
                  totalCount: 1
                  itemCount: 5
                  pageCount: 1
                  currentPage: 1
                  prevPage: null
                  nextPage: null
                  lastPage: 1
                  fromRecord: 1
                  toRecord: 1
                links:
                  self: /partners/v0/portfolios?page=1&pageSize=5
                  prev: null
                  next: null
              schema:
                $ref: '#/components/schemas/json_api'
        '404':
          description: when requesting an overflow page
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '404'
                  title: Not Found
                  detail: 'The page requested was not found

                    The last page available is 1

                    '
              schema:
                $ref: '#/components/schemas/json_api'
        '429':
          description: Too Many Requests
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '429'
                  title: Too Many Requests
                  detail: Rate Limit Exceeded
              schema:
                $ref: '#/components/schemas/json_api'
        '403':
          description: unauthorized request
          content:
            application/vnd.api+json:
              example:
                errors:
                - status: '403'
                  title: Forbidden
                  detail: 'A valid auth token is required.

                    POST to ''/token'' with a valid ''key'' and ''secret'' to get an auth token.

                    '
              schema:
                $ref: '#/components/schemas/json_api'
    servers:
    - url: https://api.measurabl.com/partners/v0
      description: Base URL declared by the provider in apis.yml (roadmap#122).
components:
  schemas:
    success:
      type: object
      required:
      - data
      properties:
        data:
          $ref: '#/components/schemas/data'
        included:
          description: To reduce the number of HTTP requests, servers **MAY** allow responses that include related resources along with the requested primary resources. Such responses are called 'compound documents'.
          type: array
          items:
            $ref: '#/components/schemas/resource'
          uniqueItems: true
        meta:
          $ref: '#/components/schemas/meta'
        links:
          description: Link members related to the primary data.
          allOf:
          - $ref: '#/components/schemas/links'
          - $ref: '#/components/schemas/pagination'
        jsonapi:
          $ref: '#/components/schemas/jsonapi'
      additionalProperties: false
    relationshipToOne:
      description: References to other resource objects in a to-one ('relationship'). Relationships can be specified by including a member in a resource's links object.
      anyOf:
      - $ref: '#/components/schemas/empty'
      - $ref: '#/components/schemas/linkage'
    relationshipLinks:
      description: A resource object **MAY** contain references to other resource objects ('relationships'). Relationships may be to-one or to-many. Relationships can be specified by including a member in a resource's links object.
      type: object
      properties:
        self:
          $ref: '#/components/schemas/link'
        related:
          $ref: '#/components/schemas/link'
      additionalProperties: true
    relationshipToMany:
      description: An array of objects each containing 'type' and 'id' members for to-many relationships.
      type: array
      items:
        $ref: '#/components/schemas/linkage'
      uniqueItems: true
    data:
      description: The document's 'primary data' is a representation of the resource or collection of resources targeted by a request.
      anyOf:
      - $ref: '#/components/schemas/resource'
      - description: An array of resource objects, an array of resource identifier objects, or an empty array ([]), for requests that target resource collections.
        type: array
        items:
          $ref: '#/components/schemas/resource'
        uniqueItems: true
      - description: null if the request is one that might correspond to a single resource, but doesn't currently.
    pagination:
      type: object
      properties:
        first:
          description: The first page of data
          type: string
          format: uri-reference
          x-nullable: true
        last:
          description: The last page of data
          type: string
          format: uri-reference
          x-nullable: true
        prev:
          description: The previous page of data
          type: string
          format: uri-reference
          x-nullable: true
        next:
          description: The next page of data
          type: string
          format: uri-reference
          x-nullable: true
    meta:
      description: Non-standard meta-information that can not be represented as an attribute or relationship.
      type: object
      additionalProperties: true
    failure:
      type: object
      required:
      - errors
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/error'
          uniqueItems: true
        meta:
          $ref: '#/components/schemas/meta'
        jsonapi:
          $ref: '#/components/schemas/jsonapi'
        links:
          $ref: '#/components/schemas/links'
      additionalProperties: false
    json_api:
      oneOf:
      - $ref: '#/components/schemas/success'
      - $ref: '#/components/schemas/failure'
      - $ref: '#/components/schemas/info'
    link:
      description: 'A link **MUST** be represented as either: a string containing the link''s URL or a link object.'
      oneOf:
      - description: A string containing the link's URL.
        type:
        - string
        - 'null'
        format: uri-reference
      - type: object
        required:
        - href
        properties:
          href:
            description: A string containing the link's URL.
            type: string
            format: uri-reference
          meta:
            $ref: '#/components/schemas/meta'
    links:
      type: object
      additionalProperties:
        $ref: '#/components/schemas/link'
    empty:
      description: Describes an empty to-one relationship.
    linkage:
      description: The 'type' and 'id' to non-empty members.
      type: object
      required:
      - type
      - id
      properties:
        type:
          type: string
        id:
          type: string
        meta:
          $ref: '#/components/schemas/meta'
      additionalProperties: false
    error:
      type: object
      properties:
        id:
          description: A unique identifier for this particular occurrence of the problem.
          type: string
        links:
          $ref: '#/components/schemas/links'
        status:
          description: The HTTP status code applicable to this problem, expressed as a string value.
          type: string
        code:
          description: An application-specific error code, expressed as a string value.
          type: string
        title:
          description: A short, human-readable summary of the problem. It **SHOULD NOT** change from occurrence to occurrence of the problem, except for purposes of localization.
          type: string
        detail:
          description: A human-readable explanation specific to this occurrence of the problem.
          type: string
        source:
          type: object
          properties:
            pointer:
              description: A JSON Pointer [RFC6901] to the associated entity in the request document [e.g. '/data' for a primary data object, or '/data/attributes/title' for a specific attribute].
              type: string
            parameter:
              description: A string indicating which query parameter caused the error.
              type: string
        meta:
          $ref: '#/components/schemas/meta'
      additionalProperties: false
    jsonapi:
      description: An object describing the server's implementation
      type: object
      properties:
        version:
          type: string
        meta:
          $ref: '#/components/schemas/meta'
      additionalProperties: false
    attributes:
      description: Members of the attributes object ('attributes') represent information about the resource object in which it's defined.
      type: object
      additionalProperties: true
    info:
      type: object
      required:
      - meta
      properties:
        meta:
          $ref: '#/components/schemas/meta'
        links:
          $ref: '#/components/schemas/links'
        jsonapi:
          $ref: '#/components/schemas/jsonapi'
      additionalProperties: false
    relationships:
      description: Members of the relationships object ('relationships') represent references from the resource object in which it's defined to other resource objects.
      type: object
      properties:
        links:
          $ref: '#/components/schemas/relationshipLinks'
        data:
          description: Member, whose value represents 'resource linkage'.
          oneOf:
          - $ref: '#/components/schemas/relationshipToOne'
          - $ref: '#/components/schemas/relationshipToMany'
        meta:
          $ref: '#/components/schemas/meta'
      additionalProperties: true
    resource:
      description: '''Resource objects'' appear in a JSON:API document to represent resources.'
      type: object
      required:
      - type
      - id
      properties:
        type:
          type: string
        id:
          type: string
        attributes:
          $ref: '#/components/schemas/attributes'
        relationships:
          $ref: '#/components/schemas/relationships'
        links:
          $ref: '#/components/schemas/links'
        meta:
          $ref: '#/components/schemas/meta'
      additionalProperties: false
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.measurabl.com/token
          scopes: {}
x-refined-from:
- measurabl-core-openapi.yml
- measurabl-partners-openapi.yml