Endpoints

Asset uploaden

Upload een bestand naar een chat en ontvang een permanente CDN-URL

POST/api/client-app/assets/upload

Uploadt een bestand naar de assets van een chat en retourneert een permanente CDN-URL. Gebruik dit endpoint voor afbeeldingen, documenten, audio, video of elk ander bestand waarnaar u via een URL wilt verwijzen in uw app of workflow.

Verzoek

POST /api/client-app/assets/upload

Headers

HeaderVereistBeschrijving
AuthorizationJaBearer macaly_...
Content-TypeJamultipart/form-data

Formulierparameters

VeldTypeVereistStandaardBeschrijving
chatIdstringJa-De chat waarnaar de asset wordt geüpload
filefileJa-Het te uploaden bestand. Maximale grootte 20 MB
folderPathstringNee-Padpad gescheiden door schuine strepen, bijv. images/products
createFoldersstringNeefalse"true", "1" of "yes" maakt ontbrekende mappen in folderPath aan
folderIdstringNee-ID van een bestaande map. Stuur niet zowel folderId als folderPath mee
titlestringNeeOorspronkelijke bestandsnaamWeergavetitel voor de asset
metadatastring (JSON)Nee-JSON-object dat samen met de asset wordt opgeslagen

Geef folderId of folderPath op, niet beide. Als u beide meestuurt, krijgt u een foutmelding 400.

Voorbeeldverzoek

curl -X POST https://www.macaly.com/api/client-app/assets/upload \
  -H "Authorization: Bearer macaly_abc123..." \
  -F "chatId=abc123def456" \
  -F "file=@./logo.png;type=image/png"

Uploaden naar een map

Gebruik folderPath voor een leesbare mapstructuur en createFolders=true om ontbrekende mappen op dat pad aan te maken:

cURL
curl -X POST https://www.macaly.com/api/client-app/assets/upload \
  -H "Authorization: Bearer macaly_abc123..." \
  -F "chatId=abc123def456" \
  -F "folderPath=images/products" \
  -F "createFolders=true" \
  -F "title=Product hero image" \
  -F "file=@./hero.png;type=image/png"

Respons

{
  "success": true,
  "asset": {
    "assetId": "asset_123",
    "url": "https://cdn.macaly.app/user/chat/key/logo.png",
    "storageKey": "user/chat/key/logo.png",
    "contentType": "image/png",
    "fileSize": 12345,
    "type": "image",
    "folderId": "folder_123"
  }
}
VeldTypeBeschrijving
asset.assetIdstringUnieke identifier voor de asset
asset.urlstringPermanente CDN-URL voor het geüploade bestand
asset.storageKeystringInterne opslaglocatie
asset.contentTypestringMIME-type van het geüploade bestand
asset.fileSizenumberBestandsgrootte in bytes
asset.typestringAfgeleid asset-type, bijv. image, document
asset.folderIdstring | nullMap waarin de asset is geplaatst, indien van toepassing

Statuscodes

StatusBeschrijving
200Succes - Asset geüpload
400chatId of file ontbreekt, ongeldige JSON in metadata, of zowel folderId als folderPath meegestuurd
401Ongeldige of ontbrekende API-sleutel
403API-sleutel heeft geen toegang tot deze chat
404Map niet gevonden
413Bestand overschrijdt de limiet van 20 MB
500Serverfout

Mapregels

  • Mappaden worden gesplitst op /, getrimd, en lege segmenten worden genegeerd.
  • De maximale diepte is 8 mappen.
  • Elke mapnaam mag tot 255 tekens lang zijn.
  • Het matchen van mappen is niet hoofdlettergevoelig binnen dezelfde bovenliggende map.
  • Als folderPath niet bestaat en createFolders niet true is, mislukt de upload met een foutmelding 404.

Goed om te weten

  • Dit endpoint gebruikt dezelfde API-sleutel macaly_... als de rest van de API, ook al begint de URL met /api/client-app/. Er is geen apart token nodig.
  • De chat waarnaar chatId verwijst, moet tot hetzelfde team behoren als uw API-sleutel.
  • Geüploade assets krijgen een permanente CDN-URL die u kunt gebruiken als bijlage in Chat aanmaken of Bericht publiceren, of overal buiten Macaly.