Skip to main content
Flextell’de bir dosya her zaman bir üst kaynağa (hasta, sohbet mesajı, AI raporu, vs.) bağlıdır. Yükleme iki şekilde yapılabilir:
  1. Doğrudan POST /v1/files — dosyayı bağlı olacağı kaynağın ID’si ile birlikte yükleyin.
  2. Bağlam içinden — örneğin POST /v1/conversations/{id}/messages/media mesajla birlikte medya yüklemek için.

Zorunlu header’lar

Authorization: Bearer $TOKEN
X-Tenant: 12
Content-Type: multipart/form-data
Multipart isteklerde Content-Type header’ını elle ayarlamayın. HTTP istemciniz (fetch, axios, curl vb.) boundary ile birlikte doğru değeri üretecektir.

POST /v1/files — dosya yükleme

Parametreler

file
file
required
İkili dosya içeriği. Maksimum boyut 50 MB (51200 KB).
type
enum
required
Dosyanın türü (ör. document, image, report, …). Geçerli değerler için API Referansı’na bakın.
fileable_type
enum
required
Dosyanın bağlı olacağı üst kaynak türü. Desteklenenler:
  • customer
  • user
  • tenant
  • chat_log
  • ai_report
fileable_id
integer
required
Üst kaynağın ID’si. Örneğin fileable_type=customer için hasta ID’si.
description
string
Dosyaya iliştirilecek açıklama.

Örnek istek

curl --request POST \
  --url https://dev.flextell.ai/api/v1/files \
  --header "Authorization: Bearer $TOKEN" \
  --header "X-Tenant: 12" \
  --form "file=@/path/to/scan.pdf" \
  --form "type=document" \
  --form "fileable_type=customer" \
  --form "fileable_id=1234" \
  --form "description=Röntgen sonucu"

Yanıt

{
  "success": true,
  "data": {
    "id": 987,
    "name": "scan.pdf",
    "type": "document",
    "size": 423218,
    "mime_type": "application/pdf",
    "fileable_type": "customer",
    "fileable_id": 1234,
    "download_url": "https://dev.flextell.ai/files/987",
    "created_at": "2026-04-19T10:05:00+03:00"
  }
}

Dosya indirme

Yanıtta gelen download_url kısa ömürlü bir bağlantıdır. Direkt olarak tarayıcı açabilir veya arka uçta şu endpoint’i kullanabilirsiniz:
GET https://dev.flextell.ai/files/{file_id}
Bu URL Authorization header’ı gerektirir ve tenant erişim kontrolü yapar. URL’i public paylaşmayın — yetkisiz kullanıcıya sızması HIPAA/KVKK benzeri uyum riskleri doğurur.
Birden fazla dosyayı tek bir group_id ile birleştirmek için GET /files/group/{group_id} kullanabilirsiniz (örn. bir hastaya yüklenen tüm röntgenleri zip olarak indirmek için).

Dosya listeleme

Bir üst kaynağa bağlı tüm dosyaları çekmek için:
curl --request GET \
  --get "https://dev.flextell.ai/api/v1/files" \
  --header "Authorization: Bearer $TOKEN" \
  --header "X-Tenant: 12" \
  --data-urlencode "fileable_type=customer" \
  --data-urlencode "fileable_id=1234"
Desteklenen filtreler: type, fileable_type, fileable_id, trashed.

Sohbette medya gönderme

Bir görüşmeye medya eklemek için ayrı bir uç vardır:
curl --request POST \
  --url https://dev.flextell.ai/api/v1/conversations/42/messages/media \
  --header "Authorization: Bearer $TOKEN" \
  --header "X-Tenant: 12" \
  --form "file=@/path/to/image.jpg" \
  --form "caption=Rapor sonucu"
Bu uç, dosyayı otomatik olarak chat_log türünden bir kaynağa bağlar ve mesajı hastanın kanalı (WhatsApp/Telegram) üzerinden iletir.

Güvenlik ve uyum

  • Dosyalar S3 uyumlu bir depolama üzerinde private olarak tutulur. Direkt link yoktur; tüm indirme istekleri Flextell üzerinden kontrollü şekilde geçer.
  • Dosya içeriği yüklemeden önce virüs taramasına gönderilir (büyük dosyalarda birkaç saniye gecikme olabilir).
  • Hasta verisi içeren dosyalar KVKK/HIPAA uyumlu şekilde saklanır — paylaşımlarınızda bunu hatırda tutun.

Sınırlar

SınırDeğer
Tek dosya boyutu50 MB
Desteklenen MIME türleriİmaj (jpg/png/webp), PDF, Office belgeleri, ses/video
Günlük yükleme kotasıTenant planına bağlıdır (detay için destek)