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

# Award a Badge to a Member

> Awards a badge to a member. Repeating an award returns the existing award without sending another notification.



## OpenAPI

````yaml post /badges/award
openapi: 3.0.1
info:
  title: SchoolMaker API V1
  description: API for managing your SchoolMaker school
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://schoolmaker.co/api/v1
    description: Production API
security:
  - bearerAuth: []
paths:
  /badges/award:
    post:
      tags:
        - Badges
      summary: Award a Badge to a Member
      description: >-
        Awards a badge to a member. Repeating an award returns the existing
        award without sending another notification.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              properties:
                badge_id:
                  type: string
                  minLength: 1
                  maxLength: 255
                badge_name:
                  type: string
                  maxLength: 10000
                member_id:
                  type: string
                  minLength: 1
                  maxLength: 255
                email:
                  type: string
                  maxLength: 10000
              description: >-
                Supply badge_id or badge_name, and member_id or email. IDs take
                precedence. Badge names must match exactly. Email matching
                ignores case and surrounding spaces.
            example:
              badge_name: First milestone
              email: member@example.com
          application/x-www-form-urlencoded:
            schema:
              type: object
              additionalProperties: false
              properties:
                badge_id:
                  type: string
                  minLength: 1
                  maxLength: 255
                badge_name:
                  type: string
                  maxLength: 10000
                member_id:
                  type: string
                  minLength: 1
                  maxLength: 255
                email:
                  type: string
                  maxLength: 10000
              description: >-
                Supply badge_id or badge_name, and member_id or email. IDs take
                precedence. Badge names must match exactly. Email matching
                ignores case and surrounding spaces.
            example:
              badge_name: First milestone
              email: member@example.com
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
                required:
                  - id
                  - badge_id
                  - member_id
                  - unlocked_at
                properties:
                  id:
                    type: string
                  badge_id:
                    type: string
                  member_id:
                    type: string
                  unlocked_at:
                    type: string
                    format: date-time
              example:
                id: AWARD_ID
                badge_id: BADGE_ID
                member_id: MEMBER_ID
                unlocked_at: '2026-10-02T09:30:00.000Z'
        '401':
          description: Missing or invalid API credentials, or unavailable school account.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    oneOf:
                      - type: string
                      - type: array
                        items:
                          type: string
              example:
                error: Access denied
        '404':
          description: Record not found in your school.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    oneOf:
                      - type: string
                      - type: array
                        items:
                          type: string
              example:
                error: Record not found
        '422':
          description: Invalid badge details.
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    oneOf:
                      - type: string
                      - type: array
                        items:
                          type: string
              example:
                error: 'Invalid arguments: /attributes/name minLength'
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````

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