# Source HTTP tracking API

L'HTTP Tracking API est utilisé pour suivre **des événements** depuis n'importe quel site web, application ou serveur. Les données sont collectées par nos serveurs, puis traitées et routées vers toute destination configurée. Il est souvent utilisé pour un cas d'utilisation server-to-server.

Pour gérer les utilisateurs, consultez plutôt le [User API](https://doc.commandersact.com/features/sources/sources-catalog/import-crm-users/api-users)dédié, et pour les produits, le [Product API](/fr/fonctionnalites/sources/sources-catalog/import-conversions/api-conversions-and-product-catalog.md).

## URL de l'endpoint

L'endpoint collect de l'API est disponible à l'URL suivante :

```
https://collect.commander1.com/events?tc_s={siteId}&token={sourceKey}
```

Méthode HTTP : `POST`

## Paramètres

* `tc_s` (obligatoire) : site id
* `token` (obligatoire) : source key

{% hint style="info" %}
La source key est affichée dans les paramètres de n'importe quel [source](/fr/fonctionnalites/sources/overview.md).
{% endhint %}

## En-têtes

### Type de contenu <a href="#content-type" id="content-type"></a>

L'endpoint nécessite un en-tête `Content-Type` défini sur `application/json`:

```
Content-Type: application/json
```

## payload

Les propriétés de l'événement doivent être fournies dans le corps de la requête au format JSON.

Consultez les détails sur **les bonnes pratiques en matière de nommage des événements** ainsi que le **`event` method payload** dans nos [spécifications](/fr/developers/tracking-and-integrations/tracking/about-events.md).

{% hint style="warning" %}
Le format du payload a évolué en nov. 2022. L'ancien format restera pris en charge pendant un an. [Plus d'informations ici](/fr/fonctionnalites/sources/sources-catalog/server/http-tracking-api/http-tracking-api1_0.md).
{% endhint %}

{% hint style="info" %}
Les horodatages doivent être en millisecondes (ms).
{% endhint %}

{% hint style="info" %}
`consistent_anonymous_id` correspond à un identifiant unique pour un utilisateur, utilisé sur la plateforme CAX pour identifier un utilisateur. C'est l'équivalent du cookie CAID sur une source Web.
{% endhint %}

## Erreurs

L'endpoint renvoie une réponse HTTP 200 à toutes les requêtes API. Ainsi, le débogage doit être effectué à l'aide de l'interface de la plateforme ou de notre [config API](/fr/developers/config-api.md) (event inspector ou event delivery API).

À titre d'exception, un code HTTP 400 est renvoyé si la requête est trop volumineuse ou si le JSON du payload est invalide.

## Taille maximale de la requête <a href="#max-request-size" id="max-request-size"></a>

La taille maximale est de `32 Ko` par requête API.

Le `batch` L'endpoint API accepte un maximum de `500 Ko` par requête, avec une limite de `32 Ko` par événement dans le batch.

## Limite de débit

Il n'existe pas de véritable limite de débit au-delà de laquelle le système rejettera vos données. Mais si vous devez importer à une cadence supérieure à **500 requêtes par seconde**, veuillez [nous contacter](mailto:support@commandersact.com) au préalable.

## Exemple

Exemple de requête API :

```
POST https://collect.commander1.com/events?tc_s=29&token=7183b9d4-1031-11ee-be56-0242ac120002
```

```json
{
  "event_name": "search",
  "search_term": "t-shirts",
  "user": {
    "id": "12345",
    "consistent_anonymous_id": "67892",
    "email": "toto@domain.fr",
    "consent_categories": [
      "1",
      "3"
    ]
  },
  "context": {
    "event_id": "202110130000000000",
    "page": {
      "title": "Search page",
      "url": "https://shop.com/search?q=...",
      "lang": "en",
      "referrer": "https://www.google.fr",
      "viewport": {
        "width": 320,
        "height": 568
      }
    },
    "device": {
      "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36",
      "ip": "102.3.4.56",
      "lang": "fr",
      "cookie": "_fbp=123; _fbc=456; _ga=789",
      "timezone": "Europe/Paris"
    },
    "event_timestamp": "1639044446636"
  }
}
```

## Spécification OpenAPI

Télécharger la spécification OpenAPI :

{% file src="/files/d7ebe01b0903476b152dddd043d8a9393952b6c7" %}

## Sécurité et authentification

Notre API fonctionne en HTTPS, une norme pour une communication sécurisée sur Internet. Ce protocole garantit que les données sont chiffrées et transmises de manière sécurisée.

En complément du HTTPS, nous utilisons un système d'authentification basé sur un token API. Chaque source créée se voit attribuer un token unique qui reste constant pour toutes les requêtes API de cette source spécifique. Cette conception offre à la fois sécurité et praticité, permettant aux clients de gérer plusieurs sources, chacune avec son propre token dédié. La possibilité pour les clients de créer, gérer et désactiver des sources à volonté via notre interface ajoute un niveau de contrôle supplémentaire, garantissant que les tokens puissent être invalidés si nécessaire pour des raisons de sécurité ou opérationnelles. Notre approche de sécurité est adaptée aux besoins variés de nos clients. Nous nous concentrons sur la fourniture d'une expérience sécurisée, efficace et conviviale. Notre choix du HTTPS et de l'authentification par token s'inscrit dans notre engagement à fournir une sécurité robuste tout en garantissant une intégration simple et une flexibilité opérationnelle pour nos clients. Cette approche est choisie plutôt que des systèmes plus complexes comme Mutual TLS (mTLS), OpenID Connect (OIDC) ou le filtrage IP.

## batch

Le `batch` method vous permet d'envoyer une série de `event` requêtes dans un seul batch, ce qui permet d'économiser sur les requêtes sortantes.

La taille maximale est de `500 Ko` par requête batch et `32 Ko` par appel.

L'endpoint collect de l'API BATCH est disponible à l'URL suivante :

<pre><code><strong>https://collect.commander1.com/events/batch?tc_s={siteId}&#x26;token={sourceKey}
</strong></code></pre>

### Exemple de batch

Exemple de requête API :

```
POST https://collect.commander1.com/events/batch?tc_s=29&token=7183b9d4-1031-11ee-be56-0242ac120002
```

<pre class="language-json"><code class="lang-json"><strong>{
</strong>  "batch": [
      {
        "event_name": "add_payment_info",
        "payment_method": "card",
        "revenue": 16.00,
        "value": 22.53,
        "currency": "EUR",
        "user": {
            "id": "12345",
            "consistent_anonymous_id": "67892",
            "consent_categories": [1,3]
        },
        "context": {
          "event_id": "202210310000000000",
          "page": {},
          "device": {}
        },
        "event_timestamp": "1639044446636"
<strong>      },
</strong>      {
        "event_name": "generate_lead",
        "method": "LinkedIn",
        "user": {
            "consistent_anonymous_id": "5689865"
            "consent_categories": [1,2,3]
        },
        "context": {
          "event_id": "202210180000000000",
          "page": {},
          "device": {}
        },
        "event_timestamp": "1639094446633"
      }
  ]
}
</code></pre>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://doc.commandersact.com/fr/fonctionnalites/sources/sources-catalog/server/http-tracking-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
