> ## Documentation Index
> Fetch the complete documentation index at: https://docs.member.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Portal Get Onboarding Page

> Retrieve the hub's member Onboarding page for the signed-in contact.

Resolves by type ("onboarding"), never by slug, and requires a signed-in
contact. The page is members-only: a private hub requires a member or an
access-override holder; a public hub also serves a signed-in contact it lets
join for free (registration on, no paid price), whom the onboarding flow joins
as it renders. Any other signed-in contact gets a 403 `page_access_denied`.
With ?resolve=true the response is the contact's resolved tree, served
`Cache-Control: private, no-store`.



## OpenAPI

````yaml /openapi/mio-openapi.json get /api/v1/hub/{hub_id}/pages/onboarding
openapi: 3.1.0
info:
  description: >-
    Production API reference for Membership.io. Use the authored guides for
    workflows and the generated endpoint pages for exact parameters and schemas.
  title: Membership.io API
  version: 0.1.0
servers:
  - description: Production
    url: https://api.member.dev
security:
  - bearerAuth: []
paths:
  /api/v1/hub/{hub_id}/pages/onboarding:
    get:
      tags:
        - pages-portal
      summary: Portal Get Onboarding Page
      description: >-
        Retrieve the hub's member Onboarding page for the signed-in contact.


        Resolves by type ("onboarding"), never by slug, and requires a signed-in

        contact. The page is members-only: a private hub requires a member or an

        access-override holder; a public hub also serves a signed-in contact it
        lets

        join for free (registration on, no paid price), whom the onboarding flow
        joins

        as it renders. Any other signed-in contact gets a 403
        `page_access_denied`.

        With ?resolve=true the response is the contact's resolved tree, served

        `Cache-Control: private, no-store`.
      operationId: pages_portal.get_pages_portal_get_hub_by_hub_id_pages_onboarding
      parameters:
        - in: path
          name: hub_id
          required: true
          schema:
            title: Hub Id
            type: string
        - in: query
          name: resolve
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Resolve
      responses:
        '200':
          content:
            application/vnd.api+json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PageResponse'
                  - $ref: '#/components/schemas/PortalPageTreeResponse'
          description: >-
            Onboarding-page metadata (PageResponse) by default. When
            ?resolve=true, a page_trees resource (PortalPageTreeResponse) with
            the resolved tree and page_links.
        '401':
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/JsonApiErrorResponse'
          description: >-
            `errors[0].code` is `auth_required`: no signed-in contact. The
            onboarding page is never served anonymously.
          x-error-codes:
            - auth_required
        '403':
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/JsonApiErrorResponse'
          description: >-
            `errors[0].code` is one of: `hub_membership_required` — the caller
            is hard-banned from the hub, or the hub is private and the caller is
            neither a member nor an access-override holder; or
            `page_access_denied` — the hub is public and the caller is not a
            member, not an access-override holder, and cannot join it for free
            (registration off, a paid hub, a contact the team removed, a former
            member whose ban was never lifted, or the join check could not be
            completed, which fails closed).
          x-error-codes:
            - hub_membership_required
            - page_access_denied
        '404':
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/JsonApiErrorResponse'
          description: >-
            Codeless. The hub does not exist, has no onboarding page, or its
            onboarding page has no published tree; the client renders its
            built-in onboarding form.
          x-error-codes: []
        '422':
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      security:
        - HTTPBearer: []
