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

# Generar URLs de subida prefirmadas para archivos multimedia

> Devuelve URLs prefirmadas de S3 para cada archivo. Sube cada archivo con un HTTP PUT a su uploadUrl, con una cabecera Content-Type igual al mimetype que declaraste para ese archivo (por ejemplo `Content-Type: image/jpeg`). La URL está firmada con esa cabecera, así que un PUT sin ella, o con otro valor, falla con 403 SignatureDoesNotMatch. Después pasa los valores s3Prefix y fileSrc devueltos en la solicitud de creación de la publicación. Los tipos HTML, SVG, XML, script y desconocidos se rechazan con 400.



## OpenAPI

````yaml /es/openapi.json post /v1/posts/presign-media
openapi: 3.0.0
info:
  title: Social media studio API
  description: >-
    La API de Social media studio te permite gestionar tu flujo de trabajo de
    redes sociales de forma programática: crear y programar publicaciones,
    organizar el contenido multimedia, consultar analíticas, gestionar tu equipo
    y mucho más.


    ## URL base


    ```

    https://api.so-me.studio

    ```


    ## Autenticación


    Todos los endpoints `/v1/*` requieren una clave de API enviada en la
    cabecera `X-API-Key`.


    ```

    X-API-Key: sk_live_xxxxxxxxxxxxxxxxxxxxxxxx

    ```


    ## Permisos (scopes)


    Una clave tiene acceso completo salvo que le asignes permisos al crearla.
    Una clave con permisos limitados solo puede llamar a los endpoints que esos
    permisos cubren; los demás endpoints devuelven `403 Forbidden`. Un endpoint
    `GET` necesita `<resource>:read`; `POST`, `PUT`, `PATCH` y `DELETE`
    necesitan `<resource>:write`, que incluye `read`. Recursos: `accounts`,
    `posts` (también borradores y aprobaciones), `media`, `analytics` (solo
    lectura), `inbox`, `ai`, `biolinks`, `teams`, `settings`, `webhooks`,
    `support`, `templates` (solo lectura), `whatsapp`. Los endpoints de claves
    de API y de espacio de trabajo bajo `/v1/settings`, y `PATCH
    /v1/settings/profile`, necesitan una clave con acceso completo. Las claves
    con permisos limitados no pueden usar el servidor MCP.


    ## Obtener tu clave de API


    1. Inicia sesión en tu espacio de trabajo en [Social media
    studio](https://so-me.studio/es)

    2. Ve a **Configuración** > pestaña **API**

    3. Haz clic en **Nueva clave de API**, ponle un nombre y copia la clave


    > La clave completa se muestra solo una vez. Guárdala de forma segura.


    ## Límites de frecuencia


    60 solicitudes por minuto y por espacio de trabajo. Si superas este límite,
    recibirás una respuesta `429 Too Many Requests`.


    ## Planes


    El acceso a la API está disponible en los planes **Standard**, **Advanced**
    y **Lifetime**.
  version: '1.0'
  contact: {}
servers:
  - url: https://api.so-me.studio
    description: Producción
security: []
tags:
  - name: Posts
    description: Crear, gestionar, programar y publicar publicaciones en redes sociales
  - name: Accounts
    description: Gestionar las cuentas de redes sociales conectadas
  - name: Drafts
    description: Crear y gestionar borradores
  - name: Media
    description: Subir, organizar y gestionar archivos multimedia y carpetas
  - name: Analytics
    description: Analíticas de plataforma y de publicación en todas las cuentas sociales
  - name: Inbox
    description: >-
      Conversaciones de la bandeja de entrada social, respuestas y respuestas
      guardadas
  - name: AI
    description: Generación de texto e imágenes con IA
  - name: Approvals
    description: Flujo de aprobación de publicaciones para la colaboración en equipo
  - name: Teams
    description: Gestión de miembros del equipo e invitaciones
  - name: Biolinks
    description: Páginas de biolink con botones, publicaciones y temas
  - name: Settings
    description: Perfil, organización, claves de API, facturación y uso
  - name: Authentication
    description: >-
      Registro, inicio de sesión, restablecimiento de contraseña y autorización
      de dispositivo
  - name: Plans
    description: Planes de suscripción, funciones y complementos disponibles
  - name: Public Biolink
    description: >-
      Resolución de páginas de biolink públicas y seguimiento de analíticas (no
      requiere autenticación)
paths:
  /v1/posts/presign-media:
    post:
      tags:
        - Posts
      summary: Generar URLs de subida prefirmadas para archivos multimedia
      description: >-
        Devuelve URLs prefirmadas de S3 para cada archivo. Sube cada archivo con
        un HTTP PUT a su uploadUrl, con una cabecera Content-Type igual al
        mimetype que declaraste para ese archivo (por ejemplo `Content-Type:
        image/jpeg`). La URL está firmada con esa cabecera, así que un PUT sin
        ella, o con otro valor, falla con 403 SignatureDoesNotMatch. Después
        pasa los valores s3Prefix y fileSrc devueltos en la solicitud de
        creación de la publicación. Los tipos HTML, SVG, XML, script y
        desconocidos se rechazan con 400.
      operationId: V1PostsController_presignMedia
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PresignV1MediaDto'
      responses:
        '201':
          description: URLs prefirmadas generadas
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    fileId:
                      type: string
                      description: UUID del registro del archivo
                    uploadUrl:
                      type: string
                      description: >-
                        URL de PUT prefirmada (caduca en 1 hora). Envía el
                        archivo con un Content-Type igual al mimetype declarado.
                    s3Prefix:
                      type: string
                      description: 'Clave del objeto en S3: pásala al crear la publicación'
                    fileSrc:
                      type: string
                      description: 'URL pública de la CDN: pásala al crear la publicación'
      security:
        - X-API-Key: []
components:
  schemas:
    PresignV1MediaDto:
      type: object
      properties:
        postType:
          enum:
            - TEXT
            - IMAGE
            - MULTIPLE_IMAGES
            - VIDEO
            - CAROUSEL
            - REEL
            - STORY
          type: string
          description: Tipo de publicación al que corresponde el contenido multimedia
        socialMedia:
          enum:
            - TWITTER
            - INSTAGRAM
            - LINKEDIN
            - LINKEDIN_PAGE
            - FACEBOOK
            - TIKTOK
            - YOUTUBE
            - THREADS
            - WHATSAPP
          type: string
          description: Plataforma de destino
        files:
          description: Archivos para los que se generarán URLs de subida
          type: array
          items:
            $ref: '#/components/schemas/PresignV1FileItemDto'
      required:
        - postType
        - socialMedia
        - files
    PresignV1FileItemDto:
      type: object
      properties:
        filename:
          type: string
          description: Nombre de archivo original
        mimetype:
          type: string
          description: >-
            Tipo MIME (p. ej., image/jpeg, video/mp4). El PUT de subida debe
            enviar exactamente este valor como cabecera Content-Type.
        size:
          type: number
          description: Tamaño del archivo en bytes
        duration:
          type: number
          minimum: 0.1
          maximum: 86400
          description: Duración del vídeo en segundos
      required:
        - filename
        - mimetype
        - size
  securitySchemes:
    X-API-Key:
      type: apiKey
      in: header
      name: X-API-Key

````

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