Voir les catégories

API REST instantanée pour les bases de données SQL populaires : comment Query Streams transforme une requête enregistrée en un point de terminaison prêt à l’emploi pour les partenaires

19 minutes de lecture

PLATEFORME API PARTAGER DES DONNÉES EN DIRECT

API REST instantanée pour bases de données SQL populaires — sans partager d'identifiants.

Transformez n'importe quelle requête SQL enregistrée en un point de terminaison REST prêt à l'emploi pour vos partenaires, avec des clés API par destinataire, des quotas mensuels et un historique complet des modifications. Données statiques ou en flux continu, JSON, NDJSON ou CSV, compression LZ4 en transit : le tout sans infrastructure d'hébergement et sans accès au code SQL pour le destinataire.

Aucune infrastructure pour héberger Clés API par destinataire Modes statiques et de diffusion LZ4 + compression de fil gzip Journal d'audit complet

Query Streams est une plateforme d'intégration de données sécurisée et en temps réel qui transforme toute requête SQL enregistrée en un point de terminaison d'API REST prêt pour les partenaires, avec des clés par destinataire, des quotas d'octets mensuels et une piste d'audit complète. La plateforme API vous permet de partager des données de base de données en direct avec vos clients, fournisseurs et équipes internes sans jamais divulguer vos identifiants de base de données, votre code SQL ou la topologie de votre réseau. Pour en savoir plus, rendez-vous sur QueryStreams.com. et Inscrivez-vous gratuitement pour créer votre première API partagée en cinq minutes.

Partagez des données de base de données en direct via une API REST, sans partager d'identifiants.

La plupart des équipes envoient des exportations CSV, distribuent des comptes de base de données en lecture seule ou mettent en place un service Express personnalisé lorsqu'un partenaire a besoin de données en temps réel. Chaque approche présente le même problème : le partenaire se retrouve avec des données qu'il ne devrait pas avoir — une boîte de réception pleine de fichiers CSV obsolètes, des identifiants SQL qui persistent bien après la fin de la collaboration ou un accès root à un service non maintenu. La plateforme API Query Streams vous permet de partager… capacité à exécuter une requête enregistréeCe ne sont pas les identifiants sous-jacents qui sont concernés. Chaque destinataire reçoit sa propre clé API, chaque appel est limité en débit et audité, et l'accès peut être révoqué depuis le portail en un seul clic, sans avoir à modifier le mot de passe de la base de données.

Clés API par destinataire

Chaque bénéficiaire reçoit le sien qsapi_* clé. Révoquer une autorisation sans toucher aux autres. Faire pivoter sans rien redéployer.

Les identifiants ne quittent jamais votre réseau.

L'agent réseau établit la connexion depuis votre environnement. Le destinataire voit un point de terminaison REST, jamais le nom d'hôte de votre base de données, votre mot de passe ni votre requête SQL.

Conçu pour la lecture seule

Le mécanisme de contrôle en lecture seule de l'agent bloque toute instruction autre que SELECT avant qu'elle n'atteigne la base de données. Il n'existe aucun risque de suppression accidentelle.

Modes de réponse statique et en continu

Choisissez un seul corps mis en mémoire tampon (8 Mo / 100 000 lignes par défaut) ou un transfert par blocs qui envoie les lignes au fur et à mesure que l'agent les produit (1 Go / 10 millions de lignes par défaut).

Cadre LZ4 + compression de fil gzip

Mode optionnel de charge utile LZ4 pour les utilisateurs du SDK (décompression en une seule ligne), plus mode standard Accept-Encoding: gzip sur les chemins non compressés.

bac à sable intégré de style facteur

Testez chaque point de terminaison dans le portail avant de le partager. Ajustez les paramètres de requête, inspectez le JSON, copiez le boucle — pas d'espace de travail Postman séparé.

CORS + listes blanches d'adresses IP

Associer la clé d'un destinataire à des adresses IP ou des CIDR spécifiques, limiter les origines du navigateur par point de terminaison et superposer les limites de débit standard à deux niveaux en dessous.

Spécification OpenAPI 3.1 par point de terminaison

