# Group API Reference

OpenAPI source: https://api.are.na/v3/openapi.json

## POST /v3/groups/{id}/members

- Label: Join a group
- Docs: https://www.are.na/developers/explore/group/post-members
- Markdown: https://www.are.na/developers/explore/group/post-members.md
- Requires resource id: yes
- Response content type: application/json

Adds the authenticated user to the group as a member. Requires a valid
group invite token from `GET/POST /v3/groups/{id}/invite`; the token is
the authorization to join, so it may grant access to a private group.
Idempotent: if the authenticated user is already the owner or a member,
the endpoint returns `200` with that user's group-member entry.

**Authentication required.**

Path parameters:
- id: string (required) — Resource ID or slug

Request body schema:
```json
{
  "type": "object",
  "required": [],
  "properties": {
    "invite_token": {
      "type": "string",
      "nullable": false,
      "description": "The group's invite code, authorizing the authenticated user to join",
      "example": "abc123xyz"
    }
  }
}
```

Response schema:
```json
{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "nullable": false,
      "description": "Unique identifier for the user",
      "example": 12345
    },
    "type": {
      "type": "string",
      "nullable": false,
      "description": "User type",
      "enum": [
        "User"
      ],
      "example": "User"
    },
    "name": {
      "type": "string",
      "nullable": false,
      "description": "User's display name",
      "example": "John Doe"
    },
    "slug": {
      "type": "string",
      "nullable": false,
      "description": "URL-safe identifier (use this in API paths)",
      "example": "john-doe"
    },
    "avatar": {
      "type": "string",
      "nullable": true,
      "description": "URL to user's avatar image",
      "format": "uri",
      "example": "https://d2w9rnfcy7mm78.cloudfront.net/12345/avatar.jpg"
    },
    "initials": {
      "type": "string",
      "nullable": false,
      "description": "User's initials",
      "example": "JD"
    },
    "role": {
      "type": "string",
      "nullable": false,
      "description": "The user's role on the group. `owner` is the group's creator;\n`member` is anyone else with a group membership.\n",
      "enum": [
        "owner",
        "member"
      ],
      "example": "member"
    }
  },
  "required": [
    "id",
    "type",
    "name",
    "slug",
    "avatar",
    "initials",
    "role"
  ],
  "description": "Group member entry, including the group owner and any collaborators",
  "refName": "GroupMember"
}
```