---
title: "Create Gemini file metadata"
method: POST
path: "/v1beta/files"
tags: ["Gemini Resources"]
---

# Create Gemini file metadata

`POST /v1beta/files`

## Request

- Base URL: `https://api.tokenlab.sh`
- URL: `https://api.tokenlab.sh/v1beta/files`
- Auth: one of:
  - HTTP bearer
  - API key in header `x-goog-api-key`

Creates a Gemini file resource from JSON metadata. Upload file bytes through /upload/v1beta/files. Resources can only be read, referenced, changed, or deleted in their owning Workspace. Missing, expired, or inaccessible resources return a Gemini-format error.

## Query parameters

- `key` string

## Headers

- `Idempotency-Key` string

## Request body

- GeminiFileCreateRequest: Gemini file metadata request. Supported fields and values are validated by the service. File bytes are uploaded through /upload/v1beta/files.
  - `file` GeminiFileResource: A Gemini file in the current Workspace. Fields are returned when available.
    - `name` string: File resource name such as files/{fileId}.
    - `displayName` string: Human-readable file name.
    - `mimeType` string: Media MIME type.
    - `sizeBytes` string: File byte size as a decimal string.
    - `uri` string: File URI to use in Gemini content parts.
    - `state` string: Processing state reported by the service. Wait until the file is ready before generation.
    - `createTime` string, date-time
    - `updateTime` string, date-time
    - `expirationTime` string, date-time
    - `error` object

## Response `200`

Success

- union
  - GeminiFileResource: A Gemini file in the current Workspace. Fields are returned when available.
    - `name` string: File resource name such as files/{fileId}.
    - `displayName` string: Human-readable file name.
    - `mimeType` string: Media MIME type.
    - `sizeBytes` string: File byte size as a decimal string.
    - `uri` string: File URI to use in Gemini content parts.
    - `state` string: Processing state reported by the service. Wait until the file is ready before generation.
    - `createTime` string, date-time
    - `updateTime` string, date-time
    - `expirationTime` string, date-time
    - `error` object
  - object
    - `file` GeminiFileResource: A Gemini file in the current Workspace. Fields are returned when available.
      - `name` string: File resource name such as files/{fileId}.
      - `displayName` string: Human-readable file name.
      - `mimeType` string: Media MIME type.
      - `sizeBytes` string: File byte size as a decimal string.
      - `uri` string: File URI to use in Gemini content parts.
      - `state` string: Processing state reported by the service. Wait until the file is ready before generation.
      - `createTime` string, date-time
      - `updateTime` string, date-time
      - `expirationTime` string, date-time
      - `error` object
    - `files` GeminiFileResource[]
      - `name` string: File resource name such as files/{fileId}.
      - `displayName` string: Human-readable file name.
      - `mimeType` string: Media MIME type.
      - `sizeBytes` string: File byte size as a decimal string.
      - `uri` string: File URI to use in Gemini content parts.
      - `state` string: Processing state reported by the service. Wait until the file is ready before generation.
      - `createTime` string, date-time
      - `updateTime` string, date-time
      - `expirationTime` string, date-time
      - `error` object

## Other responses

- `400`: Gemini-format resource error
- `401`: Gemini-format resource error
- `403`: Gemini-format resource error
- `404`: Gemini-format resource error
- `409`: Gemini-format resource error
- `429`: Gemini-format resource error
- `502`: Gemini-format resource error
- `503`: Gemini-format resource error

---

[API](https://skmtc.dev/tokenlab/apis/tokenlab-ai-gateway.md) · [All operations](https://skmtc.dev/tokenlab/apis/tokenlab-ai-gateway/llms.txt) · [OpenAPI document](https://skmtc.dev/tokenlab/apis/tokenlab-ai-gateway/revisions/3208bfbcda22?raw)