Chaque point de terminaison expose une valeur lisible par machine openapi.json. Transmettez-le à Postman, Swagger UI ou à un générateur de SDK comme openapi-typescript.

Les bases de données SQL populaires sont prises en charge.

La plateforme API est compatible avec les bases de données SQL que la plupart des équipes utilisent déjà. Une fois votre agent réseau connecté, chaque requête enregistrée sur une base de données prise en charge peut être envoyée à un point de terminaison REST partagé ; aucune configuration ni kit de développement logiciel (SDK) n’est requis pour chaque base de données.

Microsoft SQL Server
Microsoft SQL Server
PostgreSQL
PostgreSQL
MySQL
MySQL
MariaDB
MariaDB
SQLite
SQLite
Microsoft Access
Microsoft Access
Oracle
Oracle
BigQuery
BigQuery
DuckDB
DuckDB
Flocon de neige et plus encore

Les bases de données hébergées dans le cloud fonctionnent de la même manière.

L'agent se connecte aussi bien aux bases de données sur site qu'aux services gérés tels qu'AWS RDS, Azure SQL Database, Google Cloud SQL et Snowflake. Pour une latence optimale, déployez l'agent dans la même région que la base de données ; un compte Query Streams peut exécuter plusieurs agents dans différentes régions et clouds.

Comment ça marche en trois étapes

Une fois votre agent réseau et un connecteur de base de données compatible configurés, la promotion d'une requête enregistrée vers une API partagée prend environ cinq minutes :

1

Enregistrer une requête SQL

Créez la requête dans l'outil de création de requêtes du portail, en l'associant à n'importe quelle base de données connectée. Ajoutez des filtres, des paramètres et un nom. Tout élément pouvant être sélectionné est accessible via l'API.

2

Promouvoir son utilisation comme API

Ouvrez l'onglet Installation. Choisissez un type de point de terminaison (permanent, à expiration ou budget d'appels N-shot), un format interne (JSON, NDJSON ou CSV), un mode de réponse (statique ou en flux continu) et indiquez si la compression LZ4 est autorisée. Enregistrez.

3

Inviter les destinataires par courriel

Saisissez l'adresse e-mail d'un partenaire ; il recevra une invitation via un lien magique. Les destinataires ne possédant pas de compte Query Streams bénéficieront d'une création automatique d'une organisation gratuite dès l'inscription ; leur clé leur sera émise instantanément après acceptation.

Vous utilisez déjà Query Streams pour Excel ou Google Sheets ?

Votre agent réseau est donc déjà en place et votre base de données est déjà connectée. Promouvoir une requête enregistrée existante vers un point de terminaison REST prend environ une minute ; vous ignorez ainsi les étapes 1 et la majeure partie de l’étape 2. Cette même requête enregistrée peut alimenter une actualisation Excel, une barre latérale Sheets, etc. et un point de terminaison REST destiné aux partenaires, en même temps.

Choisissez un mode de réponse : statique ou en continu

Lors de sa création, chaque point de terminaison choisit l'un des deux modes de réponse. Ce mode détermine la manière dont les données quittent nos serveurs ; le format de transmission (JSON, NDJSON, CSV ou trame LZ4) est choisi indépendamment par le destinataire pour chaque appel.

Statique responseMode = statique

Par défaut. Nous collectons chaque ligne dans une seule réponse mise en mémoire tampon, définie Longueur du contenuet émettre un seul corps. Les erreurs sont des codes d'état HTTP normaux (200, 400, 413 API_OUTPUT_TOO_LARGE, 503).

  • Capacités par défaut : 8 Mo / 100 000 lignes par appel
  • Plateforme max : 50 Mo / 1 000 000 lignes par appel
  • Idéal pour : tableaux de bord, recherches à la demande, requêtes de moins de 10 000 lignes, curl, outils d'IA nécessitant un seul objet JSON
Streaming responseMode = flux

