엔드포인트
Questa è la documentazione dell’API pubblica di Capgo cloud
Per accedere, aggiungi negli header la tua chiave API come authorization
Organizzazioni
Questo endpoint ti permette di gestire le organizzazioni e i loro membri
GET
https://apicapgoapp/organization
Recupera informazioni sull’organizzazione. Se orgId
è fornito nei parametri, restituisce una singola organizzazione. Altrimenti, restituisce tutte le organizzazioni accessibili
interface Organization { id: string created_by: string created_at: string updated_at: string logo: string | null name: string management_email: string customer_id: string | null}
Restituisce:
return Organization[] | Organization
POST
https://apicapgoapp/organization
Aggiorna un’organizzazione esistente. Richiede ruolo admin
interface OrganizationUpdate { orgId: string logo?: string name?: string management_email?: string}
Richiede un corpo della richiesta di tipo OrganizationUpdate
In caso di successo, restituisce:
return { status: 'Organization updated', data: Organization }
PUT
https://apicapgoapp/organization
Crea una nuova organizzazione
interface OrganizationCreate { name: string}
Richiede un corpo della richiesta di tipo OrganizationCreate
In caso di successo, restituisce:
return { status: 'Organization created', id: string }
Chiavi API
Questo endpoint ti permette di gestire le chiavi API per accedere all’API Capgo
GET
https://apicapgoapp/apikey
Recupera le chiavi API per il tuo account. Restituisce tutte le chiavi API accessibili
interface ApiKey { created_at: string | null id: number key: string mode: 'read' | 'write' | 'upload' | 'all' name: string updated_at: string | null user_id: string}
Restituisce:
return ApiKey[]
POST
https://apicapgoapp/apikey
Crea una nuova chiave API per un’organizzazione specifica
Parametri Query:
interface ApiKeyCreate { org_id: string mode: 'read' | 'write' | 'upload' | 'all'}
Restituisce:
return { apikey: ApiKey }
DELETE
https://apicapgoapp/apikey/:id
Elimina una chiave API esistente
Parametri:
id
: La chiave API da eliminare
In caso di successo, restituisce:
return { success: true }
In caso di errore, restituisce:
return { error: string, supabaseError?: any }
Membri (/organization/members)
GET
Recupera i membri dell’organizzazione
Richiede un corpo della richiesta (parametri query) di tipo { orgId: string }
In caso di successo, restituisce:
interface Member { uid: string; email: string; image_url: string; role: "invite_read" | "invite_upload" | "invite_write" | "invite_admin" | "invite_super_admin" | "read" | "upload" | "write" | "admin" | "super_admin";}return Member[]
DELETE
https://apicapgoapp/organization/members
Elimina un membro dell’organizzazione
interface MemberDelete { orgId: string email: string}
Richiede un corpo della richiesta (parametri query) di tipo MemberDelete
In caso di successo, restituisce:
return { status: 'OK' }
In caso di errore, restituisce:
return { error: string, status: 'KO' }
Statistiche
Questo endpoint ti permette di recuperare varie statistiche sulle tue app e organizzazioni
GET /statistics/app/:app_id
Recupera statistiche per una specifica app
Parametri Query:
interface StatsQuery { from: Date to: Date graph?: 'mau' | 'storage' | 'bandwidth'}
Restituisce:
interface Stats { date: string mau: number // Utenti Attivi Mensili storage: number // Utilizzo storage in bytes bandwidth: number // Utilizzo bandwidth in bytes}
Se il parametro graph
è fornito, restituisce un’immagine SVG della metrica richiesta
GET /statistics/user
Recupera statistiche aggregate per tutte le organizzazioni a cui l’utente ha accesso
Parametri Query:
interface StatsQuery { from: Date to: Date graph?: 'mau' | 'storage' | 'bandwidth'}
Restituisce:
Se graph
non è fornito:
interface Stats { date: string mau: number // Utenti Attivi Mensili storage: number // Utilizzo storage in bytes bandwidth: number // Utilizzo bandwidth in bytes}[]
Se il parametro graph
è fornito, restituisce un’immagine SVG della metrica richiesta
GET /statistics/org/:org_id
Recupera statistiche per una specifica organizzazione
Parametri Query:
interface StatsQuery { from: Date to: Date graph?: 'mau' | 'storage' | 'bandwidth'}
Restituisce:
Se graph
non è fornito:
interface Stats { date: string mau: number // Utenti Attivi Mensili storage: number // Utilizzo storage in bytes bandwidth: number // Utilizzo bandwidth in bytes}[]
Se il parametro graph
è fornito, restituisce un’immagine SVG della metrica richiesta
Canali
Questo endpoint ti permette di controllare e modificare tutti i Canali disponibili della tua app
POST
https://apicapgoapp/channel
Invia questo per creare o aggiornare un canale
type disable_update = "major" | "minor" | "version_number" | "none"interface ChannelSet { app_id: string channel: string version?: string public?: boolean disableAutoUpdateUnderNative?: boolean disableAutoUpdate?: disable_update ios?: boolean android?: boolean allow_device_self_set?: boolean allow_emulator?: boolean allow_dev?: boolean}
ricevi questo:
{ "status": "ok" }
GET
https://apicapgoapp/channel
Invia app_id
come parametro URL e ricevi array dei primi 50 canali
Puoi ottenere i successivi inviando page=1
interface Channel { id: number; created_at: string; name: string; app_id: string; version: { id: number, name: string }; created_by: string; updated_at: string; public: boolean; // default o no disableAutoUpdateUnderNative: boolean; disableAutoUpdate: boolean; allow_emulator: boolean; allow_dev: boolean;}[]
e opzionalmente il nome del channel
come parametro URL per riceverne uno:
interface Channel { id: number; created_at: string; name: string; app_id: string; version: { id: number, name: string }; created_by: string; updated_at: string; public: boolean; // default o no disableAutoUpdateUnderNative: boolean; disableAutoUpdate: boolean; allow_emulator: boolean; allow_dev: boolean;}
DELETE
https://apicapgoapp/channel
Invia questo come parametro query
interface Channel { channel: string app_id: string}
ricevi questo:
{ "status": "ok" }
Dispositivi
Questo endpoint ti permette di controllare e modificare tutti i dispositivi collegati alla tua app
POST
https://apicapgoapp/device
Invia questo
interface DeviceLink { app_id: string device_id: string version_id?: string // nome versione (sarà migrato a un nome migliore) channel?: string // nome canale}
ricevi questo:
{ "status": "ok" }
GET
https://apicapgoapp/device
Invia app_id
come parametro URL e ricevi array dei primi 50 dispositiviPuoi ottenere il successivo inviando page=1
interface Device{ created_at?: string | undefined; updated_at?: string | undefined; device_id: string; custom_id: string; version: { id: number, name: string }; app_id: string; platform?: "ios" | "android" | undefined; plugin_version: string; os_version?: string | undefined; version_build: string; is_prod: boolean; is_emulator: boolean;}[]
e opzionalmente il nome device_id
come parametro URL per riceverne uno:
interface Device { created_at?: string | undefined; updated_at?: string | undefined; device_id: string; version: { id: number, name: string }; app_id: string; platform?: "ios" | "android" | undefined; plugin_version: string; os_version?: string | undefined;}
DELETE
Questo endpoint serve per scollegare il canale e sovrascrivere la versione. Non puoi eliminare un dispositivo da Capgo
https://apicapgoapp/device
Invia questo come parametro di query
interface Device { device_id: string app_id: string}
ricevi questo:
{ "status": "ok" }
Bundle
Questo endpoint ti permette di controllare ed eliminare tutti i bundle collegati alla tua app
GET
https://apicapgoapp/bundle
Invia app_id
come parametro URL e ricevi un array dei primi 50 bundle
Puoi ottenere i successivi inviando page=1
interface Bundle { app_id: string bucket_id: string | null checksum: string | null created_at: string | null deleted: boolean external_url: string | null id: number minUpdateVersion: string | null name: string native_packages: Json[] | null owner_org: string r2_path: string | null session_key: string | null storage_provider: string updated_at: string | null user_id: string | null}[]
DELETE
Elimina un bundle nel Cloud
https://apicapgoapp/bundle
Invia questo come parametro di query
interface Bundle { app_id: string version: string}
ricevi questo:
{ "status": "ok" }
In alternativa puoi inviare
interface Bundle { app_id: string}
Per eliminare tutti i bundle