API publique · SDK ouvert

Construisez sur PrivateCore

Une API REST, deux SDK, et un principe : l'API tourne sur votre Mac Mini, pas sur un cluster qu'on contrôle. Les tokens sont à vous, les logs sont à vous, la latence est celle de votre LAN.

Ce que l'API permet

  • Connecter vos outils custom : un tableau Airtable, un Slack, un ERP legacy, un tableau de bord Grafana maison.
  • Automatiser ce que vous répétez : générer les factures récurrentes du mois, déclencher une relance quand un devis reste non signé 7 jours, synchroniser les stocks avec un fournisseur.
  • Construire des apps internes : une app mobile pour l'équipe de salle, un widget réservation sur votre site vitrine, un dashboard multi-site custom pour la direction.
  • Auditer et exporter : rapatrier toute votre compta en JSON, générer un FEC à la demande, miroir de votre base vers votre propre data warehouse.

Deux SDK officiels

TypeScript

@privatecore/sdk
TypeScript
import { PrivateCoreClient } from '@privatecore/sdk';

const pc = new PrivateCoreClient({
  baseUrl: 'https://mac-mini.your-tailnet.ts.net',
  token: process.env.PRIVATECORE_TOKEN,
});

// Lister les factures du mois
const invoices = await pc.invoices.list({
  from: '2026-04-01',
  to: '2026-04-30',
});

// Générer une facture Factur-X conforme
const invoice = await pc.invoices.create({
  clientId: 'cli_0f3a',
  lines: [{ label: 'Prestation conseil', qty: 1, unitPrice: 1200, vat: 20 }],
  format: 'factur-x',
});

// S'abonner aux événements temps réel
pc.events.on('invoice.paid', (event) => {
  console.log(`Facture ${event.invoiceId} réglée : ${event.amount} €`);
});

Python

privatecore-sdk
Python
from privatecore import PrivateCoreClient

pc = PrivateCoreClient(
    base_url="https://mac-mini.your-tailnet.ts.net",
    token=os.environ["PRIVATECORE_TOKEN"],
)

# Exporter le FEC de l'exercice en cours
fec = pc.accounting.export_fec(year=2026)
fec.save("fec_2026.txt")

# Créer un client CRM
client = pc.crm.clients.create(
    name="Bistro des Remparts",
    email="[email protected]",
    segment="restaurant",
)

# Webhook : recevoir les nouvelles factures fournisseur OCRisées
@pc.webhook("supplier_invoice.ocr_completed")
def on_invoice_ocr(event):
    print(f"Facture {event.supplier} : {event.amount} €")

Authentification

Des tokens scopés par application, révocables, journalisés localement.

  • Création : un token par intégration, depuis Réglages → API → Nouveau token. Vous choisissez les scopes (lecture factures, écriture CRM, etc.).
  • Jamais stockés chez nous : les tokens sont générés sur votre Mac Mini et n'existent nulle part ailleurs. Si vous en perdez un, vous le révoquez et vous en générez un nouveau.
  • Journal complet : chaque appel API est horodaté dans le journal d'audit local (qui a utilisé quel token, depuis quelle IP, avec quel résultat). Exportable en CSV.
  • Révocation instantanée : un clic suffit. Le token devient immédiatement invalide.

Rate limits

Il n'y a pas de quota SaaS. La limite pratique, c'est la puissance de votre Mac Mini et la bande passante de votre connexion locale.

Les opérations en lecture (GET) sont limitées à 100 req/s par token pour éviter qu'un script emballé ne rende l'interface lente pour les autres utilisateurs. Les opérations coûteuses (OCR, génération PDF, export FEC) sont mises en file d'attente et traitées une par une pour préserver la latence des usages interactifs.

Documentation & statut

  • Docs complètes : docs.privatecore.fr (référence, guides, recettes).
  • Changelog : chaque version du backend expose un endpoint /api/changelog. Les breaking changes suivent un deprecation cycle de 6 mois minimum.
  • OpenAPI : spec OpenAPI 3.1 disponible en clair à /api/openapi.json. Compatible Postman, Insomnia, code generators tiers.
  • Statut : l'API est incluse dans la supervision Uptime Kuma locale.

Prêt à reprendre le contrôle ?

Une installation sur mesure, une réponse même jour, et votre Mac Mini livré en J+1.