> ## 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.

# Updating authors

> Update authors with data to improve trust scoring and dashboard details

You can update author information to improve trust scoring and fraud detection in your moderation system. Author updates can be made through either the API or the dashboard interface.

## Author Creation

Authors are automatically created when an `author_id` is included in [submit content requests](/api-reference/moderate/analyze-text). However, you can also manually create authors using the API before submitting content.

We recommend adding detailed author information using the update endpoint after automatic creation, or creating authors ahead of time with complete details to improve initial trust scoring accuracy.

## Prerequisites

* **Dashboard**: You need the moderator role for your project
* **API**: Any valid API key for the project

## Available Fields

### Basic Information

These fields are displayed in the dashboard for easier author management:

<ResponseField name="name" type="string">
  The author's display name
</ResponseField>

<ResponseField name="email" type="string">
  Author's email address
</ResponseField>

<ResponseField name="profile_picture" type="string">
  URL to the author's profile image
</ResponseField>

<ResponseField name="external_link" type="string">
  URL to the author's profile on your platform or other external resources. Will
  add a clickable link in the dashboard.
</ResponseField>

### Metadata

<ResponseField name="metadata" type="object">
  A flexible JSON object that can store any additional author information

  * **Limits**: Maximum 25 keys with 1 level of nesting
  * **Usage**: Included in webhooks and author API responses
  * **Purpose**: Store custom data relevant to your use case

  ```json Example theme={"theme":"nord"}
  {
    "metadata": {
      "account_type": "premium",
      "signup_source": "mobile_app",
      "custom_tags": ["verified_creator", "high_engagement"],
      "preferences": {
        "notifications": true,
        "public_profile": false
      }
    }
  }
  ```
</ResponseField>

#### Built-in Metadata Fields

These special metadata fields are used for trust levels and fraud detection, and are rendered in the dashboard:

<ResponseField name="email_verified" type="boolean">
  Boolean indicating if email is verified
</ResponseField>

<ResponseField name="phone_verified" type="boolean">
  Boolean indicating if phone number is verified
</ResponseField>

<ResponseField name="identity_verified" type="boolean">
  Boolean indicating if identity has been verified
</ResponseField>

<ResponseField name="is_paying_customer" type="boolean">
  Boolean indicating if the user is a paying customer
</ResponseField>

```json Built-in metadata example theme={"theme":"nord"}
{
  "metadata": {
    "email_verified": true,
    "phone_verified": false,
    "identity_verified": true,
    "is_paying_customer": true
  }
}
```

### Trust Level Override

<ResponseField name="manual_trust_level" type="number">
  Override automatic trust level calculations for this author

  * **Range**: -1 to 4, or `null` to reset to automatic calculation
  * **Use cases**: Permanently promote or demote specific users
  * **Reset**: Set to `null` to return to automatic trust level calculation
  * **Impact**: Affects moderation decisions and user permissions

  Learn more about trust levels and how they work in our [Trust Levels Article](/users/trust-levels).
</ResponseField>

### Timestamps

These timestamp fields help with trust scoring and fraud detection:

<ResponseField name="first_seen" type="number">
  When the author was first encountered in your system (timestamp in
  milliseconds)
</ResponseField>

<ResponseField name="last_seen" type="number">
  The author's most recent activity timestamp (timestamp in milliseconds)
</ResponseField>

Both fields accept timestamp format and contribute to the automatic trust level calculation.

## Making Updates

<Tabs>
  <Tab title="API">
    Use the [PUT /authors/{id} endpoint](/api-reference/author/update-author-details) to programmatically update author information. If you need to create a new author, use the [POST /authors/ endpoint](/api-reference/author/create-a-new-author).

    Here's a complete example of updating an author with all available fields:

    ```json theme={"theme":"nord"}
    {
      "name": "John Doe",
      "email": "john.doe@example.com",
      "profile_picture": "https://example.com/avatars/johndoe.jpg",
      "external_link": "https://myplatform.com/users/johndoe",
      "metadata": {
        "email_verified": true,
        "phone_verified": true,
        "identity_verified": false,
        "is_paying_customer": true,
        "account_type": "premium",
        "signup_source": "mobile_app",
        "preferences": {
          "notifications": true
        }
      },
      "manual_trust_level": 3,
      "first_seen": 1577836800000,
      "last_seen": 1672531200000
    }
    ```
  </Tab>

  <Tab title="Dashboard">
    Navigate to the [Authors section](https://dash.moderationapi.com/users) in your project dashboard to update author details through the web interface.
  </Tab>
</Tabs>
