Hubflo Portals API

The portals API from Hubflo — 1 operation(s) for portals.

Operations 1

PATCH /api/v2/portals Updates the current portal #

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/hubflo-portals-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

hubflo-portals-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Hubflo Portals API
  version: v2
  description: The Hubflo API allows you to write and read data from the Hubflo application.
servers:
- url: https://app.hubflo.com
  description: The production API server
- url: https://staging.hubflo.com
  description: The staging API server
- url: http://localhost:3000
  description: The local API server
tags:
- name: Portals
paths:
  /api/v2/portals:
    patch:
      summary: Updates the current portal
      security:
      - bearer_auth: []
      description: Returns the updated portal
      tags:
      - Portals
      parameters: []
      responses:
        '200':
          description: Portal updated
          headers:
            Content-Type:
              schema:
                type: string
              description: application/json; charset=utf-8
            X-Organization-ID:
              schema:
                type: string
              description: The organization ID
            X-Rate-Limit:
              schema:
                type: integer
              description: Max allowed requests in the current period
            X-Remaining-Requests:
              schema:
                type: integer
              description: Remaining requests in the current period
          content:
            application/json:
              examples:
                example:
                  value:
                    id: b5568e40-ffc5-4918-bb72-6c6ca0c10b79
                    title: Updated portal title
                    headline: Updated headline
                    content: <p>Updated content</p>
                    default_welcome_message: <p>Updated <strong>welcome</strong> message</p>
                    invite_message: <p>Updated <strong>invite</strong> message</p>
                    self_signup: true
                    continue_with_google: true
                    magic_link: true
                    tasks_view: board
                    display_folders_and_files_order: alphabetical_az
                    submit_message_shortcut: enter
                    allow_engine_crawlers: true
                    show_project_stages: true
                    show_seal_submissions: true
                    show_salables: true
                    show_formik_submissions: false
                    display_org_name_for_messages: true
                    contact_can_create_edit_folders_and_move_files: true
                    allow_publicly_visible_folders: true
                    contact_can_delete_files: true
                    contact_can_create_tasks: true
                    contact_tasks_edition_rights: assigned_only
                    default_tasks_visibility: assigned_only
                    subdomain: client
                    host: client.example.com
                    created_at: '2026-07-17T13:08:42Z'
        '401':
          description: 'unauthorized: the Authorization header is missing or invalid'
          content:
            application/json:
              examples:
                example:
                  value:
                    status: 401
                    title: Unauthorized
                    message: Invalid API token
              schema:
                $ref: '#/components/schemas/error_unauthorized'
        '429':
          description: 'too many requests: the user has reached the rate limit'
          content:
            application/json:
              examples:
                example:
                  value:
                    status: 429
                    title: Too Many Requests
                    message: Rate limit reached. Please wait for a couple of minutes.
              schema:
                $ref: '#/components/schemas/error_too_many_requests'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  example: My Portal
                headline:
                  type: string
                  example: Welcome to my space
                content:
                  type: string
                  example: <p>Some <strong>HTML</strong> content</p>
                default_welcome_message:
                  type: string
                  example: <p>Welcome aboard!</p>
                invite_message:
                  type: string
                  example: <p>You are invited!</p>
                self_signup:
                  type: boolean
                  example: true
                continue_with_google:
                  type: boolean
                  example: true
                magic_link:
                  type: boolean
                  example: true
                tasks_view:
                  type: string
                  enum:
                  - list_status
                  - list_sections
                  - board
                  example: board
                display_folders_and_files_order:
                  type: string
                  enum:
                  - manual
                  - alphabetical_az
                  - alphabetical_za
                  - creation_date_oldest
                  - creation_date_newest
                  example: alphabetical_az
                submit_message_shortcut:
                  type: string
                  enum:
                  - meta_enter
                  - enter
                  example: enter
                allow_engine_crawlers:
                  type: boolean
                  example: true
                show_project_stages:
                  type: boolean
                  example: true
                show_seal_submissions:
                  type: boolean
                  example: true
                show_salables:
                  type: boolean
                  example: true
                display_org_name_for_messages:
                  type: boolean
                  example: true
                contact_can_create_edit_folders_and_move_files:
                  type: boolean
                  example: true
                allow_publicly_visible_folders:
                  type: boolean
                  example: true
                contact_can_delete_files:
                  type: boolean
                  example: true
                contact_can_create_tasks:
                  type: boolean
                  example: true
                contact_tasks_edition_rights:
                  type: string
                  enum:
                  - all
                  - assigned_only
                  - none
                  example: assigned_only
                default_tasks_visibility:
                  type: string
                  enum:
                  - all
                  - assigned_only
                  example: assigned_only
        required: true
        description: Portal attributes
      operationId: patchApiV2Portals
      x-operation-id-source: derived
components:
  schemas:
    error_too_many_requests:
      description: A response describing a rate limit error
      type: object
      properties:
        status:
          type: integer
          example: 429
        title:
          type: string
          example: Too Many Requests
        message:
          type: string
          example: Rate limit reached. Please wait for a couple of minutes.
      required:
      - status
      - title
      - message
    error_unauthorized:
      description: A response describing an authentication error
      type: object
      properties:
        status:
          type: integer
          example: 401
        title:
          type: string
          example: Unauthorized
        message:
          type: string
          example: API token not found
      required:
      - status
      - title
      - message
  securitySchemes:
    bearer_auth:
      type: http
      scheme: bearer
x-readme:
  explorer-enabled: true
  proxy-enabled: true