Nous revenons 200 OK + Transfer-Encoding: chunked Dès réception de la première ligne, les lignes suivantes sont transmises au fur et à mesure de leur production par l'agent. La mémoire disponible à la périphérie du réseau reste limitée quelle que soit la taille du résultat.

  • Capacités par défaut : 1 Go / 10 000 000 lignes par appel
  • Plateforme max : 50 Go / 100 000 000 lignes par appel
  • Idéal pour : Flux n8n/Zapier, pipelines analytiques, exportations en masse, tout ce qui tire parti du temps de réponse du serveur (TTFB)

Les erreurs en cours de flux sur un point de terminaison de streaming ne peuvent pas être exprimées par un code d'état HTTP (l'état a déjà été envoyé avec le premier segment). Nous les signalons comme un dernier enregistrement sentinelle : {"_error":"...","rows_returned":N} pour NDJSON, ou # erreur : ..., lignes_retournées : N Pour les flux CSV, les bibliothèques consommatrices doivent vérifier le dernier enregistrement avant de considérer le flux comme terminé.

Choisissez un format de transmission : JSON, NDJSON, CSV ou cadre LZ4

Dans le mode de réponse choisi, les destinataires sélectionnent le format de transmission pour chaque appel à l'aide d'en-têtes HTTP standard (Accepter pour le format intérieur et Accept-Encoding (pour la compression). Un seul point de terminaison peut prendre en charge les quatre formats ; le propriétaire peut également verrouiller le point de terminaison sur un seul format à partir de l’onglet Installation.

JSON application/json

Un seul tableau JSON. Valeur par défaut en mode statique. Format universel pour les clients web, les outils d'IA et les utilisateurs de curl.

# Python
données = requêtes.get(url, en-têtes=h).json()
NDJSON application/x-ndjson

JSON délimité par des sauts de ligne, une ligne par ligne. Uniquement en flux continu. Analyse à la demande pour les pipelines et l'ETL.

# Python
pour doubler dans resp.iter_lines(): ligne = json.loads(ligne)
CSV texte/csv

Fichier CSV RFC 4180. Fonctionne en mode statique (un seul corps) ou en flux continu (en-tête sur le premier segment). Ouvrez-le dans Excel, pandas, R ou tout autre logiciel compatible CSV.

# pandas
df = pd.read_csv(url, storage_options=h)
Cadre LZ4 application/x-lz4-frame

Le format de cadre LZ4 conforme aux normes (magique) 04 22 4D 18Une image fixe ; images concaténées et transférées par blocs pour la diffusion en continu. Facturation au octet compressé.

# Python
données = lz4.frame.decompress(resp.content)

Pour les consommateurs qui souhaitent une interopérabilité maximale, le format JSON (ou CSV) simple suffit ; tout le reste est optionnel. La compression réseau (gzip) est appliquée automatiquement aux données non compressées via la norme. Accept-Encoding En-tête ; nous n’effectuons jamais de double compression, donc LZ4-frame remplace gzip au lieu de s’empiler par-dessus.

Aperçu des quatre combinaisons de fils

Le mode de réponse et la compression de la charge utile se composent de quatre chemins terminaux. Le propriétaire du terminal choisit les valeurs par défaut dans l'onglet Installation ; le destinataire peut les modifier pour chaque appel (dans les limites autorisées par le propriétaire). La compression du réseau (gzip) est négociée via Accept-Encoding des couches superposées automatiquement aux deux rangées non compressées.

STATIQUE + AUCUN

Un seul tampon application/json (ou texte/csv) corps avec Longueur du contenuChemin par défaut. Compression du trafic réseau (gzip) négociée automatiquement.

casquettes
8 Mo / 100 000 lignes
facturation
octets non compressés
idéal pour
tableaux de bord, curl, outils d'IA
STATIQUE + LZ4

Un seul application/x-lz4-frame Corps contenant une trame LZ4 standard (multibloc). Décompression en une seule ligne de code consommateur.

casquettes
8 Mo compressés (~50 Mo bruts)
facturation
octets compressés
idéal pour
consommateurs de SDK, optimisation des coûts
STREAM + AUCUN

application/x-ndjson (ou en streaming) texte/csv) sur Transfer-Encoding: chunkedUne ligne par segment. Compression Wire (gzip) négociée automatiquement.

