> ## 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.

# Member Join Space

> Join a space.

Idempotent — if the contact has already joined, returns 200 with the
existing member state row (no duplicate event emitted).

Returns 403 if the space is restricted and the contact is not in the
required segment, or if the contact is banned/soft-banned from the hub.
Returns 404 if the space does not exist or is soft-deleted.



## OpenAPI

````yaml /openapi/mio-openapi.json post /api/v1/hubs/{hub_id}/spaces/{space_id}/join
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/hubs/{hub_id}/spaces/{space_id}/join:
    post:
      tags:
        - community-spaces-member
      summary: Member Join Space
      description: |-
        Join a space.

        Idempotent — if the contact has already joined, returns 200 with the
        existing member state row (no duplicate event emitted).

        Returns 403 if the space is restricted and the contact is not in the
        required segment, or if the contact is banned/soft-banned from the hub.
        Returns 404 if the space does not exist or is soft-deleted.
      operationId: >-
        community_spaces_member.post_community_spaces_member_post_hubs_by_hub_id_spaces_by_space_id_join
      parameters:
        - in: path
          name: hub_id
          required: true
          schema:
            title: Hub Id
            type: string
        - in: path
          name: space_id
          required: true
          schema:
            title: Space Id
            type: string
      responses:
        '200':
          content:
            application/vnd.api+json:
              schema:
                $ref: >-
                  #/components/schemas/JsonApiResponse_SpaceMemberStateAttributes_
          description: Successful Response
        '422':
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
          description: Validation Error
      security:
        - HTTPBearer: []
components:
  schemas:
    JsonApiResponse_SpaceMemberStateAttributes_:
      properties:
        data:
          $ref: '#/components/schemas/JsonApiResource_SpaceMemberStateAttributes_'
        included:
          anyOf:
            - items: {}
              type: array
            - type: 'null'
          title: Included
        links:
          anyOf:
            - $ref: '#/components/schemas/JsonApiLinks'
            - type: 'null'
        meta:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Meta
      required:
        - data
      title: JsonApiResponse[SpaceMemberStateAttributes]
      type: object
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          title: Detail
          type: array
      title: HTTPValidationError
      type: object
    JsonApiResource_SpaceMemberStateAttributes_:
      properties:
        attributes:
          $ref: '#/components/schemas/SpaceMemberStateAttributes'
        id:
          title: Id
          type: string
        links:
          anyOf:
            - $ref: '#/components/schemas/JsonApiLinks'
            - type: 'null'
        meta:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Meta
        relationships:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Relationships
        type:
          title: Type
          type: string
      required:
        - id
        - type
        - attributes
      title: JsonApiResource[SpaceMemberStateAttributes]
      type: object
    JsonApiLinks:
      properties:
        self:
          anyOf:
            - type: string
            - type: 'null'
          title: Self
      title: JsonApiLinks
      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
    SpaceMemberStateAttributes:
      properties:
        contact_id:
          title: Contact Id
          type: string
        is_member:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Is Member
        is_muted:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Is Muted
        joined_at:
          anyOf:
            - type: string
            - type: 'null'
          title: Joined At
        last_read_at:
          anyOf:
            - type: string
            - type: 'null'
          title: Last Read At
        space_id:
          title: Space Id
          type: string
      required:
        - space_id
        - contact_id
      title: SpaceMemberStateAttributes
      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

````