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

# Add/remove tags on a member

> Only admin-created, public-privacy tags can be added or removed this way — system and AI-sourced tags (e.g. tags applied automatically) are never touchable via the API, the same rule the dashboard itself enforces. Returns the member's full current (assignable) tag list after applying the change.




## OpenAPI

````yaml /openapi.yaml patch /members/{object_id}/tags
openapi: 3.1.0
info:
  title: Humdov Developer API
  version: '1.0'
  description: >
    Read and write records in a Humdov organization. Every request is
    authenticated with an API key (`X-Api-Key` header) created from the Humdov
    dashboard's Developer API page. See the Guides tab for authentication,
    pagination, rate limits, and the error format.
servers:
  - url: https://api.humdov.app/v1
    description: Production
security:
  - ApiKeyAuth: []
tags:
  - name: Members
  - name: Tags
  - name: Prayer Requests
  - name: Forms
  - name: Form Responses
  - name: Events
  - name: Services
  - name: Attendance
  - name: Departments
paths:
  /members/{object_id}/tags:
    parameters:
      - $ref: '#/components/parameters/MemberObjectId'
    patch:
      tags:
        - Tags
      summary: Add/remove tags on a member
      description: >
        Only admin-created, public-privacy tags can be added or removed this way
        — system and AI-sourced tags (e.g. tags applied automatically) are never
        touchable via the API, the same rule the dashboard itself enforces.
        Returns the member's full current (assignable) tag list after applying
        the change.
      operationId: update-member-tags
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                add:
                  type: array
                  items:
                    type: string
                  description: Tag object_ids to attach.
                remove:
                  type: array
                  items:
                    type: string
                  description: Tag object_ids to detach.
              example:
                add:
                  - tag_abc123
                remove: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Tag'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/Unprocessable'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
        - ApiKeyAuth:
            - tags.update
components:
  parameters:
    MemberObjectId:
      name: object_id
      in: path
      required: true
      schema:
        type: string
  schemas:
    Tag:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        slug:
          type: string
        description:
          type: string
          nullable: true
        category:
          type: string
          nullable: true
        color:
          type: string
          nullable: true
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              example: not_found
            message:
              type: string
              example: Member not found
  responses:
    Unauthorized:
      description: Missing, invalid, revoked, or expired API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: The API key doesn't have the required scope
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The record doesn't exist, or doesn't belong to your org
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unprocessable:
      description: A field is missing or failed validation
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    RateLimited:
      description: Too many requests
      headers:
        Retry-After:
          schema:
            type: integer
          description: Seconds until the rate-limit window resets.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-Api-Key
      description: >
        Create a key from the Humdov dashboard's Developer API page. See the
        Authentication guide for scopes and lifecycle.

````

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