API-Dokumentation

Integrieren Sie SendMeSafe in Ihre bestehenden Workflows und Anwendungen mit unserer REST-API.

Übersicht

Die SendMeSafe API ermöglicht die programmatische Verwaltung von Upload-Links, Share-Links, Dateien und Team-Mitgliedern. Sie können alle Funktionen der Web-Oberfläche auch über die API nutzen.

  • -Upload-Links erstellen, aktualisieren und verwalten
  • -Dateien sicher hochladen und herunterladen
  • -Share-Links für sichere Dateifreigabe erstellen
  • -Team-Mitglieder einladen und verwalten

Authentifizierung

Authentifizierung

Alle API-Anfragen erfordern eine Authentifizierung mittels Bearer-Token im Authorization-Header.

Beispiel

Header
Authorization: Bearer YOUR_API_KEY

Sicherheitshinweis

Verwenden Sie API-Schlüssel nur serverseitig. Betten Sie sie niemals in Client-Code ein.

Basis-URL

Alle API-Anfragen werden an die folgende Basis-URL gesendet:

https://sendmesafe.com/api

Endpunkte

Uploads

Endpunkte für das Hochladen von Dateien über Upload-Links.

POST/api/upload

Generiert eine vorzeichnete URL für den direkten Upload zu S3.

Parameter

tokenstring*
Der Upload-Link Token
filenamestring*
Name der hochzuladenden Datei
sizenumber*
Dateigröße in Bytes
mimeTypestring
MIME-Typ der Datei
passwordstring
Passwort falls der Link geschützt ist
curl -X POST https://sendmesafe.com/api/upload \
  -H "Content-Type: application/json" \
  -d '{
    "token": "abc123def456",
    "filename": "document.pdf",
    "size": 1048576,
    "mimeType": "application/pdf"
  }'
Antwort
200
{
  "url": "https://storage.sendmesafe.com/...",
  "key": "org_123/client_456/uuid-document.pdf"
}
POST/api/upload/complete

Bestätigt den Upload und speichert die Datei-Metadaten.

Parameter

tokenstring*
Der Upload-Link Token
keystring*
S3-Schlüssel aus der Presign-Antwort
filenamestring*
Name der hochgeladenen Datei
sizenumber*
Dateigröße in Bytes

Shares

Erstellen Sie sichere Share-Links, um Dateien mit Ihren Kunden zu teilen.

POST/api/share

Erstellt einen neuen Share-Link.

Parameter

labelstring
Optionale Bezeichnung für den Share
clientIdstring
Optionale Zuordnung zu einem Kunden
passwordstring
Optionales Passwort (min. 4 Zeichen)
expiresAtISO 8601
Optionales Ablaufdatum
maxDownloadsnumber
Maximale Anzahl Downloads
Antwort
200
{
  "id": "share_abc123",
  "token": "x7y8z9...",
  "label": "Q4 Reports",
  "expiresAt": "2025-12-31T23:59:59Z",
  "maxDownloads": 5,
  "hasPassword": true
}
GET/api/share

Listet alle Share-Links Ihrer Organisation auf.

GET/api/share/{id}

Ruft Details eines Share-Links ab.

Parameter

idstring*
Die eindeutige ID des Share-Links
DELETE/api/share/{id}

Löscht einen Share-Link und alle zugehörigen Dateien.

Parameter

idstring*
Die eindeutige ID des Share-Links

Dateien

Verwalten Sie empfangene und gesendete Dateien.

GET/api/files

Listet alle Dateien mit optionalen Filtern auf.

Parameter

typestring
Filter: 'received' oder 'sent'
clientstring
Filter nach Kunden-ID
qstring
Suchbegriff für Dateinamen
sortstring
Sortierung: 'date', 'name' oder 'size'
Antwort
200
{
  "files": [
    {
      "id": "received-file_123",
      "type": "received",
      "filename": "document.pdf",
      "size": 1048576,
      "mimeType": "application/pdf",
      "createdAt": "2025-01-15T10:30:00Z",
      "clientId": "client_abc",
      "clientName": "Max Mustermann"
    }
  ],
  "counts": {
    "total": 42,
    "received": 30,
    "sent": 12
  }
}
GET/api/files/{id}/download

Lädt eine Datei herunter (Streaming).

Parameter

idstring*
Die eindeutige Datei-ID (Format: 'received-{id}' oder 'sent-{id}')
DELETE/api/files/{id}

Löscht eine Datei dauerhaft.

Parameter

idstring*
Die eindeutige Datei-ID

Team

Verwalten Sie Team-Mitglieder und Einladungen.

Hinweis: Die Team-Funktionen erfordern den Organisation-Plan.

GET/api/team/members

Listet alle Team-Mitglieder und offene Einladungen auf.

Antwort
200
{
  "members": [
    {
      "id": "user_123",
      "name": "Anna Schmidt",
      "email": "anna@company.com",
      "role": "OWNER",
      "createdAt": "2024-01-01T00:00:00Z"
    }
  ],
  "invitations": [
    {
      "id": "inv_456",
      "email": "new@company.com",
      "role": "MEMBER",
      "expiresAt": "2025-01-22T00:00:00Z"
    }
  ]
}
POST/api/team/invitations

Sendet eine Einladung an eine E-Mail-Adresse.

Parameter

emailstring*
E-Mail-Adresse des neuen Mitglieds
rolestring
Rolle: 'ADMIN' oder 'MEMBER' (Standard)
DELETE/api/team/invitations?id={id}

Widerruft eine ausstehende Einladung.

Parameter

idstring*
Die Einladungs-ID
DELETE/api/team/members/{id}

Entfernt ein Mitglied aus dem Team.

Parameter

idstring*
Die Benutzer-ID

Fehler-Codes

Die API verwendet Standard-HTTP-Statuscodes zur Kennzeichnung von Erfolg oder Fehlern.

CodeStatusBeschreibung
400Bad RequestDie Anfrage enthält ungültige Parameter oder ist fehlerhaft formatiert.
401UnauthorizedUngültiger oder fehlender API-Schlüssel.
403ForbiddenKeine Berechtigung für diese Aktion oder Abo-Upgrade erforderlich.
404Not FoundDie angeforderte Ressource wurde nicht gefunden.
410GoneDie Ressource ist abgelaufen (z.B. Link abgelaufen).
500Server ErrorEin interner Serverfehler ist aufgetreten. Bitte versuchen Sie es später erneut.

Fehler-Antwort

JSON401
{
  "error": "Unauthorized",
  "message": "Invalid or missing API key"
}

Rate Limits

Um die Stabilität des Dienstes zu gewährleisten, gelten folgende Rate Limits:

EndpunktLimit
/api/*100 Anfragen pro Minute
/api/upload50 Uploads pro Minute
/api/search30 Suchanfragen pro Minute

API-Support

Haben Sie Fragen zur API oder benötigen Sie Hilfe bei der Integration? Unser Entwickler-Team unterstützt Sie gerne.

api@sendmesafe.com