casquettes
1 Go / 10 millions de lignes
facturation
octets non compressés
idéal pour
n8n, Zapier, ETL analytique
STREAM + LZ4

application/x-lz4-frame Sous forme d'une séquence de trames LZ4 standard concaténées lors d'un transfert par blocs. Aucun protocole de tramage inventé par QS.

casquettes
1 Go compressé (~5 Go brut)
facturation
octets compressés
idéal pour
Exportations en masse, SDK pour utilisateurs avancés
Mode + compressionType MIME de filSilhouetteCapacités par défautFactures surCas d'utilisation
statique + aucun application/json ou texte/csv Un corps tamponné, Longueur du contenu 8 Mo / 100 000 lignes octets non compressés Tableaux de bord, curl, par défaut
statique + lz4 application/x-lz4-frame Cadre LZ4 unique (multibloc) 8 Mo compressés octets compressés consommateurs SDK, réponse unique optimisée en termes de coûts
flux + aucun application/x-ndjson ou texte/csv Transfert par blocs, NDJSON par ligne 1 Go / 10 millions de lignes octets non compressés n8n, Zapier, pipelines analytiques
flux + lz4 application/x-lz4-frame Transfert par morceaux, cadres LZ4 concaténés 1 Go compressé (~5 Go brut) octets compressés Exportation en masse, kit de développement logiciel avancé, combinaison la plus économique et la plus rapide

Filtres de passage lors de l'appel

Tout paramètre de requête enregistrée exposé par le propriétaire peut être défini par le destinataire à chaque appel. OBTENIR Les requêtes utilisent la chaîne de requête ; POSTE Les requêtes utilisent un corps JSON. L'agent lie les paramètres sous forme de valeurs d'instructions préparées (jamais par concaténation de chaînes), empêchant ainsi le destinataire d'injecter du code SQL à partir d'un paramètre.

GET avec paramètres de chaîne de requête
# Appel du destinataire boucle -H « Autorisation : Porteur qsapi_K7…ZmQ » \ « https://api.querystreams.com/v1/endpoints/customer-stats?customer=Acme&start=2026-01-01 »
Requête POST avec corps JSON
# Appel du destinataire boucle -X POST -H « Autorisation : Porteur qsapi_K7…ZmQ » -H « Content-Type: application/json » \ -d '{“customer”: “Acme”, “start”: “2026-01-01”}' \ « https://api.querystreams.com/v1/endpoints/customer-stats »

