# User API Reference

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

## GET /v3/users/{id}/followers

- Label: Get user followers
- Docs: https://www.are.na/developers/explore/user/followers
- Markdown: https://www.are.na/developers/explore/user/followers.md
- Requires resource id: yes
- Response content type: application/json

Returns paginated list of users who follow this user.
All followers are users.

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

Query parameters:
- page: number (optional) — Page number for pagination
- per: number (optional) — Number of items per page (max 100)
- sort: select (optional) options=created_at_desc|created_at_asc — Sort by the date the relationship was created.

Response schema:
```json
{
  "type": "object",
  "properties": {
    "data": {
      "type": "array",
      "description": "Array of users",
      "items": {
        "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"
          },
          "created_at": {
            "type": "string",
            "nullable": false,
            "description": "When the user was created",
            "format": "date-time",
            "example": "2023-01-15T10:30:00Z"
          },
          "updated_at": {
            "type": "string",
            "nullable": false,
            "description": "When the user was last updated",
            "format": "date-time",
            "example": "2023-06-20T14:45:00Z"
          },
          "bio": {
            "type": "oneOf",
            "description": "User biography with markdown, HTML, and plain text renderings",
            "variants": [
              {
                "type": "object",
                "description": "Markdown content with multiple renderings",
                "…": "see OpenAPI spec for full schema"
              },
              {
                "type": "unknown",
                "nullable": true
              }
            ]
          },
          "badge": {
            "type": "oneOf",
            "description": "Denotes plan or other distinction",
            "variants": [
              {
                "type": "string",
                "nullable": false,
                "description": "Denotes plan or other distinction:\n- `staff`: Are.na staff member\n- `investor`: Investor\n- `supporter`: Supporter subscriber\n- `premium`: Premium subscriber\n",
                "enum": [
                  "staff",
                  "investor",
                  "supporter",
                  "premium"
                ],
                "refName": "UserBadge"
              },
              {
                "type": "unknown",
                "nullable": true
              }
            ]
          },
          "tier": {
            "type": "string",
            "nullable": false,
            "description": "User subscription tier:\n- `guest`: Unauthenticated user\n- `free`: Free account\n- `premium`: Premium subscriber\n- `supporter`: Supporter tier\n",
            "enum": [
              "guest",
              "free",
              "premium",
              "supporter"
            ],
            "refName": "UserTier"
          },
          "counts": {
            "type": "object",
            "description": "Counts of various items for the user",
            "required": [
              "channels",
              "followers",
              "following"
            ],
            "properties": {
              "channels": {
                "type": "integer",
                "nullable": false,
                "description": "Number of channels owned by the user",
                "example": 24
              },
              "followers": {
                "type": "integer",
                "nullable": false,
                "description": "Number of followers",
                "example": 156
              },
              "following": {
                "type": "integer",
                "nullable": false,
                "description": "Number of users being followed",
                "example": 89
              }
            },
            "refName": "UserCounts"
          },
          "_links": {
            "type": "object",
            "description": "HATEOAS links for navigation and discovery.\nFollows HAL (Hypertext Application Language) format where link relationships \nare expressed as object keys (e.g., \"self\", \"user\", \"channels\").\n",
            "required": [
              "self"
            ],
            "properties": {
              "self": {
                "type": "object",
                "description": "A hypermedia link containing the URL of a linked resource.\nThe relationship type is expressed by the key in the parent _links object.\n",
                "…": "see OpenAPI spec for full schema"
              }
            },
            "additionalProperties": {
              "type": "object",
              "description": "A hypermedia link containing the URL of a linked resource.\nThe relationship type is expressed by the key in the parent _links object.\n",
              "required": [
                "href"
              ],
              "properties": {
                "href": {
                  "type": "string",
                  "nullable": false,
                  "description": "The URL of the linked resource",
                  "format": "uri",
                  "example": "https://api.are.na/v3/blocks/12345"
                }
              },
              "refName": "Link"
            },
            "refName": "Links"
          }
        },
        "required": [
          "id",
          "type",
          "name",
          "slug",
          "avatar",
          "initials",
          "created_at",
          "updated_at",
          "badge",
          "tier",
          "counts",
          "_links"
        ],
        "description": "Full user representation",
        "refName": "User"
      }
    },
    "meta": {
      "type": "object",
      "description": "Pagination metadata",
      "required": [
        "current_page",
        "per_page",
        "total_pages",
        "total_count",
        "has_more_pages"
      ],
      "properties": {
        "current_page": {
          "type": "integer",
          "nullable": false,
          "description": "Current page number",
          "example": 1
        },
        "next_page": {
          "type": "integer",
          "nullable": true,
          "description": "Next page number (null if last page)",
          "example": 2
        },
        "prev_page": {
          "type": "integer",
          "nullable": true,
          "description": "Previous page number (null if first page)"
        },
        "per_page": {
          "type": "integer",
          "nullable": false,
          "description": "Number of items per page",
          "example": 25
        },
        "total_pages": {
          "type": "integer",
          "nullable": false,
          "description": "Total number of pages available",
          "example": 5
        },
        "total_count": {
          "type": "integer",
          "nullable": false,
          "description": "Total number of items available",
          "example": 120
        },
        "has_more_pages": {
          "type": "boolean",
          "nullable": false,
          "description": "Whether there are more pages available",
          "example": true
        }
      },
      "refName": "PaginationMeta"
    }
  },
  "required": [
    "data",
    "data",
    "meta"
  ],
  "description": "Paginated list of users with total count",
  "refName": "UserListResponse"
}
```