components:
  schemas:
    PageResponse:
      additionalProperties: false
      properties:
        data:
          $ref: '#/components/schemas/PageResource'
      required:
        - data
      title: PageResponse
      type: object
    PortalPageTreeResponse:
      additionalProperties: false
      description: >-
        Envelope for portal ``?resolve=true`` (page metadata stays
        ``PageResponse``).
      properties:
        data:
          $ref: '#/components/schemas/PortalPageTreeResource'
      required:
        - data
      title: PortalPageTreeResponse
      type: object
    JsonApiErrorResponse:
      description: Error JSON:API response.
      properties:
        errors:
          items:
            $ref: '#/components/schemas/JsonApiError'
          title: Errors
          type: array
        meta:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Meta
      required:
        - errors
      title: JsonApiErrorResponse
      type: object
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          title: Detail
          type: array
      title: HTTPValidationError
      type: object
    PageResource:
      additionalProperties: false
      properties:
        attributes:
          $ref: '#/components/schemas/PageAttributes'
        id:
          title: Id
          type: string
        type:
          const: pages
          default: pages
          title: Type
          type: string
      required:
        - id
        - attributes
      title: PageResource
      type: object
    PortalPageTreeResource:
      additionalProperties: false
      description: JSON:API resource for a portal ``?resolve=true`` tree.
      properties:
        attributes:
          $ref: '#/components/schemas/PortalPageTreeAttributes'
        id:
          title: Id
          type: string
        type:
          const: page_trees
          default: page_trees
          title: Type
          type: string
      required:
        - id
        - attributes
      title: PortalPageTreeResource
      type: object
    JsonApiError:
      properties:
        code:
          anyOf:
            - type: string
            - type: 'null'
          title: Code
        detail:
          anyOf:
            - type: string
            - type: 'null'
          title: Detail
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: Id
        meta:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Meta
        source:
          anyOf:
            - additionalProperties:
                type: string
              type: object
            - type: 'null'
          title: Source
        status:
          title: Status
          type: string
        title:
          title: Title
          type: string
      required:
        - status
        - title
      title: JsonApiError
      type: object
    ValidationError:
      properties:
        ctx:
          title: Context
          type: object
        input:
          title: Input
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          title: Location
          type: array
        msg:
          title: Message
          type: string
        type:
          title: Error Type
          type: string
      required:
        - loc
        - msg
        - type
      title: ValidationError
      type: object
    PageAttributes:
      additionalProperties: false
      description: Portal/member read attributes — no authoring fields.
      properties:
        created_at:
          format: date-time
          title: Created At
          type: string
        deleted_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          title: Deleted At
        hub_id:
          title: Hub Id
          type: string
        is_homepage:
          title: Is Homepage
          type: boolean
        meta:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Meta
        parent_page_id:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Id of the page this one hangs under, or null. A live page of the
            same hub; cleared when the parent is deleted.
          title: Parent Page Id
        position:
          title: Position
          type: integer
        privacy:
          title: Privacy
          type: string
        segment_ids:
          description: >-
            Segments that may open the page when privacy is 'segment'; empty
            otherwise.
          items:
            type: string
          title: Segment Ids
          type: array
        settings:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Settings
        slug:
          title: Slug
          type: string
        title:
          title: Title
          type: string
        type:
          title: Type
          type: string
        updated_at:
          format: date-time
          title: Updated At
          type: string
      required:
        - hub_id
        - title
        - slug
        - type
        - privacy
        - is_homepage
        - position
        - settings
        - meta
        - parent_page_id
        - created_at
        - updated_at
        - deleted_at
      title: PageAttributes
      type: object
    PortalPageTreeAttributes:
      additionalProperties: true
      properties:
        page_links:
          additionalProperties:
            $ref: '#/components/schemas/PageLinkTarget'
          title: Page Links
          type: object
        published_revision:
          title: Published Revision
          type: integer
        resolved:
          title: Resolved
          type: boolean
        tree:
          additionalProperties: true
          title: Tree
          type: object
      required:
        - tree
        - resolved
        - published_revision
        - page_links
      title: PortalPageTreeAttributes
      type: object
    PageLinkTarget:
      additionalProperties: false
      description: >-
        One hub page a portal viewer may navigate to.


        ``privacy`` is never a field here. ``type`` is the stored page type

        (a free string, not a resource type), so it stays ``str``. ``title`` is
        the

        page's live title, so a portal back link reads the parent's current
        name.
      properties:
        is_homepage:
          title: Is Homepage
          type: boolean
        slug:
          title: Slug
          type: string
        title:
          title: Title
          type: string
        type:
          title: Type
          type: string
      required:
        - slug
        - type
        - is_homepage
        - title
      title: PageLinkTarget
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT or mio_sk API key
      description: >-
        Send platform JWTs, contact JWTs, or team API keys as `Authorization:
        Bearer <token>`.
      scheme: bearer
      type: http
    HTTPBearer:
      scheme: bearer
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.