> ## 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.

# Vorsignierte Upload-URLs erzeugen

> Reserviert Dateien der Medienbibliothek und gibt für jede eine vorsignierte S3-URL zurück. Lade jede Datei per HTTP PUT an ihre uploadUrl hoch, mit einem Content-Type-Header, der dem für diese Datei angegebenen mimetype entspricht (zum Beispiel `Content-Type: video/mp4`). Die URL ist mit diesem Header signiert; ein PUT ohne ihn oder mit einem anderen Wert schlägt daher mit 403 SignatureDoesNotMatch fehl. HTML, SVG, XML, Skripte und unbekannte Typen werden mit 400 abgelehnt.



## OpenAPI

````yaml /de/openapi.json post /v1/media/presign-upload
openapi: 3.0.0
info:
  title: Social media studio API
  description: >-
    Die Social media studio API ermöglicht es dir, deinen Social-Media-Workflow
    programmatisch zu steuern – Beiträge erstellen und planen, Medien
    organisieren, Analysen abrufen, dein Team verwalten und mehr.


    ## Basis-URL


    ```

    https://api.so-me.studio

    ```


    ## Authentifizierung


    Alle `/v1/*`-Endpunkte erfordern einen API-Schlüssel, der im Header
    `X-API-Key` übergeben wird.


    ```

    X-API-Key: sk_live_xxxxxxxxxxxxxxxxxxxxxxxx

    ```


    ## Scopes


    Ein Schlüssel hat vollen Zugriff, es sei denn, du vergibst beim Erstellen
    Scopes. Ein Schlüssel mit Scopes kann nur die Endpunkte aufrufen, die seine
    Scopes abdecken; andere Endpunkte liefern `403 Forbidden`. Ein
    `GET`-Endpunkt benötigt `<resource>:read`; `POST`, `PUT`, `PATCH` und
    `DELETE` benötigen `<resource>:write`, was `read` einschließt. Ressourcen:
    `accounts`, `posts` (auch Entwürfe und Freigaben), `media`, `analytics` (nur
    lesend), `inbox`, `ai`, `biolinks`, `teams`, `settings`, `webhooks`,
    `support`, `templates` (nur lesend), `whatsapp`. Die Endpunkte für
    API-Schlüssel und Workspaces unter `/v1/settings` sowie `PATCH
    /v1/settings/profile` erfordern einen Schlüssel mit vollem Zugriff.
    Schlüssel mit Scopes können den MCP-Server nicht nutzen.


    ## API-Schlüssel erhalten


    1. Melde dich bei deinem Workspace in [Social media
    studio](https://so-me.studio/de) an

    2. Gehe zu **Einstellungen** > Tab **API**

    3. Klicke auf **Neuer API-Schlüssel**, vergib einen Namen und kopiere den
    Schlüssel


    > Der vollständige Schlüssel wird nur einmal angezeigt. Bewahre ihn sicher
    auf.


    ## Rate Limits


    60 Anfragen pro Minute und Workspace. Wenn du dieses Limit überschreitest,
    erhältst du eine Antwort `429 Too Many Requests`.


    ## Tarife


    Der API-Zugriff ist in den Tarifen **Standard**, **Advanced** und
    **Lifetime** verfügbar.
  version: '1.0'
  contact: {}
servers:
  - url: https://api.so-me.studio
    description: Produktion
security: []
tags:
  - name: Posts
    description: Social-Media-Beiträge erstellen, verwalten, planen und veröffentlichen
  - name: Accounts
    description: Verbundene Social-Media-Konten verwalten
  - name: Drafts
    description: Entwürfe erstellen und verwalten
  - name: Media
    description: Mediendateien und Ordner hochladen, organisieren und verwalten
  - name: Analytics
    description: >-
      Analysen auf Plattform- und Beitragsebene über alle Social-Media-Konten
      hinweg
  - name: Inbox
    description: >-
      Unterhaltungen, Antworten und gespeicherte Antworten im
      Social-Media-Posteingang
  - name: AI
    description: KI-gestützte Text- und Bildgenerierung
  - name: Approvals
    description: Freigabe-Workflow für Beiträge zur Zusammenarbeit im Team
  - name: Teams
    description: Verwaltung von Teammitgliedern und Einladungen
  - name: Biolinks
    description: Biolink-Seiten mit Buttons, Beiträgen und Themes
  - name: Settings
    description: Profil, Organisation, API-Schlüssel, Abrechnung und Nutzung
  - name: Authentication
    description: Registrierung, Anmeldung, Passwort zurücksetzen und Geräte-Autorisierung
  - name: Plans
    description: Verfügbare Abonnement-Tarife, Funktionen und Add-ons
  - name: Public Biolink
    description: >-
      Auflösung öffentlicher Biolink-Seiten und Analyse-Tracking (keine
      Authentifizierung erforderlich)
paths:
  /v1/media/presign-upload:
    post:
      tags:
        - Media
      summary: Vorsignierte Upload-URLs erzeugen
      description: >-
        Reserviert Dateien der Medienbibliothek und gibt für jede eine
        vorsignierte S3-URL zurück. Lade jede Datei per HTTP PUT an ihre
        uploadUrl hoch, mit einem Content-Type-Header, der dem für diese Datei
        angegebenen mimetype entspricht (zum Beispiel `Content-Type:
        video/mp4`). Die URL ist mit diesem Header signiert; ein PUT ohne ihn
        oder mit einem anderen Wert schlägt daher mit 403 SignatureDoesNotMatch
        fehl. HTML, SVG, XML, Skripte und unbekannte Typen werden mit 400
        abgelehnt.
      operationId: V1MediaController_presignUpload
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                files:
                  type: array
                  description: Dateien, für die Upload-URLs erzeugt werden sollen
                  items:
                    type: object
                    properties:
                      filename:
                        type: string
                        description: Ursprünglicher Dateiname
                      mimetype:
                        type: string
                        description: >-
                          MIME-Typ (z. B. image/jpeg, video/mp4). Der Upload-PUT
                          muss genau diesen Wert als Content-Type-Header senden.
                      size:
                        type: number
                        description: Dateigröße in Bytes
                    required:
                      - filename
                      - mimetype
                      - size
                folderId:
                  type: string
                  description: Optionaler Ordner für den Upload
              required:
                - files
      responses:
        '201':
          description: Vorsignierte Upload-URLs erzeugt
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    fileId:
                      type: string
                      description: UUID des Dateieintrags
                    uploadUrl:
                      type: string
                      description: >-
                        Vorsignierte PUT-URL. Sende die Datei mit einem
                        Content-Type, der dem angegebenen mimetype entspricht.
                    fileSrc:
                      type: string
                      description: Öffentliche CDN-URL
                    s3Key:
                      type: string
                      description: S3-Objektschlüssel
      security:
        - X-API-Key: []
components:
  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.