Le propriétaire du point de terminaison contrôle les paramètres exposés (dans le sous-onglet Paramètres de l'onglet Installation), ceux qui sont verrouillés sur une valeur fixe et l'ensemble des valeurs autorisées. Les destinataires ne peuvent définir que les paramètres exposés par le propriétaire ; tout le reste est fixe. Les paramètres à valeurs multiples utilisent des clés répétées (?status=payé&status=expédié) sur GET et un tableau JSON standard sur POST.

Poste de sécurité : CORS, listes blanches d’adresses IP et limitations de débit

Au-delà des clés par destinataire et de l'application du mode lecture seule, chaque point de terminaison vous offre quatre verrous supplémentaires que vous pouvez renforcer avant de le partager.

Liste blanche d'adresses IP par clé

Associez la clé d'un destinataire à une adresse IP unique, une plage CIDR ou une liste. Compatible IPv4 et IPv6. Un appel provenant d'une adresse hors liste blanche est renvoyé. 403 IP_NON_AUTORIS avant même que la requête SQL ne soit modifiée.

Liste blanche CORS par point de terminaison

Indiquez-nous quelles origines de navigateur sont autorisées à appeler le point de terminaison depuis JavaScript. Définir ["https://app.acme.com"] pour un seul partenaire, ou désactivez complètement CORS (par défaut) pour les points de terminaison serveur à serveur uniquement.

Limites de débit à deux niveaux

Un quota de requêtes est alloué à la clé du destinataire (60 requêtes/min par défaut), ainsi qu'un second quota sur le point de terminaison lui-même (120 requêtes/min par défaut). Un destinataire bruyant ne peut pas saturer le quota des autres destinataires.

Quotas mensuels en octets

Limitation optionnelle du volume de données facturé par point de terminaison et par mois calendaire. Lorsque cette limite est atteinte, les appels sont renvoyés. 429 ENDPOINT_QUOTA_EXHAUSTED jusqu'à la réinitialisation de la période. Une limite de rayon d'explosion sécuritaire pour les nouveaux partenaires.

Chaque point de terminaison est livré avec une spécification OpenAPI 3.1

Chaque point de terminaison expose une spécification lisible par machine à l'adresse GET /v1/endpoints/{id}/openapi.jsonIl décrit l'URL, la méthode, chaque paramètre (avec son type, ses valeurs autorisées et sa valeur par défaut), la structure de chaque réponse selon son format (JSON, NDJSON, CSV, LZ4) et chaque code d'erreur. Collez-le dans Postman ou Insomnia pour générer une collection de requêtes, utilisez-le avec Swagger UI pour obtenir une documentation interactive ou exécutez-le avec un générateur de SDK pour obtenir un client typé dans le langage de votre choix.

Générer un client TypeScript typé en une seule commande
1. Récupérer la spécification OpenAPI pour le point de terminaison boucle -H « Autorisation : Porteur $QS_KEY » \ https://api.querystreams.com/v1/endpoints/customer-stats/openapi.json -o customer-stats.openapi.json # 2. Générer un client TypeScript typé npx openapi-typescript customer-stats.openapi.json \ -o customer-stats.types.ts

Utilisez-le depuis Power BI, Tableau et tout outil JSON.

Parce que chaque point de terminaison renvoie une norme JSON — avec le format CSV et le flux NDJSON en parallèle — tout outil capable de lire un flux REST consomme vos données directement, sans rien à installer côté destinataire. Power Query est le pont le plus facile vers la suite Microsoft BI : dans Power BI choisir Récupérer des données → Depuis le Web, collez l'URL du point de terminaison, ajoutez le Autorisation L'en-tête est analysé par Power Query, qui convertit le JSON en un tableau actualisable alimentant votre modèle de données. (Pour les données en direct dans une feuille de calcul, la méthode native est utilisée.) Modules complémentaires Query Streams pour Excel et Google Sheets « c’est la voie la plus simple — Power Query est là lorsque vous souhaitez intégrer les données directement dans le modèle BI. »

Logo Microsoft Power Query Power Query Récupérer les données → Depuis le Web, collez l'URL et le jeton d'authentification, puis développez le JSON en un tableau actualisable.
Logo Microsoft Power BI Power BI Même moteur Power Query — chargez le point de terminaison dans votre modèle et planifiez une actualisation
Logo Tableau Tableau Configurez un connecteur de données Web ou une source JSON pour qu'elle pointe vers le point de terminaison des tableaux de bord en direct.
Logo du facteur Facteur Importez la spécification OpenAPI 3.1, puis envoyez, inspectez et partagez des requêtes en un seul clic.

Il nourrit également n8n, Qlik, boucle, Python (demandes ou pandas.read_json), Insomnia, Hoppscotch — ou tout script ou flux de travail capable d'envoyer une requête HTTP et de lire du JSON.

Testez les points de terminaison dans votre navigateur, à la manière de Postman, sans quitter le portail.

Avant de confier une clé à un partenaire, testez vous-même le point de terminaison. L'onglet Installation intègre un générateur de requêtes qui reproduit l'interface pour votre destinataire : choisissez la méthode HTTP, définissez les paramètres de requête, sélectionnez un exemple, envoyez la requête et examinez la réponse. L'environnement de test utilise une clé éphémère temporaire, garantissant ainsi que l'appel suit exactement le même chemin que la requête du destinataire : même authentification, même répartition des agents, même négociation de compression et même comptabilisation des octets.

bac à sable intégré au portail — exemple de réponse (trame LZ4 décodée)
// HTTP/1.1 200 OK // Content-Type: application/json; charset=utf-8 // X-QS-Bytes-Wire : 4188 (après tramage LZ4) // X-QS-Bytes-Raw : 12942 (taille JSON décodée) // X-QS-Durée-Ms : 312 [ { "client": « Acme Co », "ordres": 142, « dernière_commande »: « 12/05/2026 » }, { "client": « Globex », "ordres": 98, « dernière_commande »: « 19/05/2026 » }, { "client": « Initech », "ordres": 76, « dernière_commande »: « 18/05/2026 » } ]

Facturation tenant compte de la compression

Le nombre d'octets dans votre journal d'activité est mesuré à la sortie de notre serveur API et suivre une règle simple et prévisible : si le destinataire a consenti à Compression de la charge utile du cadre LZ4 (Accept-Encoding: lz4), les factures d'appel sur les octets compressés qui ont effectivement transité sur le réseau ; sinon, les factures d'appel sur les octets non compressés. Compression HTTP standard (gzip) est une optimisation pure du transport et n'affecte pas la facturation — cette compression intervient après que nous ayons mesuré les octets que le consommateur est invité à « voir ».

Note sur les octets sur fil

Si un appel utilise la compression LZ4, la même charge utile JSON est généralement facturée à environ 25 à 40 % de sa taille non compressée pour les lignes transactionnelles et à 10 à 20 % pour les charges de travail analytiques avec des colonnes répétées, car cela correspond à la quantité de données réellement transférées par le réseau de votre partenaire. L'environnement de test intégré au navigateur affiche ces deux chiffres (X-QS-Octets-Fil et X-QS-Octets-Brut) afin que vous puissiez constater les économies avant de partager un point de terminaison. Nous avons choisi de facturer au débit (lorsque LZ4 est activé) car ce chiffre correspond à la fois à vos coûts de sortie de données et à la consommation de bande passante du destinataire. Compression HTTP standard (gzip) est une optimisation pure du transport et n'affecte pas la facturation. Les appels qui ne demandent pas LZ4 continuent d'être facturés sur la base d'octets non compressés., ce qui correspond à la manière dont Excel, Sheets et le serveur MCP sont facturés aujourd'hui.

La décompression côté client se fait sur une ligne par langage. Voici le code d'intégration standard pour chaque environnement pour lequel nous fournissons des exemples :

Décompression du cadre LZ4 côté consommateur (en une ligne)
# Python (pip install lz4) importer lz4.frame data = lz4.frame.decompress(resp.content) // Node.js / TypeScript (npm install lz4js) importer LZ4 à partir de 'lz4js'; const données = LZ4.décompresserFrame(tampon); // Go (github.com/pierrec/lz4/v4) données, _ := io.ReadAll(lz4.NewReader(corps)) # curl + lz4 CLI boucle -H « Accept-Encoding: lz4 » URL | lz4 -d –

Conçu pour le partage de données entre partenaires, et non pour les API à l'échelle d'Internet.

La plateforme API Query Streams est conçue pour les cas d'utilisation où vous connaissez vos destinataires : clients, fournisseurs, équipes internes, organismes de réglementation, auditeurs, membres du conseil d'administration. Les quotas de points de terminaison, les limites mensuelles de données et les limitations de débit par destinataire sont calculés pour des dizaines, voire des milliers, d'appels par jour et par destinataire. Si votre cas d'utilisation concerne une API marketing publique qui doit traiter des millions de requêtes anonymes par seconde, vous aurez probablement besoin d'une passerelle API comme Kong, Apigee ou AWS API Gateway, placée devant un service que vous développez vous-même. La plateforme API complète ce modèle ; elle ne le remplace pas.

Questions fréquemment posées

Dois-je ouvrir des ports entrants dans mon pare-feu pour exposer ma base de données en tant qu'API ? +
Non — l'agent réseau établit une seule connexion TLS sortante sur le port 443 et les requêtes API entrantes sont acheminées vers ce port ; il n'y a donc aucun port à ouvrir, aucun VPN et aucun logiciel de tunnel. Comment fonctionne une connexion sortante uniquement ?
Le destinataire peut-il voir mes identifiants SQL ou mes identifiants de base de données ? +
Jamais. Le destinataire voit l'URL du point de terminaison, la réponse JSON et les paramètres de requête que vous avez exposés comme filtres. Le code SQL lui-même reste confiné à Query Streams. Le mot de passe de la base de données est stocké uniquement dans le coffre-fort d'informations d'identification chiffré de l'agent sur votre réseau et n'est jamais transmis à notre cloud.
Comment révoquer l'accès API d'un partenaire ? +
Ouvrez le point de terminaison dans le portail, trouvez le destinataire dans l'onglet Gérer, puis cliquez sur Révoquer. La prochaine requête du destinataire sera renvoyée. 401 CLÉ_RÉVOQUÉELes autres destinataires du même point de terminaison continuent de travailler avec leurs propres clés, et vous n'avez pas besoin de faire tourner le mot de passe de la base de données.
Quelle est la différence entre les modes de réponse statique et en flux continu ? +
Statique Le mode met en mémoire tampon le résultat complet sur notre périphérie, définit Longueur du contenuElle génère un seul corps de requête HTTP. Les limites par défaut sont de 8 Mo pour 100 000 lignes ; la limite maximale de la plateforme est de 50 Mo pour 1 million de lignes. Idéale pour les tableaux de bord, les requêtes portant sur moins de 10 000 lignes et les utilisateurs de curl. Streaming mode émet Transfer-Encoding: chunked Il transmet les lignes au fur et à mesure de leur production par l'agent. La limite par défaut est de 1 Go / 10 millions de lignes ; la limite maximale de la plateforme est de 50 Go / 100 millions de lignes. Idéal pour les flux n8n/Zapier, les pipelines analytiques et les exportations en masse. Vous choisissez le mode pour chaque point de terminaison ; le destinataire choisit le format de transmission (JSON, NDJSON, CSV ou trame LZ4) pour chaque appel.
Comment décompresser les réponses aux trames LZ4 dans mon code ? +
Le cadre LZ4 est le format de cadre LZ4 conforme aux normes (magique) 04 22 4D 18), donc toutes les bibliothèques LZ4 courantes le gèrent nativement. En Python : lz4.frame.decompress(resp.content)Dans Node.js avec lz4js: LZ4.décompresserFrame(tampon). Dans Go avec github.com/pierrec/lz4/v4: lz4.NewReader(corps)Sur l'interface de ligne de commande : boucle ... | lz4 -d -Pour les points de terminaison de diffusion en continu, le corps de la réponse est une séquence de trames LZ4 concaténées. Transfer-Encoding: chunked — le même décodeur d'images traite de manière identique les entrées d'images uniques et d'images concaténées lorsqu'il est appelé dans une boucle de flux.
Puis-je limiter un point de terminaison à des adresses IP ou des origines de navigateur spécifiques ? +
Oui, sur les deux axes. La clé API de chaque destinataire possède une option Liste blanche d'adresses IP (adresses IP uniques ou plages CIDR, IPv4 et IPv6) — les appels provenant de l'extérieur de la liste blanche sont renvoyés 403 IP_NON_AUTORIS avant toute exécution de requête SQL. Par ailleurs, chaque point de terminaison possède une option facultative Liste d'origine autorisée CORS — le régler sur ["https://app.acme.com"] Si le point de terminaison est destiné à être appelé depuis l'interface d'un partenaire spécifique, vous pouvez l'indiquer. Sinon, désactivez-le complètement (comportement par défaut) pour les points de terminaison exclusivement serveur à serveur. Ces deux options sont modifiables depuis l'onglet Installation et prennent effet immédiatement.
Comment l'utilisation de la plateforme API est-elle facturée ? +
Note sur les octets transmis par câble. Si un appel demande une compression de trame LZ4 (Accept-Encoding: lz4), la facturation se fait sur les octets compressés ; sinon, elle se fait sur les octets non compressés. La même charge utile JSON via LZ4 est généralement facturée à 25-40 % de sa taille non compressée pour les lignes transactionnelles et à 10-20 % pour les charges de travail analytiques, car cela correspond à la quantité de données réellement transférées par le réseau de votre partenaire. L’environnement de test intégré au navigateur affiche les deux chiffres côte à côte. Compression HTTP standard (gzip) est une optimisation pure du transport et n'affecte pas la facturation.
Que se passe-t-il si une requête tente d'écrire ou de supprimer des données ? +
Il est rejeté avec VIOLATION EN LECTURE SEULE Avant même qu'elle n'atteigne votre base de données, le validateur en lecture seule de l'agent s'exécute sur votre réseau et n'autorise que les instructions SELECT. Pourquoi chaque point de terminaison est conçu pour être en lecture seule →
Quelles bases de données SQL la plateforme API prend-elle en charge ? +
Microsoft SQL Server, PostgreSQL, MySQL, MariaDB, SQLite, Microsoft Access, Snowflake, Oracle, BigQuery et DuckDB — sur site ou hébergés sur AWS RDS, Azure SQL Database, Google Cloud SQL ou tout autre cloud accessible via l’agent. De nouveaux moteurs de base de données sont régulièrement ajoutés ; consultez la documentation. Configuration du connecteur catégorie pour la liste actuelle.
Puis-je voir ce que chaque destinataire a réellement demandé ? +
Oui. Chaque requête est enregistrée avec le préfixe de clé du destinataire, l'adresse IP source, les paramètres de requête, le statut de la réponse, le volume de données transmises et la durée. Le journal d'activité est consultable sur le portail et est inclus dans toute extraction de conformité ou d'audit effectuée depuis votre compte. Aucune donnée n'est supprimée automatiquement ; la durée de conservation est conforme à la politique de conservation des journaux d'audit de votre abonnement.
En quoi cela se compare-t-il à la création d'une API par moi-même avec Express, FastAPI ou PostgREST ? +
Un service développé sur mesure vous offre une flexibilité et une maintenance maximales. Vous gérez l'authentification, la limitation du débit, la génération de clés par destinataire, le registre d'audit, le pipeline de déploiement, la rotation TLS, la surveillance, et vous assurez la mise à jour de l'ensemble du système. Query Streams propose cette interface comme une fonctionnalité gérée : vous enregistrez une requête SQL, vous générez une clé, et c'est tout. PostgREST est plus proche de notre concept, mais vous lie à PostgreSQL, expose l'intégralité du schéma par défaut et vous laisse la responsabilité de la gestion du déploiement, du TLS, de l'authentification et de l'audit.
La plateforme API nécessite-t-elle un abonnement distinct en plus de Query Streams ? +
Non. La plateforme API est incluse dans tous les forfaits Query Streams ; son utilisation est soumise à la même allocation mensuelle de données que celle qui alimente Excel, Google Sheets, le serveur MCP et Nova AI. Les forfaits supérieurs augmentent les quotas par point de terminaison, le nombre de points de terminaison simultanés et le nombre de destinataires. Voir la documentation. page de tarification pour les chiffres par niveau.

Commencer

Créez votre première API partagée en cinq minutes.

Inscrivez-vous gratuitement, installez l'agent réseau à côté de votre base de données, enregistrez une requête SQL et envoyez par e-mail à un destinataire une invitation à réclamer un lien magique. Les clés par destinataire, l'historique des modifications et la facturation compressée sont activés dès le départ.

Guides associés : Partagez des données de base de données en direct sans divulguer d'identifiants. | Partagez les résultats de votre requête en toute sécurité | Guides d'installation des connecteurs | Tous les guides du serveur MCP

Catégorie : Plateforme API

Mots-clés : plateforme API, API REST, partage de données en direct, API partenaire, clés par destinataire, conversion SQL vers API, API instantanée, API de streaming, NdJSON, compression LZ4, OpenAPI, PostgreSQL, MySQL, SQL Server, Snowflake

Méta-description : API REST instantanée pour les bases de données SQL populaires — statiques ou en flux continu, JSON/NDJSON/CSV/LZ4-frame, clés par destinataire, OpenAPI 3.1, aucune information d’identification partagée.

Updated on 16 juin 2026

Powered by BetterDocs