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

# Neuen Beitrag erstellen

> Erstellt einen Beitrag mit optionalen Mediendateien. Um Medien anzuhängen, rufe zuerst POST /v1/posts/presign-media auf, um Upload-URLs zu erhalten, lade deine Dateien zu S3 hoch und gib die Dateireferenzen dann hier an.



## OpenAPI

````yaml /de/openapi.json post /v1/posts
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/posts:
    post:
      tags:
        - Posts
      summary: Neuen Beitrag erstellen
      description: >-
        Erstellt einen Beitrag mit optionalen Mediendateien. Um Medien
        anzuhängen, rufe zuerst POST /v1/posts/presign-media auf, um Upload-URLs
        zu erhalten, lade deine Dateien zu S3 hoch und gib die Dateireferenzen
        dann hier an.
      operationId: V1PostsController_create
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateV1PostDto'
      responses:
        '201':
          description: Beitrag erstellt
        '400':
          description: Validierungsfehler
      security:
        - X-API-Key: []
components:
  schemas:
    CreateV1PostDto:
      type: object
      properties:
        text:
          type: string
          description: Textinhalt des Beitrags
        socialMedia:
          enum:
            - TWITTER
            - INSTAGRAM
            - LINKEDIN
            - LINKEDIN_PAGE
            - FACEBOOK
            - TIKTOK
            - YOUTUBE
            - THREADS
            - WHATSAPP
          type: string
          description: Ziel-Plattform
        postType:
          enum:
            - TEXT
            - IMAGE
            - MULTIPLE_IMAGES
            - VIDEO
            - CAROUSEL
            - REEL
            - STORY
          type: string
          description: Beitragstyp (IMAGE, VIDEO, CAROUSEL, REEL, STORY, TEXT)
        scheduledAt:
          type: string
          description: >-
            Datum im ISO-8601-Format für die Planung (muss in der Zukunft
            liegen)
        metaData:
          type: object
          description: Plattformspezifische Metadaten
        files:
          description: >-
            Anzuhängende Mediendateien (rufe zuerst presign-media auf, um
            s3Prefix und fileSrc zu erhalten)
          type: array
          items:
            $ref: '#/components/schemas/V1FileDto'
        accountId:
          type: string
          description: ID des Social-Media-Kontos, von dem aus gepostet wird
      required:
        - text
        - socialMedia
        - postType
    V1FileDto:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Datei-UUID aus presign-media
        filename:
          type: string
          description: Ursprünglicher Dateiname
        mimetype:
          type: string
          description: MIME-Typ (z. B. image/jpeg, video/mp4)
        size:
          type: number
          description: Dateigröße in Bytes
        s3Prefix:
          type: string
          description: S3-Objektschlüssel aus der Antwort von presign-media
        fileSrc:
          type: string
          description: CDN-URL aus der Antwort von presign-media
        duration:
          type: number
          minimum: 0.1
          maximum: 86400
          description: Videodauer in Sekunden (für Videodateien erforderlich)
      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.