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

# Uploading Fonts

> Upload custom .ttf fonts to your Nexrender team account and reference them in render jobs

After Effects needs fonts installed on the rendering system. If a font referenced in your template isn't available, it will silently substitute a fallback - causing layout shifts, incorrect spacing, or broken text styling.

Upload fonts once to your team account and Nexrender installs them on the render worker before After Effects starts.

## Supported Formats

Only `.ttf` (TrueType Font) files are currently supported.

## Upload a Font

Fonts are uploaded as `multipart/form-data`. The `font` field carries the file, and the optional `familyName` field lets you override the family name that Nexrender auto-detects from the font metadata.

<CodeGroup>
  ```bash Request theme={null}
  curl -X POST https://api.nexrender.com/api/v2/fonts \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -F "font=@/path/to/Montserrat-SemiBold.ttf"
  ```

  ```json Response theme={null}
  {
    "id": "01JTGM9GCR71JV7EJYDF45QAFD",
    "fileName": "Montserrat-SemiBold.ttf",
    "familyName": "Montserrat",
    "createdAt": "2025-05-05T16:25:59.961Z"
  }
  ```
</CodeGroup>

To override the auto-detected family name, include the `familyName` field:

```bash theme={null}
curl -X POST https://api.nexrender.com/api/v2/fonts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "font=@/path/to/CustomFont.ttf" \
  -F "familyName=My Brand Font"
```

## Upload Fields

| Field        | Type   | Required | Description                                                                          |
| ------------ | ------ | -------- | ------------------------------------------------------------------------------------ |
| `font`       | file   | Yes      | The `.ttf` font file to upload                                                       |
| `familyName` | string | No       | Override for the font family name (auto-detected from file metadata if not provided) |

## Using Fonts in a Job

Reference uploaded fonts by their `fileName` in the `fonts` array of any job payload. Nexrender installs them on the render worker before rendering begins.

```json theme={null}
{
  "template": {
    "id": "YOUR_TEMPLATE_ID",
    "composition": "main"
  },
  "fonts": [
    "Montserrat-SemiBold.ttf",
    "Roboto-Bold.ttf"
  ],
  "assets": []
}
```

## Missing Fonts Warning

When you create a job, if any font listed in the `fonts` array hasn't been uploaded to your team account, the API flags them in the `missingFonts` field of the response. The job is still created, but rendering may produce incorrect results.

```json theme={null}
{
  "id": "01JTRDF7HCR8QAHYW8GPCP4S9Y",
  "status": "queued",
  "outputUrl": "https://nx1-outputs-eu.nexrender.com/.../job.mp4",
  "missingFonts": ["Roboto-Bold.ttf"]
}
```

Always resolve missing fonts before submitting production jobs.

## Best Practices

* Name font files clearly - `OpenSans-Bold.ttf` rather than `font1.ttf`
* Keep naming consistent between your After Effects project and the uploaded file
* Use preview mode to catch font issues cheaply before running full renders
* Treat `.ttf` files as versioned assets - store them in source control alongside your templates


## OpenAPI

````yaml POST /fonts
openapi: 3.0.4
info:
  title: Nexrender API
  version: '2.0'
  description: >
    REST API for the Nexrender cloud rendering platform, enabling programmatic
    control over After Effects template processing, job management, and asset
    handling.


    Features include:


    - Template upload and management (AEP, MOGRT, ZIP files)

    - Job creation and status monitoring with real-time progress

    - Job nesting for multi-composition renders (parent/child jobs)

    - Job stitching to combine multiple videos into one

    - Batch job creation for submitting up to 1000 jobs at once

    - Font library management for typography consistency

    - Secret management for secure API key storage

    - Webhook notifications for job lifecycle events

    - Asset injection for dynamic content replacement


    Authentication is required for all endpoints using Bearer token
    authorization.
servers:
  - url: https://api.nexrender.com/api/v2
    description: Production API server
security:
  - apiToken: []
paths:
  /fonts:
    post:
      tags:
        - Font Management
      summary: Upload new font
      description: Upload a new font file to make it available for use in rendering jobs
      operationId: uploadFont
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                familyName:
                  type: string
                  default: null
                  description: >-
                    Optional font family name override (auto-detected if not
                    provided)
                font:
                  type: string
                  format: binary
                  description: Font file to upload (supports TTF only)
      responses:
        '201':
          description: Font successfully uploaded and processed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Font'
        '400':
          description: Invalid request - malformed font file or missing required fields
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized - invalid or missing API token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '413':
          description: File too large - font file exceeds 40MiB size limit
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    Font:
      type: object
      description: >-
        Font file metadata for team-shared typography resources used in After
        Effects rendering
      properties:
        id:
          type: string
          description: Unique font identifier
        familyName:
          type: string
          description: >-
            Font family name (e.g., "Arial", "Helvetica Neue") extracted from
            font metadata (or custom)
        fileName:
          type: string
          description: >-
            Original font file name as uploaded (supports TTF only). This is the
            file name referenced in pushed jobs.
        createdAt:
          type: string
          format: date-time
          description: ISO timestamp when the font was uploaded and processed
    ErrorResponse:
      type: object
      description: Standard error response format
      properties:
        error:
          type: string
          description: Human-readable error message explaining what went wrong
      required:
        - error
  securitySchemes:
    apiToken:
      type: http
      scheme: bearer
      description: >
        Bearer token authentication using API tokens for team-based access
        control.


        You can generate your own API token at:
        https://app.nexrender.com/settings/api-tokens

````