API con schema per tenant
Non esiste un riferimento API statico per Twenty. Ogni spazio di lavoro ha il proprio schema — quando aggiungi un oggetto personalizzato (ad esempioInvoice), ottiene immediatamente endpoint REST e GraphQL identici a quelli degli oggetti integrati come Company o Person. L’API è generata dallo schema, quindi gli endpoint usano direttamente i nomi dei tuoi oggetti e campi — niente ID opachi.
La documentazione delle API specifica del tuo spazio di lavoro è disponibile in Impostazioni → Sviluppatori → API dopo aver creato una chiave API. Include un playground interattivo in cui puoi eseguire chiamate reali sui tuoi dati.
Due API
API principale —/rest/ e /graphql/
CRUD sui record: Persone, Aziende, Opportunità, i tuoi oggetti personalizzati. Esegui query, filtra, attraversa le relazioni.
API dei metadati — /rest/metadata/ e /metadata/
Gestione dello schema: crea/modifica/elimina oggetti, campi e relazioni. Questo è il modo per modificare in modo programmatico il tuo modello di dati.
Entrambe sono disponibili in REST e GraphQL. GraphQL aggiunge upsert in batch e la possibilità di attraversare le relazioni in un’unica query. I dati sottostanti sono gli stessi in entrambi i casi.
URL di base
Autenticazione
Operazioni batch
Sia REST che GraphQL supportano il batching fino a 60 record per richiesta — creazione, aggiornamento o eliminazione. GraphQL supporta anche l’upsert in batch (crea o aggiorna in una sola chiamata) usando nomi plurali comeCreateCompanies.
Selezione dei campi (REST)
Gli endpoint dei record REST accettano un parametro di queryfields per restituire solo i campi necessari:
idviene sempre restituito.- I campi compositi (come
emailsoname) vengono selezionati interamente in base al nome del campo. - Un campo di relazione molti-a-uno restituisce la relativa colonna di join (ad es.
companyId) condepth=0. I campi di relazione uno-a-molti vengono restituiti solo condepth=1. Condepth=1, vengono espansi solo i campi di relazione elencati infields. - I campi sconosciuti o i campi che il tuo ruolo non può leggere restituiscono un errore
400.
fields viene omesso su un oggetto con più di 200 campi leggibili, ogni record restituisce un set predefinito di 200 campi: id, i campi dell’etichetta e dell’identificatore dell’immagine, createdAt, updatedAt, deletedAt, position, quindi i campi standard prima dei campi personalizzati, ordinati per nome. Passa esplicitamente fields per leggere qualsiasi campo oltre quel set predefinito.