TulipTulip Docs
Ressources

SDKs et clients API

Générer un client API à partir de la spécification OpenAPI de Tulip.

Tulip ne fournit pas de SDK officiel pour le moment. L'API REST est conçue pour être appelée directement depuis n'importe quel langage via des requêtes HTTP standard.

Appels directs

Aucune dépendance n'est nécessaire. Utilisez le client HTTP de votre langage :

TypeScript (fetch)
const response = await fetch('https://api.mytulip.io/v2/contracts', {
  method: 'POST',
  headers: {
    'key': process.env.TULIP_API_KEY,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    uid: 'user_123',
    contract_type: 'LCD',
    options: ['break', 'theft'],
    start_date: '2026-04-01T08:00:00.000Z',
    end_date: '2026-04-03T18:00:00.000Z',
    products: [{ product_id: 'prod_001', data: { user_name: 'Jean Dupont', product_marked: 'MARK-001' } }],
  }),
});

const { contract } = await response.json();
Python (requests)
import requests
import os

response = requests.post(
    'https://api.mytulip.io/v2/contracts',
    headers={'key': os.environ['TULIP_API_KEY']},
    json={
        'uid': 'user_123',
        'contract_type': 'LCD',
        'options': ['break', 'theft'],
        'start_date': '2026-04-01T08:00:00.000Z',
        'end_date': '2026-04-03T18:00:00.000Z',
        'products': [{'product_id': 'prod_001', 'data': {'user_name': 'Jean Dupont', 'product_marked': 'MARK-001'}}],
    }
)

contract = response.json()['contract']
PHP (cURL)
$ch = curl_init('https://api.mytulip.io/v2/contracts');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'key: ' . getenv('TULIP_API_KEY'),
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'uid' => 'user_123',
        'contract_type' => 'LCD',
        'options' => ['break', 'theft'],
        'start_date' => '2026-04-01T08:00:00.000Z',
        'end_date' => '2026-04-03T18:00:00.000Z',
        'products' => [['product_id' => 'prod_001', 'data' => ['user_name' => 'Jean Dupont', 'product_marked' => 'MARK-001']]],
    ]),
]);

$response = json_decode(curl_exec($ch), true);
$contract = $response['contract'];

Génération d'un client typé

Si vous souhaitez bénéficier de types et d'autocomplétion, vous pouvez générer un client à partir de la spécification OpenAPI de Tulip :

https://docs.mytulip.io/openapi.json

Outils recommandés

OutilLangagesInstallation
OpenAPI Generator50+ langages (TypeScript, Python, PHP, Java, Go, etc.)npm install @openapitools/openapi-generator-cli -g
openapi-typescriptTypeScript (types uniquement)npx openapi-typescript https://docs.mytulip.io/openapi.json -o tulip-api.d.ts
openapi-fetchTypeScript (client typé + fetch)npm install openapi-fetch

Exemple avec openapi-typescript + openapi-fetch

# 1. Générer les types
npx openapi-typescript https://docs.mytulip.io/openapi.json -o src/tulip-api.d.ts

# 2. Installer le client
npm install openapi-fetch
import createClient from 'openapi-fetch';
import type { paths } from './tulip-api';

const client = createClient<paths>({
  baseUrl: 'https://api.mytulip.io/v2',
  headers: { key: process.env.TULIP_API_KEY },
});

// Autocomplétion et validation de types
const { data, error } = await client.GET('/contracts/{contractId}', {
  params: { path: { contractId: '01JQXK8VN4TZMW3' } },
});

La combinaison openapi-typescript + openapi-fetch offre une expérience proche d'un SDK officiel : types générés automatiquement, autocomplétion dans l'IDE, et validation à la compilation — sans dépendance tierce spécifique à Tulip.

Que pensez-vous de cette page ?

Sur cette page