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

# Update author details

> Update the details of a specific author



## OpenAPI

````yaml put /authors/{id}
openapi: 3.1.0
info:
  title: Moderation API
  description: API for automated content moderation
  version: 1.1.0
servers:
  - url: https://api.moderationapi.com/v1
security: []
tags:
  - name: Actions
  - name: Queues
  - name: Webhooks
  - name: Wordlist
  - name: UserReports
externalDocs:
  url: https://docs.moderationapi.com
paths:
  /authors/{id}:
    put:
      tags:
        - author
      summary: Update author details
      description: Update the details of a specific author
      operationId: author-openUpdate
      parameters:
        - in: path
          name: id
          schema:
            type: string
            description: Either external ID or the ID assigned by moderation API.
          required: true
          description: Either external ID or the ID assigned by moderation API.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                profile_picture:
                  description: URL of the author's profile picture
                  anyOf:
                    - type: string
                      format: uri
                    - type: 'null'
                external_link:
                  description: URL of the author's external profile
                  anyOf:
                    - type: string
                      format: uri
                    - type: 'null'
                name:
                  description: Author name or identifier
                  anyOf:
                    - type: string
                    - type: 'null'
                email:
                  description: Author email address
                  anyOf:
                    - type: string
                      format: email
                      pattern: >-
                        ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                    - type: 'null'
                company:
                  description: The author's company or organization
                  anyOf:
                    - type: string
                    - type: 'null'
                metadata:
                  type: object
                  properties:
                    email_verified:
                      description: Whether the author's email is verified
                      anyOf:
                        - type: boolean
                        - type: 'null'
                    phone_verified:
                      description: Whether the author's phone number is verified
                      anyOf:
                        - type: boolean
                        - type: 'null'
                    identity_verified:
                      description: Whether the author's identity is verified
                      anyOf:
                        - type: boolean
                        - type: 'null'
                    is_paying_customer:
                      description: Whether the author is a paying customer
                      anyOf:
                        - type: boolean
                        - type: 'null'
                  additionalProperties: {}
                  description: >-
                    Additional metadata provided by your system. We recommend
                    including any relevant information that may assist in the
                    moderation process.
                first_seen:
                  type: number
                  description: Timestamp when author first appeared
                last_seen:
                  type: number
                  description: Timestamp of last activity
                manual_trust_level:
                  anyOf:
                    - type: number
                      minimum: -1
                      maximum: 4
                    - type: 'null'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicAuthor'
        '400':
          description: Invalid input data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.BAD_REQUEST'
        '401':
          description: Authorization not provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.UNAUTHORIZED'
        '403':
          description: Insufficient access
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.FORBIDDEN'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.NOT_FOUND'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR'
      security:
        - Authorization: []
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import ModerationAPI from '@moderation-api/sdk';

            const client = new ModerationAPI({
              secretKey: process.env['MODAPI_SECRET_KEY'], // This is the default and can be omitted
            });

            const author = await client.authors.update('id');

            console.log(author.id);
        - lang: Python
          source: |-
            import os
            from moderation_api import ModerationAPI

            client = ModerationAPI(
                secret_key=os.environ.get("MODAPI_SECRET_KEY"),  # This is the default and can be omitted
            )
            author = client.authors.update(
                id="id",
            )
            print(author.id)
        - lang: Ruby
          source: >-
            require "moderation_api"


            moderation_api = ModerationAPI::Client.new(secret_key: "My Secret
            Key")


            author = moderation_api.authors.update("id")


            puts(author)
components:
  schemas:
    PublicAuthor:
      type: object
      properties:
        id:
          type: string
          description: Author ID in Moderation API
        external_id:
          description: The author's ID from your system
          anyOf:
            - type: string
            - type: 'null'
        profile_picture:
          description: URL of the author's profile picture
          anyOf:
            - type: string
              format: uri
            - type: 'null'
        external_link:
          description: URL of the author's external profile
          anyOf:
            - type: string
              format: uri
            - type: 'null'
        name:
          description: Author name or identifier
          anyOf:
            - type: string
            - type: 'null'
        email:
          description: Author email address
          anyOf:
            - type: string
              format: email
              pattern: >-
                ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
            - type: 'null'
        company:
          description: The author's company or organization
          anyOf:
            - type: string
            - type: 'null'
        first_seen:
          type: number
          description: Timestamp when author first appeared
        last_seen:
          type: number
          description: Timestamp of last activity
        last_incident:
          description: Timestamp of last incident
          anyOf:
            - type: number
            - type: 'null'
        status:
          type: string
          enum:
            - enabled
            - suspended
            - blocked
          description: Current author status
        trust_level:
          type: object
          properties:
            level:
              type: number
              description: Author trust level (-1, 0, 1, 2, 3, or 4)
            manual:
              type: boolean
              description: True if the trust level was set manually by a moderator
          required:
            - level
            - manual
          additionalProperties: false
        block:
          anyOf:
            - type: object
              properties:
                until:
                  description: >-
                    The timestamp until which they are blocked if the author is
                    suspended.
                  anyOf:
                    - type: number
                    - type: 'null'
                reason:
                  description: >-
                    The moderators reason why the author was blocked or
                    suspended.
                  anyOf:
                    - type: string
                    - type: 'null'
              additionalProperties: false
            - type: 'null'
          description: >-
            Block or suspension details, if applicable. Null if the author is
            enabled.
        risk_evaluation:
          anyOf:
            - type: object
              properties:
                risk_level:
                  description: >-
                    Calculated risk level based on more than 10 behavioral
                    signals.
                  anyOf:
                    - type: number
                      minimum: 0
                      maximum: 100
                    - type: 'null'
              additionalProperties: false
            - type: 'null'
          description: Risk assessment details, if available.
        metrics:
          type: object
          properties:
            total_content:
              type: number
              description: Total pieces of content
            flagged_content:
              type: number
              description: Number of flagged content pieces
            average_sentiment:
              description: >-
                Average sentiment score of content (-1 to 1). Requires a
                sentiment model in your project.
              anyOf:
                - type: number
                - type: 'null'
          required:
            - total_content
            - flagged_content
          additionalProperties: false
        metadata:
          type: object
          properties:
            email_verified:
              description: Whether the author's email is verified
              anyOf:
                - type: boolean
                - type: 'null'
            phone_verified:
              description: Whether the author's phone number is verified
              anyOf:
                - type: boolean
                - type: 'null'
            identity_verified:
              description: Whether the author's identity is verified
              anyOf:
                - type: boolean
                - type: 'null'
            is_paying_customer:
              description: Whether the author is a paying customer
              anyOf:
                - type: boolean
                - type: 'null'
          additionalProperties: {}
          description: >-
            Additional metadata provided by your system. We recommend including
            any relevant information that may assist in the moderation process.
      required:
        - id
        - first_seen
        - last_seen
        - status
        - trust_level
        - block
        - risk_evaluation
        - metrics
        - metadata
      additionalProperties: false
    error.BAD_REQUEST:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Invalid input data
        code:
          type: string
          description: The error code
          example: BAD_REQUEST
        issues:
          description: An array of issues that were responsible for the error
          example: []
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
            additionalProperties: false
      required:
        - message
        - code
      additionalProperties: false
      title: Invalid input data error (400)
      description: The error information
      example:
        code: BAD_REQUEST
        message: Invalid input data
        issues: []
    error.UNAUTHORIZED:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Authorization not provided
        code:
          type: string
          description: The error code
          example: UNAUTHORIZED
        issues:
          description: An array of issues that were responsible for the error
          example: []
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
            additionalProperties: false
      required:
        - message
        - code
      additionalProperties: false
      title: Authorization not provided error (401)
      description: The error information
      example:
        code: UNAUTHORIZED
        message: Authorization not provided
        issues: []
    error.FORBIDDEN:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Insufficient access
        code:
          type: string
          description: The error code
          example: FORBIDDEN
        issues:
          description: An array of issues that were responsible for the error
          example: []
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
            additionalProperties: false
      required:
        - message
        - code
      additionalProperties: false
      title: Insufficient access error (403)
      description: The error information
      example:
        code: FORBIDDEN
        message: Insufficient access
        issues: []
    error.NOT_FOUND:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Not found
        code:
          type: string
          description: The error code
          example: NOT_FOUND
        issues:
          description: An array of issues that were responsible for the error
          example: []
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
            additionalProperties: false
      required:
        - message
        - code
      additionalProperties: false
      title: Not found error (404)
      description: The error information
      example:
        code: NOT_FOUND
        message: Not found
        issues: []
    error.INTERNAL_SERVER_ERROR:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Internal server error
        code:
          type: string
          description: The error code
          example: INTERNAL_SERVER_ERROR
        issues:
          description: An array of issues that were responsible for the error
          example: []
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
            additionalProperties: false
      required:
        - message
        - code
      additionalProperties: false
      title: Internal server error error (500)
      description: The error information
      example:
        code: INTERNAL_SERVER_ERROR
        message: Internal server error
        issues: []
  securitySchemes:
    Authorization:
      type: http
      scheme: bearer

````