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

# Create files

> Create files which can be passed as input to agents. This endpoint consumes a flat credit charge per upload. The response includes a `credits` field with the amount consumed, or `null` if the billing write fails — the upload still succeeds in that case.



## OpenAPI

````yaml post /files
openapi: 3.0.3
info:
  version: 0.1.1
  title: Datagrid API
  description: Datagrid API
servers:
  - url: https://api.datagrid.com/v1
security:
  - BearerAuth: []
paths:
  /files:
    post:
      tags:
        - Files
      summary: Create files
      description: >-
        Create files which can be passed as input to agents. This endpoint
        consumes a flat credit charge per upload. The response includes a
        `credits` field with the amount consumed, or `null` if the billing write
        fails — the upload still succeeds in that case.
      operationId: Files.createFiles
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
                - file
              properties:
                file:
                  type: string
                  format: binary
                  nullable: false
                expires_after:
                  type: integer
                  minimum: 1
                  maximum: 518400
                  nullable: true
                  description: >-
                    The number of seconds after creation when the file will
                    expire and be automatically deleted. Must be a positive
                    integer, maximum 6 days (518400s). If not provided, the file
                    will not expire.
      responses:
        '201':
          description: Successfully created file
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DatagridFile'
          headers:
            X-Daily-Credit-Cap-Remaining:
              $ref: '#/components/headers/DailyCreditCapRemaining'
            X-Monthly-Credit-Cap-Remaining:
              $ref: '#/components/headers/MonthlyCreditCapRemaining'
        '402':
          description: >-
            Credit limit exceeded. Either the organization does not have enough
            credits to perform this operation, or it has reached the monthly
            credit cap set in Control Tower. Check your billing status, or wait
            for the cap to reset.
          headers:
            X-Daily-Credit-Cap-Remaining:
              $ref: '#/components/headers/DailyCreditCapRemaining'
            X-Monthly-Credit-Cap-Remaining:
              $ref: '#/components/headers/MonthlyCreditCapRemaining'
        '429':
          description: >-
            Rate limit exceeded. The request has been throttled because the rate
            limit for this endpoint has been reached. Check the `Retry-After`
            response header and retry after the specified number of seconds.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
components:
  schemas:
    DatagridFile:
      type: object
      description: >-
        The `File` object represents a document that has been uploaded to
        Datagrid.
      required:
        - object
        - id
        - filename
        - created_at
        - media_type
      properties:
        object:
          type: string
          enum:
            - file
          description: The object type, which is always `file`.
        id:
          type: string
          description: The file identifier, which can be referenced in the API endpoints.
        filename:
          type: string
          description: The name of the file
        created_at:
          type: string
          format: date-time
          description: The ISO string for when the file was created.
        media_type:
          type: string
          description: The media type of the file.
        expires_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            The ISO timestamp when the file will expire and be automatically
            deleted, or null if the file does not expire.
        credits:
          nullable: true
          description: >-
            Credit consumption for this file upload. `null` when the billing
            lookup fails.
          allOf:
            - $ref: '#/components/schemas/OperationCredits'
    RateLimitError:
      type: object
      description: >-
        Returned when the rate limit is exceeded. Rate limits are enforced per
        teamspace, endpoint path, and HTTP method over a 60-second sliding
        window. Each endpoint may have its own limit — check the
        X-RateLimit-Limit response header for the effective value.
      required:
        - error
        - message
        - retryable
        - status_code
      properties:
        status_code:
          type: integer
          description: The HTTP status code (429).
        statusCode:
          type: integer
          deprecated: true
          description: Deprecated. Use status_code instead.
        error:
          type: string
          enum:
            - rate_limit_exceeded
          description: The error code identifying this as a rate limit error.
        message:
          type: string
          description: A human-readable error message.
        mitigation:
          type: string
          description: Suggested action to resolve the error.
        retryable:
          type: boolean
          description: Whether the request can be retried after a delay.
        details:
          type: object
          properties:
            reason:
              type: string
              description: A detailed explanation of why the rate limit was exceeded.
    OperationCredits:
      type: object
      required:
        - consumed
      properties:
        consumed:
          type: number
          description: The number of credits consumed by the operation.
  headers:
    DailyCreditCapRemaining:
      description: >-
        Credits left before the account's daily credit cap (set in Control
        Tower) is reached, rounded up. `0` means the cap has been reached; the
        daily cap does not block requests. Present only when a daily cap is
        configured.
      schema:
        type: integer
        example: 600
    MonthlyCreditCapRemaining:
      description: >-
        Credits left before the account's monthly credit cap (set in Control
        Tower) is reached, rounded up. At `0`, credit-consuming requests return
        `402` until the next calendar month. Present only when a monthly cap is
        configured.
      schema:
        type: integer
        example: 15000
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.