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

# POST - Rubric

>  This API allows authenticated users to create a new rubric by specifying a title and an optional description.


 **Key Notes:** 
 - `name` is a required field. It defines the title of the rubric. 
 - `description` is optional and can include additional context or instructions. 
 - The created rubric is returned with metadata including `id`, `createdAt`, and `modifiedAt`.


 **Scenario: Creating a Rubric for an Assignment**

 A teacher wants to set up a new rubric to evaluate student essays.

**Outcome:**
- The teacher sends a POST request with the rubric title and description.
- The rubric is saved and ready to be assigned criteria via the system.
- This structure helps ensure consistent and transparent evaluation across students.




## OpenAPI

````yaml POST /rubrics/v1/rubric/
openapi: 3.0.1
info:
  title: Evaluation Report API
  description: An API for retrieving evaluation reports.
  version: 1.0.0
servers:
  - url: https://api-staging.crazygoldfish.com
    description: SandBox endpoint
  - url: https://api.crazygoldfish.com
    description: Prod End Point
security: []
paths:
  /rubrics/v1/rubric/:
    post:
      tags:
        - Rubrics
      summary: Create Rubric
      operationId: createRubric
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRubricRequest'
      responses:
        '201':
          description: Rubric created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateRubricResponse'
        '400':
          description: Bad Request - Invalid input or missing required fields
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: integer
                        example: 400
                      message:
                        type: object
                        properties:
                          name:
                            type: array
                            items:
                              type: string
                              example: This field is required.
        '403':
          description: Authentication failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/403Response'
      security:
        - bearerAuth: []
components:
  schemas:
    CreateRubricRequest:
      type: object
      properties:
        name:
          type: string
          description: Name of the rubric
          example: English Rubric
        description:
          type: string
          description: Description of the rubric
          example: A rubric for evaluating english hand written assignment.
      required:
        - name
    CreateRubricResponse:
      type: object
      properties:
        id:
          type: string
          description: Unique ID of the rubric
          example: 2b973c83-2830-4712-87b7-64a8c0a99035
        name:
          type: string
          description: Name of the rubric
          example: English Rubric
        description:
          type: string
          description: Description of the rubric
          example: A rubric for evaluating english hand written assignment.
        rubricCriteria:
          type: array
          example: []
          description: List of rubric criteria
        createdAt:
          type: string
          description: Created date for the rubric
          format: date-time
        modifiedAt:
          type: string
          description: Modified date of the rubric
          format: date-time
    403Response:
      type: object
      properties:
        detail:
          type: string
          example: Token has expired
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````