Aurabase Logo
aurabasedocs
API/Database/Insérer des lignes

Insérer des lignes

POST/v1/db/{project_id}/{table}

Insère un ou plusieurs enregistrements dans une table du schéma projet. Supporte l'upsert via on_conflict et retourne les lignes créées par défaut.

#
Request

En-têtes

apikeyREQUIS
Clé API du projet (anon ou service_role). X-API-Key accepté aussi.
Authorization
Bearer <JWT utilisateur> — sans lui, la requête est traitée en anon
Content-TypeREQUIS
application/json
Prefer
return=representation (défaut) | return=minimal — honoré sur les deux moteurs
#
Request

Body parameters

tablestringREQUIS
Nom de la table cible, dans le chemin. Les tables internes préfixées _aura_ sont refusées en 403.
valuesobject | object[]REQUIS
Enregistrement à insérer, ou tableau pour insertion en lot.
↳ Propriétés
iduuid
Défaut : gen_random_uuid(). Omettre pour génération serveur.
created_attimestamptz
Défaut : now(). Omettre pour horodatage serveur.
[key]any
Toute colonne déclarée par votre schéma.
on_conflictstringOPTIONNEL
Paramètre de requête (pas de corps). Colonne(s) de contrainte pour upsert : ?on_conflict=id. Un upsert répond 200 OK, une insertion simple 201 Created.
#
Response

Codes de réponse

201CreatedInsertion réussie. Corps = { data, meta } par défaut.
200OKUpsert réussi (?on_conflict= présent).
204No ContentPrefer: return=minimal — aucun corps, en-tête Preference-Applied renvoyé.
400Bad RequestCorps invalide, colonne inconnue, ou tableau vide. error.code = BAD_REQUEST ou COLUMN_NOT_FOUND.
403ForbiddenRLS refuse l'écriture, ou table interne _aura_*.
409ConflictViolation de contrainte unique sans on_conflict. error.code = DUPLICATE_KEY.
413Payload Too LargeCorps de requête au-delà de MAX_BODY_SIZE (défaut 50 Mo). Il n'y a pas de plafond au nombre de lignes.
#
Notes

À savoir

Info
Le header Prefer: return=representation est ajouté automatiquement par le SDK. Ajoutez Prefer: return=minimal pour alléger la réponse.
Attention
Les insertions en lot sont atomiques : si une ligne viole une contrainte, toutes sont annulées.
Attention
L'en-tête Idempotency-Key n'est pas lu sur cette route : deux POST identiques portant la même clé créent deux lignes. Pour dédoublonner, passez par ?on_conflict= et une contrainte unique.
v1.0 · révisé 15 avr. 2026