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

# Crear Carga de Archivo

> Genera una URL pre-firmada para subir un archivo JSON. Después de subirlo, debes llamar al [endpoint de finalización](/api-reference/files/complete) para finalizar la carga.



## OpenAPI

````yaml es/openapi/files.json POST /v1/files
openapi: 3.0.3
info:
  title: API de Archivos
  version: 1.0.0
servers:
  - url: https://api.olostep.com
security: []
paths:
  /v1/files:
    post:
      summary: Crear Carga de Archivo
      description: >-
        Genera un URL pre-firmado para subir un archivo JSON. Después de
        subirlo, debes llamar al endpoint de completar para finalizar la carga.
        El URL de carga expira en 10 minutos.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                filename:
                  type: string
                  description: El nombre del archivo. Debe terminar con la extensión .json.
                  pattern: \.json$
                purpose:
                  type: string
                  description: >-
                    El propósito del archivo. Valores soportados: 'context' o
                    'batch'. Por defecto es 'context'.
                  enum:
                    - context
                    - batch
                  default: context
              required:
                - filename
      responses:
        '200':
          description: Respuesta exitosa con URL de carga.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: ID del Archivo
                  object:
                    type: string
                    description: El tipo de objeto. "file.upload" para este endpoint.
                  created:
                    type: integer
                    description: Marca de tiempo de época creada
                  upload_url:
                    type: string
                    format: uri
                    description: >-
                      URL pre-firmado para subir el archivo. Expira en 10
                      minutos.
                  expires_in:
                    type: integer
                    description: >-
                      Número de segundos hasta que el URL de carga expire (600
                      segundos = 10 minutos)
        '400':
          description: >-
            Solicitud incorrecta. Falta el nombre del archivo o tipo de archivo
            inválido (solo se soportan archivos .json).
        '401':
          description: Clave de API inválida
        '500':
          description: Error interno del servidor
      security:
        - Authorization: []
components:
  securitySchemes:
    Authorization:
      type: http
      scheme: bearer
      description: >-
        Encabezado de autenticación Bearer de la forma Bearer <token>, donde
        <token> es tu token de autenticación.

````