Premiers pas

Événements

Utilisateurs

Métriques

Organisation

Agents IA

Référence

Documentation API

Intégrez LogsNinja à votre application en quelques minutes. Envoyez des événements depuis n'importe quel langage avec une simple requête HTTP POST.

Démarrage rapide

Obtenir le prompt de démarrage

Authentification

Toutes les requêtes doivent inclure un token API dans le header Authorization.

HTTP
Authorization: Bearer YOUR_API_TOKEN

Vous pouvez créer des tokens API depuis les paramètres de votre projet. Accéder aux tokens

Si vous êtes un agent IA plutôt qu'un humain, vous pouvez obtenir un token sans qu'on vous le copie-colle. Voir l'autorisation de l'appareil

Limites de débit & quotas

Les limites dépendent de votre plan. La limite de débit s'applique à l'organisation et est partagée entre tous les tokens API ; créer des tokens supplémentaires ne l'augmente pas.

La limite globale par organisation s'applique à chaque endpoint authentifié par un token API, y compris POST /v1/events, PUT /v1/users, POST /v1/ping, PUT /v1/metrics, /v1/org/charts, /v1/org/widgets, et les opérations de suppression. Chaque appel consomme une requête de cette même limite partagée.

/v1/device/authorize (pas encore de token à ce stade) est limité à 10 requêtes par heure et par adresse IP, et /v1/device/token à 60 requêtes par 5 minutes et par adresse IP.

Plan Limite d'appels Événements / mois Images / mois Images par événement
Free 60 req/min 3,000 – Non inclus
Starter 300 req/min 100,000 20,000 1 par événement · 1 Mo max · redimensionnée à 1024px · corps de requête jusqu'à 1 Mo
Plus 1,200 req/min 500,000 100,000 4 par événement · 1 Mo max · redimensionnée à 1024px · corps de requête jusqu'à 8 Mo
Enterprise Sur mesure Sur mesure Sur mesure Sur mesure

Lorsque la limite de débit est dépassée, l'API renvoie 429 avec Too many requests. Le nombre d'événements et le nombre d'images ont chacun leur propre quota mensuel ; lorsque l'un des deux est atteint, l'API renvoie 429 avec Monthly event or hosted image quota exceeded. Upgrade your plan to continue.

En-têtes de quota

Chaque réponse réussie de POST /v1/events inclut les en-têtes suivants :

HTTP
X-Quota-Remaining: 2497
X-Image-Quota-Remaining: 18320
X-Plan: starter
  • X-Quota-Remaining – événements restants pour le mois calendaire en cours. -1 signifie qu'ils sont illimités (Enterprise).
  • X-Image-Quota-Remaining – images restantes pour le mois calendaire en cours. -1 signifie illimité (Enterprise).
  • X-Plan – le plan actuel de l'organisation (free, starter, plus, enterprise).

Voir tous les plans et tarifs

Format des métadonnées

Le champ metadata sur les événements et les utilisateurs suit les mêmes règles :

  • Clés : lettres minuscules, chiffres, tirets et underscores uniquement (^[a-z0-9_-]+$)
  • Valeurs : string, number, ou boolean
  • Maximum 20 clés par objet
  • Clés : 100 caractères max
  • Valeurs texte : 255 caractères max
JSON
{
  "plan": "pro",
  "amount": 49,
  "score": 4.8,
  "is-trial": false
}

Prompt de démarrage

Collez ce prompt dans Claude Code, Cursor, Codex ou tout autre agent IA pour démarrer immédiatement.

Prompt
You are integrating LogsNinja into this project.

LogsNinja is a real-time event tracking and push notification platform. Use its REST API to log application events, track users, update dashboard metrics, and trigger instant push notifications to mobile and desktop devices.

LogsNinja provides no SDK – all integration is done via plain HTTP calls using the libraries and conventions already present in this project.

## Fetch the full API documentation

Before writing any integration code, fetch the complete reference in Markdown:

  curl https://logsninja.com/fr/docs -H "Accept: text/markdown"

Read it carefully – it covers all endpoints, request fields, response codes, rate limits, and examples.

## Core concepts

**Events** – send a POST to /v1/events. All fields are covered in the documentation.
**Streams** – lightweight channels grouping events. Auto-created on first use (e.g. "payments", "errors").
**Users** – PUT /v1/users to create or update a user profile. The same id is used in the user field when sending events. Optional country_code is caller-supplied (LogsNinja does not geolocate IPs itself) – see the full docs for how to obtain it.
**Metrics** – PUT /v1/metrics to create or update a numeric, text, currency, or percent dashboard tile. Supports atomic diff increments.
**Presence** – POST /v1/ping to signal a user is online without creating an event.
**Event chains** – link events sequentially with before/after fields to trace multi-step workflows.
**Charts** – POST/GET/PATCH/DELETE /v1/org/charts to manage dashboard charts. Same fields and validation rules as the dashboard's own chart editor.
**Widgets** – POST/GET/PATCH/DELETE /v1/org/widgets (plus POST /v1/org/widgets/reorder) to manage what's on the dashboard. The dashboard is a masonry layout, not a rigid grid: "small" widgets (metric, online_users) are meant for width 1 or 2 and render at exactly half the visual height of "large" widgets (chart, world_map, events_7d, top_countries), meant for width 2 or 3 (full row) – keep that in mind when arranging one via the API.

## Authentication

All requests require:

  Authorization: Bearer YOUR_API_TOKEN

Creating an account and generating a token both require a human to sign in
to the LogsNinja dashboard - you cannot do either yourself. If you don't
already have a token (e.g. in an environment variable), stop and ask the
person you're working with to create one at https://logsninja.com/fr/my/tokens
and give it to you (for example as a LOGSNINJA_API_TOKEN environment
variable) before you continue.

## API base URL

  https://api.logsninja.com/v1

## MCP server

If you are an AI agent with MCP support rather than a code-generation assistant, LogsNinja is also usable directly as an MCP server at https://logsninja.com/mcp (same Bearer token as above) – it exposes tools to manage charts and dashboard widgets, explore project data, and create/delete test events, users, and metrics, without writing HTTP calls yourself. See the full docs for the tool list.

## Integration guidelines

- Use the HTTP client and patterns already established in this project – do not introduce new dependencies.
- All LogsNinja calls must be fire-and-forget from the application's perspective: they must never block the main flow or surface errors to the end user.
- Apply a 3-second timeout to every HTTP call, if possible.
- If this project already has a job queue, background worker, or retry mechanism, use it for LogsNinja calls.
- If no such mechanism exists, wrap calls in a silent try/catch (or equivalent) so that a LogsNinja failure has zero impact on the application.

## What to instrument

Scan the codebase and identify meaningful moments to send events: key user actions, business transactions, errors, background jobs, and any other signal that would be useful to monitor. For each, choose a descriptive title and a fitting emoji. Once done, provide a summary of every integration point added.

## Presence

Use presence sparingly. Sending an event with a user field already updates that user's online status for 15 minutes, so a separate ping is redundant in those cases. Only call POST /v1/ping when you know the user is active but no event will be sent soon – for example on login, or during an idle session. Do not ping on every page view or API call.

Envoyer un événement

POST https://api.logsninja.com/v1/events

En-têtes

HTTP
Authorization: Bearer YOUR_API_TOKEN
Content-Type: application/json

Corps de la requête

JSON
{
  "project": "YOUR_PROJECT_ID",
  "stream": "payments",
  "title": "New subscription",
  "content": "[email protected] subscribed to Pro",
  "emoji": "💳",
  "metadata": { "plan": "pro", "amount": 49 },
  "notify": true
}

Exemples

curl -X POST https://api.logsninja.com/v1/events \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "project": "YOUR_PROJECT_ID",
    "stream": "payments",
    "title": "New subscription",
    "content": "[email protected] subscribed to Pro",
    "notify": true
  }'
await fetch('https://api.logsninja.com/v1/events', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    project: 'YOUR_PROJECT_ID',
    stream: 'payments',
    title: 'New subscription',
    content: '[email protected] subscribed to Pro',
    notify: true,
  }),
});
import requests

requests.post(
    'https://api.logsninja.com/v1/events',
    headers={
        'Authorization': 'Bearer YOUR_API_TOKEN',
        'Content-Type': 'application/json',
    },
    json={
        'project': 'YOUR_PROJECT_ID',
        'stream': 'payments',
        'title': 'New subscription',
        'content': '[email protected] subscribed to Pro',
        'notify': True,
    },
)

Champs de l'événement

Champ Type Requis Description
project string ✓ Identifiant du projet. Retrouvez-le dans les paramètres du projet.
stream string ✓ Le stream auquel appartient cet événement. Créé automatiquement à la première utilisation.
title string ✓ Titre court de l'événement. 100 caractères maximum.
content string Détails complémentaires, 500 caractères maximum. Markdown pris en charge : gras, italique, code, listes et liens.
emoji string Emoji pour identifier visuellement lévénement. Par défaut 🔔 si omis. Formats acceptés : caractère emoji ("💳"), shortcode (":credit_card:"), ou code hexadécimal ("1F4B3"). Aussi utilisé comme image de notification push. Parcourir les emojis disponibles.
metadata object Métadonnées clé/valeur. Voir les règles de format ci-dessus.
user string L'identifiant de votre utilisateur dans votre application (le même id que celui transmis à PUT /v1/users). L'utilisateur n'a pas besoin d'exister : les événements sont liés automatiquement à sa création. Envoyer un événement en temps réel avec le champ user compte aussi comme présence : l'utilisateur est considéré en ligne pendant 15 minutes après son dernier événement lié ou ping. Les événements backdatés avec timestamp n'affectent pas la présence.
images string[] Images pour cet événement. Nécessite un plan payant. Soit un tableau d'URLs d'images HTTPS publiques à récupérer et stocker (les doublons au sein d'un même événement sont dédupliqués), soit les fichiers eux-mêmes envoyés en multipart/form-data. Les images sont traitées de manière asynchrone et conservées 30 jours. Voir Envoi d'images pour le contrat complet, les limites de taille, les formats acceptés, les prérequis des URLs et comment lire images_status.
notify boolean Envoyer une notification push aux appareils abonnés. Par défaut : false. Ne peut pas être true si timestamp est défini. Lorsque notify est présent, la réponse contient aussi notification_queued ; false signifie que l’événement a été enregistré mais que la file de notifications mobiles restait indisponible après une nouvelle tentative.
timestamp integer Timestamp Unix (en secondes) pour antidater l'événement. Doit être dans le passé. Ne peut pas être combiné avec notify: true. Les événements backdatés n'affectent pas la présence en ligne.
before string L'évènement sera placé avant celui dont l'ID aura été transmis dans cette propriété, dans une chaîne d'événements.
after string L'évènement sera placé après celui dont l'ID aura été transmis dans cette propriété, dans une chaîne d'événements.

Envoi d'images

Il y a deux façons d'attacher des images à un événement, toutes deux réservées aux plans payants et traitées de la même manière, de façon asynchrone : passer un tableau d'URLs HTTPS publiques dans le champ JSON images pour que LogsNinja les récupère et les stocke, ou envoyer les fichiers eux-mêmes dans la même requête POST /v1/events en multipart/form-data.

Envoi binaire (multipart/form-data)

La requête comporte une partie event et une ou plusieurs parties fichier nommées image :

Partie Description
event Une chaîne contenant le corps JSON exact que vous enverriez sinon en application/json : project, stream, title et tout autre champ, avec metadata comme véritable objet JSON (pas des champs de formulaire metadata[key]). Elle peut toujours inclure un tableau images d'URLs, stockées en plus des fichiers envoyés.
image Une partie par fichier, chacune envoyée en tant que fichier (avec un nom de fichier) et portant un Content-Type image/jpeg, image/png ou image/webp. Les parties portant tout autre nom, et les parties image qui ne sont pas des fichiers, sont ignorées.
curl -X POST https://api.logsninja.com/v1/events \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -F 'event={"project":"YOUR_PROJECT_ID","stream":"payments","title":"New subscription","metadata":{"plan":"pro"},"notify":true};type=application/json' \
  -F 'image=@./screenshot.png;type=image/png'
const form = new FormData();
form.append('event', JSON.stringify({
  project: 'YOUR_PROJECT_ID',
  stream: 'payments',
  title: 'New subscription',
  metadata: { plan: 'pro' },
  notify: true,
}));
form.append('image', fileOrBlob, 'screenshot.png'); // Content-Type image/png

await fetch('https://api.logsninja.com/v1/events', {
  method: 'POST',
  headers: { 'Authorization': 'Bearer YOUR_API_TOKEN' }, // no Content-Type
  body: form,
});

Erreurs synchrones

Elles sont renvoyées immédiatement dans la réponse au POST, avant la création de l'événement :

Code Cause
400La partie event est absente ou n'est pas un objet JSON.
403Votre plan n'inclut pas les images sur les événements.
411La requête n'a pas d'en-tête Content-Length.
413Un fichier dépasse la limite de taille par image de votre plan, ou le corps entier de la requête dépasse la taille maximale de votre plan.
415Le Content-Type d'une partie image ne commence pas par image/. Un mauvais type d'image (p. ex. image/gif) passe ce contrôle mais échoue ensuite en bad_format.
422Plus d'images que ce que votre plan autorise par événement.

Voir Limites de débit et quotas pour le nombre d'images par plan, la taille par image et la taille maximale du corps de requête.

Récupération depuis une URL

Lorsque vous passez des URLs au lieu de fichiers, chacune doit respecter tous ces critères, sinon l'image est marquée failed :

  • HTTPS uniquement, sur le port 443. Pas d'hôtes en IP littérale, pas de localhost, .local ni .internal. L'URL doit faire au plus 2048 caractères.
  • La réponse doit porter Content-Type: image/jpeg, image/png ou image/webp. Un 200 qui renvoie du text/html (page d'erreur, mur de connexion) est un échec permanent – jamais réessayé.
  • La récupération expire après 15 secondes et suit au plus 3 redirections.
  • Sur 403, 404, 408, 425, 429, 500, 502, 503 ou 504, la récupération est réessayée pendant environ une minute avant que l'image soit marquée failed. Tout autre statut échoue définitivement dès la première tentative.

Formats et traitement

  • Formats acceptés : JPEG, PNG et WebP, détectés à partir des octets de signature du fichier – pas de son extension ni de son type déclaré.
  • Chaque image est redimensionnée pour tenir dans la dimension maximale de votre plan et stockée à la fois en JPEG et en WebP. Les images sont conservées 30 jours.
  • Un événement rétrodaté (timestamp) dont la date est déjà hors de la fenêtre de 30 jours ignore entièrement le traitement d'images ; son images_status vaut expired.

Lire le résultat

La réponse au POST inclut images_status, mais à ce moment-là il vaut toujours pending (ou none / expired) car le traitement n'a pas encore eu lieu. Il n'y a pas de webhook : relisez l'événement plus tard – avec l'outil get_event du MCP ou dans le flux d'événements du Studio – pour voir le résultat.

images_status Signification
noneL'événement n'a pas d'images.
pendingEn file d'attente ou en cours.
readyToutes les images ont été traitées.
partialCertaines images sont prêtes, d'autres ont échoué.
failedToutes les images ont échoué.
expiredL'événement est antérieur à la fenêtre d'images de 30 jours ; rien n'a été envoyé.

Chaque image porte aussi une chaîne error et un error_code (too_large, bad_format ou unreachable) en cas d'échec.

Recommandation : pour un événement émis juste après la génération d'une image (un rendu, une capture, un export), envoyez le fichier plutôt qu'une URL. Une URL qui n'est pas encore accessible – ou déjà supprimée – lorsque LogsNinja la récupère fait échouer l'image, et rien ne vous prévient quand cela arrive.

Chaînes d'événements

Les champs before et after permettent de lier des événements en chaîne. Le panneau de détail affiche les événements adjacents et permet de voir la séquence complète.

Seules les références vers des événements du même projet sont résolues, et uniquement lorsque leurs dates sont cohérentes. La cible de after (prédécesseur) doit avoir une date antérieure, et la cible de before (successeur) une date postérieure.

Supprimer un événement

DELETE https://api.logsninja.com/v1/events/:id?project=YOUR_PROJECT_ID

Supprime définitivement un événement.

Créer ou mettre à jour un utilisateur

PUT https://api.logsninja.com/v1/users

Crée ou met à jour un utilisateur applicatif. Un appel avec le même id remplace l'enregistrement.

JSON
{
  "project": "YOUR_PROJECT_ID",
  "id": "user_123",
  "country_code": "FR",
  "display_as": "[email protected]",
  "metadata": { "plan": "pro", "mrr": 49 }
}
Champ Type Requis Description
project string ✓ Identifiant du projet.
id string ✓ Votre propre identifiant stable pour cet utilisateur (ex. votre ID de base de données). C'est la valeur que vous utilisez dans le champ user lors de l'envoi d'événements.
country_code string Code pays ISO 3166-1 alpha-2 (par ex. FR, US). Voir Géolocalisation pour savoir comment l'obtenir.
display_as string Nom affiché sur le site et l'application mobile pour cet utilisateur. Si non renseigné ou null, l'id de l'utilisateur est utilisé à la place.
metadata object Métadonnées clé/valeur. Voir les règles de format ci-dessus.

Exemples

curl -X PUT https://api.logsninja.com/v1/users \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "project": "YOUR_PROJECT_ID",
    "id": "user_123",
    "country_code": "FR",
    "metadata": { "plan": "pro" }
  }'
await fetch('https://api.logsninja.com/v1/users', {
  method: 'PUT',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    project: 'YOUR_PROJECT_ID',
    id: 'user_123',
    country_code: 'FR',
    metadata: { plan: 'pro' },
  }),
});
import requests

requests.put(
    'https://api.logsninja.com/v1/users',
    headers={
        'Authorization': 'Bearer YOUR_API_TOKEN',
        'Content-Type': 'application/json',
    },
    json={
        'project': 'YOUR_PROJECT_ID',
        'id': 'user_123',
        'country_code': 'FR',
        'metadata': {'plan': 'pro'},
    },
)

Géolocalisation

LogsNinja ne détermine jamais le pays d'un utilisateur à partir de son adresse IP – country_code est entièrement fourni par l'appelant.

  • Si votre backend passe par Cloudflare (Workers/Pages, ou un enregistrement DNS avec le nuage orange activé), lisez directement l'en-tête de requête CF-IPCountry – il est déjà présent sur chaque requête entrante.
  • Le même principe s'applique derrière la plupart des autres CDN/réseaux de périphérie (par ex. Akamai, Bunny, Fastly, Amazon CloudFront) – ils ajoutent généralement leur propre en-tête géo équivalent. Consultez la documentation de ce fournisseur pour le nom et le format exacts de l'en-tête.
  • Sinon, utilisez une bibliothèque ou un service GeoIP sur l'adresse IP de la requête (par ex. MaxMind GeoLite2, ipinfo.io, ip-api.com).

Transmettez le code obtenu en tant que country_code – il alimente le graphique de répartition par pays et le widget carte du monde.

Supprimer un utilisateur

DELETE https://api.logsninja.com/v1/users/:id?project=YOUR_PROJECT_ID

Supprime un utilisateur applicatif. Ses événements restent mais ne sont plus liés à l'utilisateur.

Signaler la présence d'un utilisateur

POST https://api.logsninja.com/v1/ping

Indique qu'un utilisateur est connecté, sans créer d'événement. Un utilisateur est considéré comme connecté s'il a envoyé un ping ou eu un événement lié dans les 15 dernières minutes. Si l'utilisateur n'existe pas encore, le ping est silencieusement ignoré – créez d'abord l'utilisateur via PUT /v1/users.

JSON
{
  "project": "YOUR_PROJECT_ID",
  "id": "user_123"
}
Champ Type Requis Description
project string ✓ Identifiant du projet.
id string ✓ L'identifiant de votre utilisateur applicatif (le même id que celui transmis à PUT /v1/users).

Créer ou mettre à jour une métrique

PUT https://api.logsninja.com/v1/metrics

Crée ou met à jour une métrique. Un appel avec le même id remplace la valeur. Pour les types numériques, vous pouvez aussi appliquer un delta au lieu de définir une valeur absolue.

JSON – replace
{
  "project": "YOUR_PROJECT_ID",
  "id": "mrr",
  "title": "MRR",
  "emoji": "💰",
  "value": 4900,
  "value_type": "currency",
  "currency": "EUR"
}
JSON – diff
{
  "project": "YOUR_PROJECT_ID",
  "id": "active-users",
  "title": "Active users",
  "value": { "diff": 1 },
  "value_type": "number"
}
Champ Type Requis Description
project string ✓ Identifiant du projet.
id string ✓ Identifiant stable de cette métrique (par ex. mrr, active-users).
title string ✓ Libellé affiché sur la tuile métrique.
value string | number | object ✓ La valeur de la métrique. Pour les types numériques, passez {"diff": N} pour ajouter ou soustraire N atomiquement (ex. {"diff": -1}). Non disponible pour value_type text.
value_type string ✓ L'une de : number, text, currency, percent.
currency string Code devise ISO 4217 (par ex. EUR, USD). Requis lorsque value_type vaut currency.
emoji string Emoji affiché sur la tuile de métrique. Formats acceptés : caractère emoji ("💰"), shortcode (":money-bag:") ou code hexadécimal ("1F4B0"). Lorsqu’il est omis, ℹ️ est affiché par défaut sans être enregistré sur la métrique. Parcourir les emojis disponibles.

Exemples

curl -X PUT https://api.logsninja.com/v1/metrics \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "project": "YOUR_PROJECT_ID",
    "id": "mrr",
    "title": "MRR",
    "value": 4900,
    "value_type": "currency",
    "currency": "EUR"
  }'
await fetch('https://api.logsninja.com/v1/metrics', {
  method: 'PUT',
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    project: 'YOUR_PROJECT_ID',
    id: 'mrr',
    title: 'MRR',
    value: 4900,
    value_type: 'currency',
    currency: 'EUR',
  }),
});
import requests

requests.put(
    'https://api.logsninja.com/v1/metrics',
    headers={
        'Authorization': 'Bearer YOUR_API_TOKEN',
        'Content-Type': 'application/json',
    },
    json={
        'project': 'YOUR_PROJECT_ID',
        'id': 'mrr',
        'title': 'MRR',
        'value': 4900,
        'value_type': 'currency',
        'currency': 'EUR',
    },
)

Supprimer une métrique

DELETE https://api.logsninja.com/v1/metrics/:id?project=YOUR_PROJECT_ID

Supprime une tuile métrique du tableau de bord.

Projets

Lister les projets

GET https://api.logsninja.com/v1/org/projects

Retourne les projets de l’organisation avec pagination. Un token limité à un projet ne reçoit que le projet auquel il est lié. Accepte les paramètres page (1 par défaut) et limit (50 par défaut, 200 maximum). La réponse contient page, limit, total et has_more.

Créer un projet

POST https://api.logsninja.com/v1/org/projects

La création d’un projet nécessite un token valable pour toute l’organisation. Un token limité à un projet ne peut pas créer de projets.

Champ Type Requis Description
name string ✓ Le nom du projet.

Tokens

Lister les tokens

GET https://api.logsninja.com/v1/org/tokens

Retourne les tokens API de l’organisation avec pagination. Un token limité à un projet ne reçoit que les tokens liés au même projet. Accepte les paramètres page (1 par défaut) et limit (50 par défaut, 200 maximum). La réponse contient page, limit, total, has_more et la capacité can_manage_tokens de chaque token. La valeur des tokens n’est jamais retournée après leur création.

Créer un token

POST https://api.logsninja.com/v1/org/tokens

Le credential appelant doit avoir can_manage_tokens=true. La valeur du token n’est retournée qu’une fois et ne peut plus être récupérée. Un appelant limité à un projet ne peut créer qu’un autre token pour ce même projet ; omettre project_id ne donne pas accès à toute l’organisation.

Champ Type Requis Description
name string ✓ Le nom du token.
project_id string Limite le token à un seul projet. Si omis, le token a accès à tous les projets de l'organisation.
can_manage_tokens boolean Autorise ce token à créer et déléguer d’autres tokens dans les limites de son organisation ou de son projet. Désactivé par défaut.

Autorisation de l'appareil

Permet à un outil CLI ou un agent IA d'obtenir un token API sans qu'un humain n'ait à le copier-coller. L'outil demande un court code et l'affiche à un humain ; un humain disposant déjà d'un compte LogsNinja ouvre un lien et approuve la demande depuis sa propre session de navigateur ; l'outil reçoit alors le token automatiquement. Cela ne crée jamais de compte et ne contourne jamais l'inscription – seul un humain déjà connecté peut approuver une demande.

Démarrer le flux

POST https://api.logsninja.com/v1/device/authorize

Aucune authentification requise. Retourne un device_code, un court user_code à afficher à l'humain, et un verification_uri à ouvrir dans un navigateur.

JSON
{
  "device_code": "a1b2c3...",
  "user_code": "WXYZ-1234",
  "verification_uri": "https://logsninja.com/en/my/tokens#devices",
  "verification_uri_complete": "https://logsninja.com/en/my/tokens?user_code=WXYZ-1234#devices",
  "expires_in": 600,
  "interval": 5
}

Affichez le user_code (ou le lien verification_uri_complete) à l'humain et demandez-lui de l'ouvrir et d'approuver la demande.

Interroger pour obtenir le token

POST https://api.logsninja.com/v1/device/token

Aucune authentification requise. Interrogez avec le device_code à l'intervalle indiqué ci-dessus jusqu'à ce que le statut ne soit plus pending.

Champ Type Requis Description
device_code string ✓ Le device_code retourné par l'appel authorize.

La réponse est {"status": "pending"}, {"status": "denied"}, {"status": "expired"}, ou, une fois approuvée, {"status": "approved", "token": "..."}. Le token n'est retourné qu'une seule fois – stockez-le immédiatement.

Serveur MCP

Permet à un agent IA (Claude, etc.) d'utiliser LogsNinja directement depuis une conversation plutôt qu'en écrivant des appels HTTP.

MCP https://logsninja.com/mcp

Configurez votre client MCP avec cette URL, authentifié avec le même token API que le reste de cette API : Authorization: Bearer YOUR_API_TOKEN.

Claude Code

Bash
claude mcp add --transport http logsninja https://logsninja.com/mcp \
  --header "Authorization: Bearer YOUR_API_TOKEN"

Claude Desktop

Le fichier de configuration de Claude Desktop n'accepte plus directement le url et les headers d'un serveur distant – uniquement les serveurs stdio (command/args). Faites le pont vers cet endpoint HTTP avec mcp-remote :

JSON
{
  "mcpServers": {
    "logsninja": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://logsninja.com/mcp",
        "--header",
        "Authorization: Bearer YOUR_API_TOKEN"
      ]
    }
  }
}
Plateforme Emplacement du fichier de configuration
macOS ~/Library/Application Support/Claude/claude_desktop_config.json
Windows %APPDATA%\Claude\claude_desktop_config.json

Cursor

Cursor supporte directement le url et les headers d'un serveur distant, sans pont nécessaire :

JSON
{
  "mcpServers": {
    "logsninja": {
      "url": "https://logsninja.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_TOKEN"
      }
    }
  }
}

Fichier de configuration : ~/.cursor/mcp.json (global) ou .cursor/mcp.json (projet)

Codex CLI et l'application ChatGPT

Les deux partagent le même ~/.codex/config.toml – le formulaire Paramètres → Plugins → MCPs → Add Server de l'application ChatGPT y écrit aussi. Éditez-le directement pour utiliser bearer_token_env_var, qui lit le token depuis une variable d'environnement au lieu de le stocker en clair :

TOML
[mcp_servers.logsninja]
url = "https://logsninja.com/mcp"
bearer_token_env_var = "LOGSNINJA_API_TOKEN"

Définissez la variable d'environnement dans votre profil shell avant de lancer Codex ou l'application ChatGPT, par ex. export LOGSNINJA_API_TOKEN=YOUR_API_TOKEN.

Fichier de configuration : ~/.codex/config.toml

Outils

Outil Description
list_projects, create_project Liste les projets accessibles à l’appelant. La création d’un projet nécessite un token valable pour toute l’organisation.
list_charts, create_chart, update_chart, delete_chart Mêmes champs et règles de validation que l'éditeur de graphiques du tableau de bord.
list_widgets, create_widget, update_widget, reorder_widgets, delete_widget Mêmes règles de disposition en mosaïque que les endpoints REST des widgets.
get_data_inventory Noms de streams, titres d'événements et clés de métadonnée connus – utile avant de construire un graphique.
preview_chart_data Calculer les données d'un graphique sans le créer.
search_emojis Rechercher des emojis par nom, shortcode ou mot-clé – utile pour en choisir un pour un event.
get_documentation La documentation complète de l'API en Markdown, dans la langue de votre choix.
list_events, get_event Les 100 derniers events (éventuellement filtrés par stream), ou le détail d'un event avec ses voisins chronologiques. Pas de pagination.
list_users, get_user Les 100 derniers users, ou le détail d'un user par id. Pas de pagination ni de recherche.
list_streams, list_metrics Streams et métriques personnalisées définies dans un projet.
create_event, delete_event, create_or_update_user, delete_user, create_or_update_metric, delete_metric Identique aux endpoints d'ingestion – pensé pour créer et nettoyer des données de test, pas pour envoyer de vrais events de production au nom d'un utilisateur.

La plupart des tools prennent un argument project_id, requis sauf si le token est limité à un seul projet – même règle que les endpoints REST ci-dessous.

Graphiques

Créez et gérez les mêmes graphiques que vous construiriez à la main sur votre tableau de bord – chaque option ci-dessous et chaque règle de validation est identique, que vous utilisiez l'éditeur de graphiques du tableau de bord ou l'API. Il s'agit uniquement de la configuration du graphique : elle définit ce qu'il affiche, pas ses valeurs calculées – il n'existe pas de endpoint pour récupérer les points de données d'un graphique via cette API.

Types de graphique

Un graphique en ligne (line) trace une valeur par période sous forme de ligne continue – idéal pour suivre une tendance dans le temps. Un camembert (pie) montre un instantané unique découpé en parts – idéal pour une répartition en un coup d'œil. Un graphique en barres (bar) montre une barre par période ; dès que vous ajoutez une répartition (voir « Group by » ci-dessous), il est automatiquement dessiné avec des segments empilés au lieu d'une seule barre – il n'existe pas de type « barres empilées » distinct à choisir. Un graphique en tunnel (funnel) pose un tout autre type de question : au lieu d'une métrique dans le temps, il montre combien des mêmes utilisateurs ont franchi une séquence ordonnée d'étapes.

Plage de temps et intervalle

Choisissez la période couverte par le graphique : les 7 derniers jours (7d), les 30 derniers jours (30d), ou les 90 derniers jours (90d). Vous pouvez aussi définir votre propre fenêtre glissante en heures, jours ou mois (duration, avec periodDurationValue et periodDurationUnit, ex. « les 45 derniers jours »), ou fixer une date de début qui court toujours jusqu'à aujourd'hui (custom, avec periodDateFrom) – il n'existe pas de champ pour une date de fin fixe, ça court toujours jusqu'à aujourd'hui.

L'intervalle de temps (granularity) définit comment cette période est découpée en intervalles : par heure, jour, semaine ou mois (hour, day, week, month). Il ne s'applique pas aux graphiques en tunnel : ils utilisent quand même la plage de temps ci-dessus pour filtrer les événements, mais affichent une barre par étape au lieu d'une série d'intervalles dans le temps.

Certaines combinaisons n'ont que 90 jours d'historique disponibles, quelle que soit la période choisie : un tunnel, un camembert avec une répartition, une répartition par pays/utilisateur/metadata, plus d'une répartition à la fois, tout calcul autre qu'un simple comptage, ou un filtrage par metadata. Un simple comptage sans répartition, ou une répartition uniquement par stream ou titre d'événement, peut remonter plus loin.

Filtrer les événements comptabilisés

Par défaut, un graphique inclut tous les événements (all). Vous pouvez le restreindre à un seul stream (stream, ex. uniquement "payments"), un seul titre d'événement (title, ex. uniquement "Order placed"), ou aux événements correspondant à une valeur de métadonnée précise (metadata, ex. uniquement les événements où "plan" vaut "pro").

Objectif Configuration
Ne compter que les événements du stream "payments" event_source_type: "stream", event_source_value: "payments"
Ne compter que les événements "Order placed", quel que soit leur stream event_source_type: "title", event_source_value: "Order placed"
Ne compter que les événements où la métadonnée "plan" vaut "pro" event_source_type: "metadata", event_source_value: "plan=pro"

Agrégation

Ceci détermine comment les événements correspondants de chaque intervalle de temps deviennent le nombre unique tracé : un simple comptage d'événements (count), un comptage d'utilisateurs uniques (count_distinct), ou un calcul sur une valeur de métadonnée numérique de vos événements – son total (sum), sa moyenne (avg), son minimum (min), son maximum (max), ou sa médiane (median). Pour tout calcul autre qu'un simple comptage, vous choisissez aussi quelle clé de métadonnée contient ce nombre via aggregation_field ; les événements qui ne l'ont pas, ou dont la valeur n'est pas numérique, sont ignorés.

Objectif Configuration
Événements par jour aggregation: "count"
Utilisateurs uniques actifs par jour aggregation: "count_distinct"
Revenu total par jour (une clé de métadonnée "amount" sur vos événements) aggregation: "sum", aggregation_field: "amount"
Valeur moyenne des commandes par jour (une clé de métadonnée "amount" sur vos événements) aggregation: "avg", aggregation_field: "amount"
Plus petite commande par jour (une clé de métadonnée "amount" sur vos événements) aggregation: "min", aggregation_field: "amount"
Plus grande commande par jour (une clé de métadonnée "amount" sur vos événements) aggregation: "max", aggregation_field: "amount"
Durée médiane de session par jour (une clé de métadonnée "duration_seconds" sur vos événements) aggregation: "median", aggregation_field: "duration_seconds"

Grouper par

Par défaut, un graphique affiche une seule valeur agrégée par période. Le regroupement (group_by) le scinde en plusieurs séries ou segments à la place – un par valeur distincte de ce que vous choisissez pour regrouper – dessinés comme des lignes séparées, des segments empilés, ou des parts de camembert selon le type de graphique.

Vous pouvez regrouper par stream (stream), titre d'événement (title), pays (country) ou utilisateur (user) sans rien configurer d'autre, ou par une clé de métadonnée de votre choix (metadata, avec aggregation_field contenant la clé à utiliser pour scinder).

Objectif Configuration
Événements par jour, une ligne par stream type: line, aggregation: count, group_by: ["stream"]
Quels titres d'événements sont les plus fréquents chaque jour type: bar, aggregation: count, group_by: ["title"]
Inscriptions par jour, réparties par pays type: bar, aggregation: count_distinct, group_by: ["country"]
Comparer l'activité d'une poignée d'utilisateurs précis (votre propre équipe, quelques comptes VIP) – une série par utilisateur correspondant, donc ce n'est lisible que pour un ensemble restreint et délibérément limité type: line, aggregation: count, group_by: ["user"]
Volume d'événements par jour, un segment par plan (une clé de métadonnée "plan" sur vos événements, ex. free/pro/enterprise) type: bar, aggregation: count, group_by: ["metadata"], aggregation_field: "plan"
Répartition des événements par plan, en camembert type: pie, aggregation: count, group_by: ["metadata"], aggregation_field: "plan"

Une contrainte à connaître : la clé de métadonnée utilisée pour regrouper et celle utilisée pour agréger sont le même réglage (aggregation_field), puisqu'un graphique n'en a qu'un seul. Donc "montant total des commandes par jour, réparti par plan" n'est pas possible en un seul graphique – il faudrait soit totaliser le montant sans répartition, soit compter les commandes réparties par plan, pas les deux sur le même graphique.

Graphiques en tunnel

Un tunnel (funnel) pose un tout autre type de question : pas « combien d'événements » mais « combien des mêmes utilisateurs sont passés de l'étape 1, à l'étape 2, à l'étape 3 ». Vous lui fournissez une liste ordonnée d'au moins deux titres d'événements via funnel_steps ; le graphique affiche une barre par étape, chacune ne comptant que les utilisateurs ayant aussi complété chaque étape précédente dans l'ordre. La plage de temps ci-dessus s'applique toujours, mais pas la granularité, l'agrégation ni le regroupement.

Objectif Configuration
Conversion d'inscription : combien ont vu les tarifs, démarré le paiement, puis l'ont terminé type: "funnel", funnel_steps: ["Pricing viewed", "Checkout started", "Subscription created"]

Options d'affichage

Vous pouvez afficher ou masquer la légende (show_legend), et choisir vos propres couleurs (colors, un tableau de codes hexadécimaux appliqués dans l'ordre) pour chaque série ou segment au lieu de la palette par défaut. Vous pouvez aussi passer à un total cumulé (cumulative) au lieu d'une valeur par période – pertinent uniquement pour un graphique en ligne ou en barres additionnant un comptage ou une somme, puisqu'un total cumulé d'une moyenne, d'un comptage d'utilisateurs distincts, ou d'un camembert/tunnel n'a pas de sens.

Lister les graphiques

GET https://api.logsninja.com/v1/org/charts

Accepte un paramètre de requête project_id, requis sauf si le token est déjà restreint à un seul projet.

Créer un graphique

POST https://api.logsninja.com/v1/org/charts

Modifier un graphique

PATCH https://api.logsninja.com/v1/org/charts/{id}

Seuls les champs envoyés sont modifiés.

Supprimer un graphique

DELETE https://api.logsninja.com/v1/org/charts/{id}
Champ Type Requis Description
project_id string ✓ Requis sauf si le token est restreint à un seul projet.
name string ✓ Nom du graphique.
type string ✓ line, bar, pie, funnel. Il n'existe pas de type « barres empilées » distinct : un graphique en barres avec group_by défini reste de type bar, automatiquement affiché sous forme de segments empilés.
period string ✓ 7d, 30d, 90d, duration, custom
period_date_from string Requis quand period vaut custom, format AAAA-MM-JJ.
period_duration_value / period_duration_unit integer / string Requis quand period vaut duration. L'unité est hour, day ou month.
granularity string ✓ hour, day, week, month
aggregation string ✓ count, count_distinct, sum, avg, min, max, median
aggregation_field string Nom du champ de métadonnée, requis pour sum/avg/min/max/median et quand group_by inclut metadata.
group_by array N'importe lequel parmi stream, title, country, user, metadata.
event_source_type string ✓ all, stream, title, metadata
event_source_value string Requis sauf si event_source_type vaut all.
funnel_steps array Au moins deux noms d'étapes ordonnés, requis quand type vaut funnel.
show_legend / cumulative boolean cumulative n'est pris en compte que pour les graphiques line/bar avec une agrégation count ou sum.
colors array Couleurs des séries sous forme de codes hexadécimaux.

L'historique au-delà de la fenêtre de rétention n'est pas disponible pour les combinaisons qui parcourent les événements bruts (funnel, pie avec un group-by, group-by country/user/metadata, ou toute agrégation autre que count).

Widgets

Gérez quelles tuiles apparaissent sur le tableau de bord et comment elles sont disposées – il s'agit uniquement de la configuration de la disposition, pas des données affichées dans une tuile.

Le tableau de bord est une disposition en mosaïque (masonry), pas une grille rigide. Les widgets « petits » (metric, online_users) sont pensés pour occuper un tiers ou la moitié de la ligne (width 1 ou 2) et s'affichent avec exactement la moitié de la hauteur visuelle des widgets « grands » (chart, world_map, events_7d, top_countries), pensés pour occuper la moitié de la ligne ou la ligne entière (width 2 ou 3). Gardez cela en tête en agençant un tableau de bord via l'API.

Lister les widgets

GET https://api.logsninja.com/v1/org/widgets

Accepte un paramètre de requête project_id, requis sauf si le token est déjà restreint à un seul projet.

Ajouter un widget

POST https://api.logsninja.com/v1/org/widgets
Champ Type Requis Description
project_id string ✓ Requis sauf si le token est restreint à un seul projet.
type string ✓ metric, chart, events_7d, world_map, top_countries, online_users. Un seul widget de chaque type natif (events_7d/world_map/top_countries/online_users) peut exister par tableau de bord.
metric_id string Requis quand type vaut metric. Doit être un id de métrique existant.
chart_id string Requis quand type vaut chart. Doit être un graphique du même projet.
width integer 1 (1/3), 2 (1/2, par défaut), ou 3 (pleine ligne).

Redimensionner ou déplacer un widget

PATCH https://api.logsninja.com/v1/org/widgets/{id}

Envoyez width et/ou position (index commençant à 0 parmi les widgets du projet). Définir une position déplace le widget à cet endroit et décale d'un cran tous les widgets suivants – ça ne permute pas deux widgets. Seuls les champs envoyés sont modifiés.

Réorganiser tout le tableau de bord

POST https://api.logsninja.com/v1/org/widgets/reorder

Envoyez order comme la liste ordonnée complète de tous les id de widgets du projet (une liste partielle est rejetée), et éventuellement widths comme une correspondance id → width.

Retirer un widget

DELETE https://api.logsninja.com/v1/org/widgets/{id}

Codes de réponse

Endpoint Succès Corps
POST /v1/events 201 { "id": "...", "image_count": 0, "images_status": "none", "notification_queued": true }
DELETE /v1/events/:id 200 { "ok": true }
PUT /v1/users 200 { "id": "..." }
DELETE /v1/users/:id 200 { "ok": true }
POST /v1/ping 200 { "ok": true }
PUT /v1/metrics 200 { "id": "..." }
DELETE /v1/metrics/:id 200 { "ok": true }

Codes d'erreur : 400 erreur de validation, 401 token manquant ou invalide, 403 token restreint à un autre projet, 404 projet introuvable.

Référence des emojis

1837 emojis pris en charge

smileys et émotion

souriant

grinning :grinning:
smiley :smiley:
smile :smile:
grin :grin:
laughing :laughing:
sweat_smile :sweat_smile:
rofl :rofl:
joy :joy:
slightly_smiling_face :slightly_smiling_face:
upside_down_face :upside_down_face:
melting_face :melting_face:
wink :wink:
blush :blush:
innocent :innocent:

affectueux

smiling_face_with_three_hearts :smiling_face_with_three_hearts:
heart_eyes :heart_eyes:
star_struck :star_struck:
kissing_heart :kissing_heart:
kissing :kissing:
kissing_closed_eyes :kissing_closed_eyes:
kissing_smiling_eyes :kissing_smiling_eyes:
smiling_face_with_tear :smiling_face_with_tear:

avec la langue

yum :yum:
stuck_out_tongue :stuck_out_tongue:
stuck_out_tongue_winking_eye :stuck_out_tongue_winking_eye:
zany_face :zany_face:
stuck_out_tongue_closed_eyes :stuck_out_tongue_closed_eyes:
money_mouth_face :money_mouth_face:

avec les mains

hugs :hugs:
hand_over_mouth :hand_over_mouth:
face_with_open_eyes_and_hand_over_mouth :face_with_open_eyes_and_hand_over_mouth:
face_with_peeking_eye :face_with_peeking_eye:
shushing_face :shushing_face:
thinking :thinking:
saluting_face :saluting_face:

neutre / sceptique

zipper_mouth_face :zipper_mouth_face:
raised_eyebrow :raised_eyebrow:
neutral_face :neutral_face:
expressionless :expressionless:
no_mouth :no_mouth:
dotted_line_face :dotted_line_face:
smirk :smirk:
unamused :unamused:
roll_eyes :roll_eyes:
grimacing :grimacing:
lying_face :lying_face:
shaking_face :shaking_face:

somnolent

relieved :relieved:
pensive :pensive:
sleepy :sleepy:
drooling_face :drooling_face:
sleeping :sleeping:

malade

mask :mask:
face_with_thermometer :face_with_thermometer:
face_with_head_bandage :face_with_head_bandage:
nauseated_face :nauseated_face:
vomiting_face :vomiting_face:
sneezing_face :sneezing_face:
hot_face :hot_face:
cold_face :cold_face:
woozy_face :woozy_face:
dizzy_face :dizzy_face:
exploding_head :exploding_head:

avec des chapeaux

cowboy_hat_face :cowboy_hat_face:
partying_face :partying_face:
disguised_face :disguised_face:

avec des lunettes

sunglasses :sunglasses:
nerd_face :nerd_face:
monocle_face :monocle_face:

concerné

confused :confused:
face_with_diagonal_mouth :face_with_diagonal_mouth:
worried :worried:
slightly_frowning_face :slightly_frowning_face:
open_mouth :open_mouth:
hushed :hushed:
astonished :astonished:
flushed :flushed:
pleading_face :pleading_face:
face_holding_back_tears :face_holding_back_tears:
frowning :frowning:
anguished :anguished:
fearful :fearful:
cold_sweat :cold_sweat:
disappointed_relieved :disappointed_relieved:
cry :cry:
sob :sob:
scream :scream:
confounded :confounded:
persevere :persevere:
disappointed :disappointed:
sweat :sweat:
weary :weary:
tired_face :tired_face:
yawning_face :yawning_face:

négatif

triumph :triumph:
pout :pout:
angry :angry:
cursing_face :cursing_face:
smiling_imp :smiling_imp:
imp :imp:
skull :skull:
skull_and_crossbones :skull_and_crossbones:

costumés et créatures

hankey :hankey:
clown_face :clown_face:
japanese_ogre :japanese_ogre:
japanese_goblin :japanese_goblin:
ghost :ghost:
alien :alien:
space_invader :space_invader:
robot :robot:

visages de chat

smiley_cat :smiley_cat:
smile_cat :smile_cat:
joy_cat :joy_cat:
heart_eyes_cat :heart_eyes_cat:
smirk_cat :smirk_cat:
kissing_cat :kissing_cat:
scream_cat :scream_cat:
crying_cat_face :crying_cat_face:
pouting_cat :pouting_cat:

visages de singe

see_no_evil :see_no_evil:
hear_no_evil :hear_no_evil:
speak_no_evil :speak_no_evil:

cœurs

love_letter :love_letter:
cupid :cupid:
gift_heart :gift_heart:
sparkling_heart :sparkling_heart:
heartpulse :heartpulse:
heartbeat :heartbeat:
revolving_hearts :revolving_hearts:
two_hearts :two_hearts:
heart_decoration :heart_decoration:
heavy_heart_exclamation :heavy_heart_exclamation:
broken_heart :broken_heart:
heart_on_fire :heart_on_fire:
mending_heart :mending_heart:
heart :heart:
pink_heart :pink_heart:
orange_heart :orange_heart:
yellow_heart :yellow_heart:
green_heart :green_heart:
blue_heart :blue_heart:
light_blue_heart :light_blue_heart:
purple_heart :purple_heart:
brown_heart :brown_heart:
black_heart :black_heart:
grey_heart :grey_heart:
white_heart :white_heart:

émotions

kiss :kiss:
100 :100:
anger :anger:
boom :boom:
dizzy :dizzy:
sweat_drops :sweat_drops:
dash :dash:
hole :hole:
speech_balloon :speech_balloon:
eye_speech_bubble :eye_speech_bubble:
left_speech_bubble :left_speech_bubble:
right_anger_bubble :right_anger_bubble:
thought_balloon :thought_balloon:
zzz :zzz:

les gens et le corps

doigts ouverts

wave :wave:
raised_back_of_hand :raised_back_of_hand:
raised_hand_with_fingers_splayed :raised_hand_with_fingers_splayed:
hand :hand:
vulcan_salute :vulcan_salute:
rightwards_hand :rightwards_hand:
leftwards_hand :leftwards_hand:
palm_down_hand :palm_down_hand:
palm_up_hand :palm_up_hand:
leftwards_pushing_hand :leftwards_pushing_hand:
rightwards_pushing_hand :rightwards_pushing_hand:

signes de la main

ok_hand :ok_hand:
pinched_fingers :pinched_fingers:
pinching_hand :pinching_hand:
v :v:
crossed_fingers :crossed_fingers:
hand_with_index_finger_and_thumb_crossed :hand_with_index_finger_and_thumb_crossed:
love_you_gesture :love_you_gesture:
metal :metal:
call_me_hand :call_me_hand:

pointage du doigt

point_left :point_left:
point_right :point_right:
point_up_2 :point_up_2:
point_down :point_down:
point_up :point_up:
index_pointing_at_the_viewer :index_pointing_at_the_viewer:

doigts fermés

+1 :+1:
-1 :-1:
fist :fist:
facepunch :facepunch:
fist_left :fist_left:
fist_right :fist_right:

mains

clap :clap:
raised_hands :raised_hands:
heart_hands :heart_hands:
open_hands :open_hands:
palms_up_together :palms_up_together:
handshake :handshake:
pray :pray:

accessoires à main

writing_hand :writing_hand:
nail_care :nail_care:
selfie :selfie:

parties du corps

muscle :muscle:
mechanical_arm :mechanical_arm:
mechanical_leg :mechanical_leg:
leg :leg:
foot :foot:
ear :ear:
ear_with_hearing_aid :ear_with_hearing_aid:
nose :nose:
brain :brain:
anatomical_heart :anatomical_heart:
lungs :lungs:
tooth :tooth:
bone :bone:
eyes :eyes:
eye :eye:
tongue :tongue:
lips :lips:
biting_lip :biting_lip:

personnes

baby :baby:
child :child:
boy :boy:
girl :girl:
adult :adult:
blond_haired_person :blond_haired_person:
man :man:
bearded_person :bearded_person:
man_beard :man_beard:
woman_beard :woman_beard:
red_haired_man :red_haired_man:
curly_haired_man :curly_haired_man:
white_haired_man :white_haired_man:
bald_man :bald_man:
woman :woman:
red_haired_woman :red_haired_woman:
person_red_hair :person_red_hair:
curly_haired_woman :curly_haired_woman:
person_curly_hair :person_curly_hair:
white_haired_woman :white_haired_woman:
person_white_hair :person_white_hair:
bald_woman :bald_woman:
person_bald :person_bald:
blond_haired_woman :blond_haired_woman:
blond_haired_man :blond_haired_man:
older_adult :older_adult:
older_man :older_man:
older_woman :older_woman:

gestes

frowning_person :frowning_person:
frowning_man :frowning_man:
frowning_woman :frowning_woman:
pouting_face :pouting_face:
pouting_man :pouting_man:
pouting_woman :pouting_woman:
no_good :no_good:
ng_man :ng_man:
ng_woman :ng_woman:
ok_person :ok_person:
ok_man :ok_man:
ok_woman :ok_woman:
information_desk_person :information_desk_person:
sassy_man :sassy_man:
sassy_woman :sassy_woman:
raising_hand :raising_hand:
raising_hand_man :raising_hand_man:
raising_hand_woman :raising_hand_woman:
deaf_person :deaf_person:
deaf_man :deaf_man:
deaf_woman :deaf_woman:
bow :bow:
bowing_man :bowing_man:
bowing_woman :bowing_woman:
facepalm :facepalm:
man_facepalming :man_facepalming:
woman_facepalming :woman_facepalming:
shrug :shrug:
man_shrugging :man_shrugging:
woman_shrugging :woman_shrugging:

rôles et carrières

health_worker :health_worker:
man_health_worker :man_health_worker:
woman_health_worker :woman_health_worker:
student :student:
man_student :man_student:
woman_student :woman_student:
teacher :teacher:
man_teacher :man_teacher:
woman_teacher :woman_teacher:
judge :judge:
man_judge :man_judge:
woman_judge :woman_judge:
farmer :farmer:
man_farmer :man_farmer:
woman_farmer :woman_farmer:
cook :cook:
man_cook :man_cook:
woman_cook :woman_cook:
mechanic :mechanic:
man_mechanic :man_mechanic:
woman_mechanic :woman_mechanic:
factory_worker :factory_worker:
man_factory_worker :man_factory_worker:
woman_factory_worker :woman_factory_worker:
office_worker :office_worker:
man_office_worker :man_office_worker:
woman_office_worker :woman_office_worker:
scientist :scientist:
man_scientist :man_scientist:
woman_scientist :woman_scientist:
technologist :technologist:
man_technologist :man_technologist:
woman_technologist :woman_technologist:
singer :singer:
man_singer :man_singer:
woman_singer :woman_singer:
artist :artist:
man_artist :man_artist:
woman_artist :woman_artist:
pilot :pilot:
man_pilot :man_pilot:
woman_pilot :woman_pilot:
astronaut :astronaut:
man_astronaut :man_astronaut:
woman_astronaut :woman_astronaut:
firefighter :firefighter:
man_firefighter :man_firefighter:
woman_firefighter :woman_firefighter:
cop :cop:
policeman :policeman:
policewoman :policewoman:
detective :detective:
male_detective :male_detective:
female_detective :female_detective:
guard :guard:
guardsman :guardsman:
guardswoman :guardswoman:
ninja :ninja:
construction_worker :construction_worker:
construction_worker_man :construction_worker_man:
construction_worker_woman :construction_worker_woman:
person_with_crown :person_with_crown:
prince :prince:
princess :princess:
person_with_turban :person_with_turban:
man_with_turban :man_with_turban:
woman_with_turban :woman_with_turban:
man_with_gua_pi_mao :man_with_gua_pi_mao:
woman_with_headscarf :woman_with_headscarf:
person_in_tuxedo :person_in_tuxedo:
man_in_tuxedo :man_in_tuxedo:
woman_in_tuxedo :woman_in_tuxedo:
person_with_veil :person_with_veil:
man_with_veil :man_with_veil:
bride_with_veil :bride_with_veil:
pregnant_woman :pregnant_woman:
pregnant_man :pregnant_man:
pregnant_person :pregnant_person:
breast_feeding :breast_feeding:
woman_feeding_baby :woman_feeding_baby:
man_feeding_baby :man_feeding_baby:
person_feeding_baby :person_feeding_baby:

fantaisie

angel :angel:
santa :santa:
mrs_claus :mrs_claus:
mx_claus :mx_claus:
superhero :superhero:
superhero_man :superhero_man:
superhero_woman :superhero_woman:
supervillain :supervillain:
supervillain_man :supervillain_man:
supervillain_woman :supervillain_woman:
mage :mage:
mage_man :mage_man:
mage_woman :mage_woman:
fairy :fairy:
fairy_man :fairy_man:
fairy_woman :fairy_woman:
vampire :vampire:
vampire_man :vampire_man:
vampire_woman :vampire_woman:
merperson :merperson:
merman :merman:
mermaid :mermaid:
elf :elf:
elf_man :elf_man:
elf_woman :elf_woman:
genie :genie:
genie_man :genie_man:
genie_woman :genie_woman:
zombie :zombie:
zombie_man :zombie_man:
zombie_woman :zombie_woman:
troll :troll:

activités

massage :massage:
massage_man :massage_man:
massage_woman :massage_woman:
haircut :haircut:
haircut_man :haircut_man:
haircut_woman :haircut_woman:
walking :walking:
walking_man :walking_man:
walking_woman :walking_woman:
standing_person :standing_person:
standing_man :standing_man:
standing_woman :standing_woman:
kneeling_person :kneeling_person:
kneeling_man :kneeling_man:
kneeling_woman :kneeling_woman:
person_with_probing_cane :person_with_probing_cane:
man_with_probing_cane :man_with_probing_cane:
woman_with_probing_cane :woman_with_probing_cane:
person_in_motorized_wheelchair :person_in_motorized_wheelchair:
man_in_motorized_wheelchair :man_in_motorized_wheelchair:
woman_in_motorized_wheelchair :woman_in_motorized_wheelchair:
person_in_manual_wheelchair :person_in_manual_wheelchair:
man_in_manual_wheelchair :man_in_manual_wheelchair:
woman_in_manual_wheelchair :woman_in_manual_wheelchair:
runner :runner:
running_man :running_man:
running_woman :running_woman:
dancer :dancer:
man_dancing :man_dancing:
business_suit_levitating :business_suit_levitating:
dancers :dancers:
dancing_men :dancing_men:
dancing_women :dancing_women:
sauna_person :sauna_person:
sauna_man :sauna_man:
sauna_woman :sauna_woman:
climbing :climbing:
climbing_man :climbing_man:
climbing_woman :climbing_woman:

athlétisme

person_fencing :person_fencing:
horse_racing :horse_racing:
skier :skier:
snowboarder :snowboarder:
golfing :golfing:
golfing_man :golfing_man:
golfing_woman :golfing_woman:
surfer :surfer:
surfing_man :surfing_man:
surfing_woman :surfing_woman:
rowboat :rowboat:
rowing_man :rowing_man:
rowing_woman :rowing_woman:
swimmer :swimmer:
swimming_man :swimming_man:
swimming_woman :swimming_woman:
bouncing_ball_person :bouncing_ball_person:
basketball_man :basketball_man:
basketball_woman :basketball_woman:
weight_lifting :weight_lifting:
weight_lifting_man :weight_lifting_man:
weight_lifting_woman :weight_lifting_woman:
bicyclist :bicyclist:
biking_man :biking_man:
biking_woman :biking_woman:
mountain_bicyclist :mountain_bicyclist:
mountain_biking_man :mountain_biking_man:
mountain_biking_woman :mountain_biking_woman:
cartwheeling :cartwheeling:
man_cartwheeling :man_cartwheeling:
woman_cartwheeling :woman_cartwheeling:
wrestling :wrestling:
men_wrestling :men_wrestling:
women_wrestling :women_wrestling:
water_polo :water_polo:
man_playing_water_polo :man_playing_water_polo:
woman_playing_water_polo :woman_playing_water_polo:
handball_person :handball_person:
man_playing_handball :man_playing_handball:
woman_playing_handball :woman_playing_handball:
juggling_person :juggling_person:
man_juggling :man_juggling:
woman_juggling :woman_juggling:

repos

lotus_position :lotus_position:
lotus_position_man :lotus_position_man:
lotus_position_woman :lotus_position_woman:
bath :bath:
sleeping_bed :sleeping_bed:

famille

people_holding_hands :people_holding_hands:
two_women_holding_hands :two_women_holding_hands:
couple :couple:
two_men_holding_hands :two_men_holding_hands:
couplekiss :couplekiss:
couplekiss_man_woman :couplekiss_man_woman:
couplekiss_man_man :couplekiss_man_man:
couplekiss_woman_woman :couplekiss_woman_woman:
couple_with_heart :couple_with_heart:
couple_with_heart_woman_man :couple_with_heart_woman_man:
couple_with_heart_man_man :couple_with_heart_man_man:
couple_with_heart_woman_woman :couple_with_heart_woman_woman:

symboles de personnes

speaking_head :speaking_head:
bust_in_silhouette :bust_in_silhouette:
busts_in_silhouette :busts_in_silhouette:
people_hugging :people_hugging:
family :family:
footprints :footprints:

animaux et la nature

mammifères

monkey_face :monkey_face:
monkey :monkey:
gorilla :gorilla:
orangutan :orangutan:
dog :dog:
dog2 :dog2:
guide_dog :guide_dog:
service_dog :service_dog:
poodle :poodle:
wolf :wolf:
fox_face :fox_face:
raccoon :raccoon:
cat :cat:
cat2 :cat2:
black_cat :black_cat:
lion :lion:
tiger :tiger:
tiger2 :tiger2:
leopard :leopard:
horse :horse:
moose :moose:
donkey :donkey:
racehorse :racehorse:
unicorn :unicorn:
zebra :zebra:
deer :deer:
bison :bison:
cow :cow:
ox :ox:
water_buffalo :water_buffalo:
cow2 :cow2:
pig :pig:
pig2 :pig2:
boar :boar:
pig_nose :pig_nose:
ram :ram:
sheep :sheep:
goat :goat:
dromedary_camel :dromedary_camel:
camel :camel:
llama :llama:
giraffe :giraffe:
elephant :elephant:
mammoth :mammoth:
rhinoceros :rhinoceros:
hippopotamus :hippopotamus:
mouse :mouse:
mouse2 :mouse2:
rat :rat:
hamster :hamster:
rabbit :rabbit:
rabbit2 :rabbit2:
chipmunk :chipmunk:
beaver :beaver:
hedgehog :hedgehog:
bat :bat:
bear :bear:
polar_bear :polar_bear:
koala :koala:
panda_face :panda_face:
sloth :sloth:
otter :otter:
skunk :skunk:
kangaroo :kangaroo:
badger :badger:
feet :feet:

oiseaux

turkey :turkey:
chicken :chicken:
rooster :rooster:
hatching_chick :hatching_chick:
baby_chick :baby_chick:
hatched_chick :hatched_chick:
bird :bird:
penguin :penguin:
dove :dove:
eagle :eagle:
duck :duck:
swan :swan:
owl :owl:
dodo :dodo:
feather :feather:
flamingo :flamingo:
peacock :peacock:
parrot :parrot:
wing :wing:
black_bird :black_bird:
goose :goose:

amphibiens

frog :frog:

reptiles

crocodile :crocodile:
turtle :turtle:
lizard :lizard:
snake :snake:
dragon_face :dragon_face:
dragon :dragon:
sauropod :sauropod:
t-rex :t-rex:

vie marine

whale :whale:
whale2 :whale2:
dolphin :dolphin:
seal :seal:
fish :fish:
tropical_fish :tropical_fish:
blowfish :blowfish:
shark :shark:
octopus :octopus:
shell :shell:
coral :coral:
jellyfish :jellyfish:
crab :crab:
lobster :lobster:
shrimp :shrimp:
squid :squid:
oyster :oyster:

insectes

snail :snail:
butterfly :butterfly:
bug :bug:
ant :ant:
bee :bee:
beetle :beetle:
lady_beetle :lady_beetle:
cricket :cricket:
cockroach :cockroach:
spider :spider:
spider_web :spider_web:
scorpion :scorpion:
mosquito :mosquito:
fly :fly:
worm :worm:
microbe :microbe:

fleurs

bouquet :bouquet:
cherry_blossom :cherry_blossom:
white_flower :white_flower:
lotus :lotus:
rosette :rosette:
rose :rose:
wilted_flower :wilted_flower:
hibiscus :hibiscus:
sunflower :sunflower:
blossom :blossom:
tulip :tulip:
hyacinth :hyacinth:

d’autres plantes

seedling :seedling:
potted_plant :potted_plant:
evergreen_tree :evergreen_tree:
deciduous_tree :deciduous_tree:
palm_tree :palm_tree:
cactus :cactus:
ear_of_rice :ear_of_rice:
herb :herb:
shamrock :shamrock:
four_leaf_clover :four_leaf_clover:
maple_leaf :maple_leaf:
fallen_leaf :fallen_leaf:
leaves :leaves:
empty_nest :empty_nest:
nest_with_eggs :nest_with_eggs:
mushroom :mushroom:

nourriture et boissons

fruit

grapes :grapes:
melon :melon:
watermelon :watermelon:
mandarin :mandarin:
lemon :lemon:
banana :banana:
pineapple :pineapple:
mango :mango:
apple :apple:
green_apple :green_apple:
pear :pear:
peach :peach:
cherries :cherries:
strawberry :strawberry:
blueberries :blueberries:
kiwi_fruit :kiwi_fruit:
tomato :tomato:
olive :olive:
coconut :coconut:

légumes

avocado :avocado:
eggplant :eggplant:
potato :potato:
carrot :carrot:
corn :corn:
hot_pepper :hot_pepper:
bell_pepper :bell_pepper:
cucumber :cucumber:
leafy_green :leafy_green:
broccoli :broccoli:
garlic :garlic:
onion :onion:
peanuts :peanuts:
beans :beans:
chestnut :chestnut:
ginger_root :ginger_root:
pea_pod :pea_pod:

cuit / préparé

bread :bread:
croissant :croissant:
baguette_bread :baguette_bread:
flatbread :flatbread:
pretzel :pretzel:
bagel :bagel:
pancakes :pancakes:
waffle :waffle:
cheese :cheese:
meat_on_bone :meat_on_bone:
poultry_leg :poultry_leg:
cut_of_meat :cut_of_meat:
bacon :bacon:
hamburger :hamburger:
fries :fries:
pizza :pizza:
hotdog :hotdog:
sandwich :sandwich:
taco :taco:
burrito :burrito:
tamale :tamale:
stuffed_flatbread :stuffed_flatbread:
falafel :falafel:
egg :egg:
fried_egg :fried_egg:
shallow_pan_of_food :shallow_pan_of_food:
stew :stew:
fondue :fondue:
bowl_with_spoon :bowl_with_spoon:
green_salad :green_salad:
popcorn :popcorn:
butter :butter:
salt :salt:
canned_food :canned_food:

asiatique

bento :bento:
rice_cracker :rice_cracker:
rice_ball :rice_ball:
rice :rice:
curry :curry:
ramen :ramen:
spaghetti :spaghetti:
sweet_potato :sweet_potato:
oden :oden:
sushi :sushi:
fried_shrimp :fried_shrimp:
fish_cake :fish_cake:
moon_cake :moon_cake:
dango :dango:
dumpling :dumpling:
fortune_cookie :fortune_cookie:
takeout_box :takeout_box:

bonbons

icecream :icecream:
shaved_ice :shaved_ice:
ice_cream :ice_cream:
doughnut :doughnut:
cookie :cookie:
birthday :birthday:
cake :cake:
cupcake :cupcake:
pie :pie:
chocolate_bar :chocolate_bar:
candy :candy:
lollipop :lollipop:
custard :custard:
honey_pot :honey_pot:

boisson

baby_bottle :baby_bottle:
milk_glass :milk_glass:
coffee :coffee:
teapot :teapot:
tea :tea:
sake :sake:
champagne :champagne:
wine_glass :wine_glass:
cocktail :cocktail:
tropical_drink :tropical_drink:
beer :beer:
beers :beers:
clinking_glasses :clinking_glasses:
tumbler_glass :tumbler_glass:
pouring_liquid :pouring_liquid:
cup_with_straw :cup_with_straw:
bubble_tea :bubble_tea:
beverage_box :beverage_box:
mate :mate:
ice_cube :ice_cube:

vaisselle

chopsticks :chopsticks:
plate_with_cutlery :plate_with_cutlery:
fork_and_knife :fork_and_knife:
spoon :spoon:
hocho :hocho:
jar :jar:
amphora :amphora:

voyages et lieux

globes et cartes

earth_africa :earth_africa:
earth_americas :earth_americas:
earth_asia :earth_asia:
globe_with_meridians :globe_with_meridians:
world_map :world_map:
japan :japan:
compass :compass:

emplacements géographiques

mountain_snow :mountain_snow:
mountain :mountain:
volcano :volcano:
mount_fuji :mount_fuji:
camping :camping:
beach_umbrella :beach_umbrella:
desert :desert:
desert_island :desert_island:
national_park :national_park:

bâtiments

stadium :stadium:
classical_building :classical_building:
building_construction :building_construction:
bricks :bricks:
rock :rock:
wood :wood:
hut :hut:
houses :houses:
derelict_house :derelict_house:
house :house:
house_with_garden :house_with_garden:
office :office:
post_office :post_office:
european_post_office :european_post_office:
hospital :hospital:
bank :bank:
hotel :hotel:
love_hotel :love_hotel:
convenience_store :convenience_store:
school :school:
department_store :department_store:
factory :factory:
japanese_castle :japanese_castle:
european_castle :european_castle:
wedding :wedding:
tokyo_tower :tokyo_tower:
statue_of_liberty :statue_of_liberty:

édifices religieux

church :church:
mosque :mosque:
hindu_temple :hindu_temple:
synagogue :synagogue:
shinto_shrine :shinto_shrine:
kaaba :kaaba:

d’autres endroits

fountain :fountain:
tent :tent:
foggy :foggy:
night_with_stars :night_with_stars:
cityscape :cityscape:
sunrise_over_mountains :sunrise_over_mountains:
sunrise :sunrise:
city_sunset :city_sunset:
city_sunrise :city_sunrise:
bridge_at_night :bridge_at_night:
hotsprings :hotsprings:
carousel_horse :carousel_horse:
playground_slide :playground_slide:
ferris_wheel :ferris_wheel:
roller_coaster :roller_coaster:
barber :barber:
circus_tent :circus_tent:

transport terrestre

steam_locomotive :steam_locomotive:
railway_car :railway_car:
bullettrain_side :bullettrain_side:
bullettrain_front :bullettrain_front:
train2 :train2:
metro :metro:
light_rail :light_rail:
station :station:
tram :tram:
monorail :monorail:
mountain_railway :mountain_railway:
train :train:
bus :bus:
oncoming_bus :oncoming_bus:
trolleybus :trolleybus:
minibus :minibus:
ambulance :ambulance:
fire_engine :fire_engine:
police_car :police_car:
oncoming_police_car :oncoming_police_car:
taxi :taxi:
oncoming_taxi :oncoming_taxi:
car :car:
oncoming_automobile :oncoming_automobile:
blue_car :blue_car:
pickup_truck :pickup_truck:
truck :truck:
articulated_lorry :articulated_lorry:
tractor :tractor:
racing_car :racing_car:
motorcycle :motorcycle:
motor_scooter :motor_scooter:
manual_wheelchair :manual_wheelchair:
motorized_wheelchair :motorized_wheelchair:
auto_rickshaw :auto_rickshaw:
bike :bike:
kick_scooter :kick_scooter:
skateboard :skateboard:
roller_skate :roller_skate:
busstop :busstop:
motorway :motorway:
railway_track :railway_track:
oil_drum :oil_drum:
fuelpump :fuelpump:
wheel :wheel:
rotating_light :rotating_light:
traffic_light :traffic_light:
vertical_traffic_light :vertical_traffic_light:
stop_sign :stop_sign:
construction :construction:

transport par eau

anchor :anchor:
ring_buoy :ring_buoy:
boat :boat:
canoe :canoe:
speedboat :speedboat:
passenger_ship :passenger_ship:
ferry :ferry:
motor_boat :motor_boat:
ship :ship:

transport aérien

airplane :airplane:
small_airplane :small_airplane:
flight_departure :flight_departure:
flight_arrival :flight_arrival:
parachute :parachute:
seat :seat:
helicopter :helicopter:
suspension_railway :suspension_railway:
mountain_cableway :mountain_cableway:
aerial_tramway :aerial_tramway:
artificial_satellite :artificial_satellite:
rocket :rocket:
flying_saucer :flying_saucer:

hôtel

bellhop_bell :bellhop_bell:
luggage :luggage:

temps

hourglass :hourglass:
hourglass_flowing_sand :hourglass_flowing_sand:
watch :watch:
alarm_clock :alarm_clock:
stopwatch :stopwatch:
timer_clock :timer_clock:
mantelpiece_clock :mantelpiece_clock:
clock12 :clock12:
clock1230 :clock1230:
clock1 :clock1:
clock130 :clock130:
clock2 :clock2:
clock230 :clock230:
clock3 :clock3:
clock330 :clock330:
clock4 :clock4:
clock430 :clock430:
clock5 :clock5:
clock530 :clock530:
clock6 :clock6:
clock630 :clock630:
clock7 :clock7:
clock730 :clock730:
clock8 :clock8:
clock830 :clock830:
clock9 :clock9:
clock930 :clock930:
clock10 :clock10:
clock1030 :clock1030:
clock11 :clock11:
clock1130 :clock1130:

meteo

new_moon :new_moon:
waxing_crescent_moon :waxing_crescent_moon:
first_quarter_moon :first_quarter_moon:
moon :moon:
full_moon :full_moon:
waning_gibbous_moon :waning_gibbous_moon:
last_quarter_moon :last_quarter_moon:
waning_crescent_moon :waning_crescent_moon:
crescent_moon :crescent_moon:
new_moon_with_face :new_moon_with_face:
first_quarter_moon_with_face :first_quarter_moon_with_face:
last_quarter_moon_with_face :last_quarter_moon_with_face:
thermometer :thermometer:
sunny :sunny:
full_moon_with_face :full_moon_with_face:
sun_with_face :sun_with_face:
ringed_planet :ringed_planet:
star :star:
star2 :star2:
stars :stars:
milky_way :milky_way:
cloud :cloud:
partly_sunny :partly_sunny:
cloud_with_lightning_and_rain :cloud_with_lightning_and_rain:
sun_behind_small_cloud :sun_behind_small_cloud:
sun_behind_large_cloud :sun_behind_large_cloud:
sun_behind_rain_cloud :sun_behind_rain_cloud:
cloud_with_rain :cloud_with_rain:
cloud_with_snow :cloud_with_snow:
cloud_with_lightning :cloud_with_lightning:
tornado :tornado:
fog :fog:
wind_face :wind_face:
cyclone :cyclone:
rainbow :rainbow:
closed_umbrella :closed_umbrella:
open_umbrella :open_umbrella:
umbrella :umbrella:
parasol_on_ground :parasol_on_ground:
zap :zap:
snowflake :snowflake:
snowman_with_snow :snowman_with_snow:
snowman :snowman:
comet :comet:
fire :fire:
droplet :droplet:
ocean :ocean:

activités

événements et jours fériés

jack_o_lantern :jack_o_lantern:
christmas_tree :christmas_tree:
fireworks :fireworks:
sparkler :sparkler:
firecracker :firecracker:
sparkles :sparkles:
balloon :balloon:
tada :tada:
confetti_ball :confetti_ball:
tanabata_tree :tanabata_tree:
bamboo :bamboo:
dolls :dolls:
flags :flags:
wind_chime :wind_chime:
rice_scene :rice_scene:
red_envelope :red_envelope:
ribbon :ribbon:
gift :gift:
reminder_ribbon :reminder_ribbon:
tickets :tickets:
ticket :ticket:

médailles de prix

medal_military :medal_military:
trophy :trophy:
medal_sports :medal_sports:
1st_place_medal :1st_place_medal:
2nd_place_medal :2nd_place_medal:
3rd_place_medal :3rd_place_medal:

des sports

soccer :soccer:
baseball :baseball:
softball :softball:
basketball :basketball:
volleyball :volleyball:
football :football:
rugby_football :rugby_football:
tennis :tennis:
flying_disc :flying_disc:
bowling :bowling:
cricket_game :cricket_game:
field_hockey :field_hockey:
ice_hockey :ice_hockey:
lacrosse :lacrosse:
ping_pong :ping_pong:
badminton :badminton:
boxing_glove :boxing_glove:
martial_arts_uniform :martial_arts_uniform:
goal_net :goal_net:
golf :golf:
ice_skate :ice_skate:
fishing_pole_and_fish :fishing_pole_and_fish:
diving_mask :diving_mask:
running_shirt_with_sash :running_shirt_with_sash:
ski :ski:
sled :sled:
curling_stone :curling_stone:

jeux et passe-temps

dart :dart:
yo_yo :yo_yo:
kite :kite:
gun :gun:
8ball :8ball:
crystal_ball :crystal_ball:
magic_wand :magic_wand:
video_game :video_game:
joystick :joystick:
slot_machine :slot_machine:
game_die :game_die:
jigsaw :jigsaw:
teddy_bear :teddy_bear:
pinata :pinata:
mirror_ball :mirror_ball:
nesting_dolls :nesting_dolls:
spades :spades:
hearts :hearts:
diamonds :diamonds:
clubs :clubs:
chess_pawn :chess_pawn:
black_joker :black_joker:
mahjong :mahjong:
flower_playing_cards :flower_playing_cards:

arts et métiers

performing_arts :performing_arts:
framed_picture :framed_picture:
art :art:
thread :thread:
sewing_needle :sewing_needle:
yarn :yarn:
knot :knot:

objets

vêtements

eyeglasses :eyeglasses:
dark_sunglasses :dark_sunglasses:
goggles :goggles:
lab_coat :lab_coat:
safety_vest :safety_vest:
necktie :necktie:
shirt :shirt:
jeans :jeans:
scarf :scarf:
gloves :gloves:
coat :coat:
socks :socks:
dress :dress:
kimono :kimono:
sari :sari:
one_piece_swimsuit :one_piece_swimsuit:
swim_brief :swim_brief:
shorts :shorts:
bikini :bikini:
womans_clothes :womans_clothes:
folding_hand_fan :folding_hand_fan:
purse :purse:
handbag :handbag:
pouch :pouch:
shopping :shopping:
school_satchel :school_satchel:
thong_sandal :thong_sandal:
mans_shoe :mans_shoe:
athletic_shoe :athletic_shoe:
hiking_boot :hiking_boot:
flat_shoe :flat_shoe:
high_heel :high_heel:
sandal :sandal:
ballet_shoes :ballet_shoes:
boot :boot:
hair_pick :hair_pick:
crown :crown:
womans_hat :womans_hat:
tophat :tophat:
mortar_board :mortar_board:
billed_cap :billed_cap:
military_helmet :military_helmet:
rescue_worker_helmet :rescue_worker_helmet:
prayer_beads :prayer_beads:
lipstick :lipstick:
ring :ring:
gem :gem:

bruit

mute :mute:
speaker :speaker:
sound :sound:
loud_sound :loud_sound:
loudspeaker :loudspeaker:
mega :mega:
postal_horn :postal_horn:
bell :bell:
no_bell :no_bell:

musique

musical_score :musical_score:
musical_note :musical_note:
notes :notes:
studio_microphone :studio_microphone:
level_slider :level_slider:
control_knobs :control_knobs:
microphone :microphone:
headphones :headphones:
radio :radio:

instruments de musique

saxophone :saxophone:
trumpet :trumpet:
accordion :accordion:
guitar :guitar:
musical_keyboard :musical_keyboard:
violin :violin:
banjo :banjo:
drum :drum:
long_drum :long_drum:
maracas :maracas:
flute :flute:

téléphone

iphone :iphone:
calling :calling:
phone :phone:
telephone_receiver :telephone_receiver:
pager :pager:
fax :fax:

ordinateur

battery :battery:
low_battery :low_battery:
electric_plug :electric_plug:
computer :computer:
desktop_computer :desktop_computer:
printer :printer:
keyboard :keyboard:
computer_mouse :computer_mouse:
trackball :trackball:
minidisc :minidisc:
floppy_disk :floppy_disk:
cd :cd:
dvd :dvd:
abacus :abacus:

lumière, film et vidéo

movie_camera :movie_camera:
film_strip :film_strip:
film_projector :film_projector:
clapper :clapper:
tv :tv:
camera :camera:
camera_flash :camera_flash:
video_camera :video_camera:
vhs :vhs:
mag :mag:
mag_right :mag_right:
candle :candle:
bulb :bulb:
flashlight :flashlight:
izakaya_lantern :izakaya_lantern:
diya_lamp :diya_lamp:

livres et papier

notebook_with_decorative_cover :notebook_with_decorative_cover:
closed_book :closed_book:
book :book:
green_book :green_book:
blue_book :blue_book:
orange_book :orange_book:
books :books:
notebook :notebook:
ledger :ledger:
page_with_curl :page_with_curl:
scroll :scroll:
page_facing_up :page_facing_up:
newspaper :newspaper:
newspaper_roll :newspaper_roll:
bookmark_tabs :bookmark_tabs:
bookmark :bookmark:
label :label:

argent

coin :coin:
moneybag :moneybag:
yen :yen:
dollar :dollar:
euro :euro:
pound :pound:
money_with_wings :money_with_wings:
credit_card :credit_card:
receipt :receipt:
chart :chart:

courrier

envelope :envelope:
e-mail :e-mail:
incoming_envelope :incoming_envelope:
envelope_with_arrow :envelope_with_arrow:
outbox_tray :outbox_tray:
inbox_tray :inbox_tray:
package :package:
mailbox :mailbox:
mailbox_closed :mailbox_closed:
mailbox_with_mail :mailbox_with_mail:
mailbox_with_no_mail :mailbox_with_no_mail:
postbox :postbox:
ballot_box :ballot_box:

écrit

pencil2 :pencil2:
black_nib :black_nib:
fountain_pen :fountain_pen:
pen :pen:
paintbrush :paintbrush:
crayon :crayon:
memo :memo:

fournitures de bureau

briefcase :briefcase:
file_folder :file_folder:
open_file_folder :open_file_folder:
card_index_dividers :card_index_dividers:
date :date:
calendar :calendar:
spiral_notepad :spiral_notepad:
spiral_calendar :spiral_calendar:
card_index :card_index:
chart_with_upwards_trend :chart_with_upwards_trend:
chart_with_downwards_trend :chart_with_downwards_trend:
bar_chart :bar_chart:
clipboard :clipboard:
pushpin :pushpin:
round_pushpin :round_pushpin:
paperclip :paperclip:
paperclips :paperclips:
straight_ruler :straight_ruler:
triangular_ruler :triangular_ruler:
scissors :scissors:
card_file_box :card_file_box:
file_cabinet :file_cabinet:
wastebasket :wastebasket:

serrure & clés

lock :lock:
unlock :unlock:
lock_with_ink_pen :lock_with_ink_pen:
closed_lock_with_key :closed_lock_with_key:
key :key:
old_key :old_key:

outils

hammer :hammer:
axe :axe:
pick :pick:
hammer_and_pick :hammer_and_pick:
hammer_and_wrench :hammer_and_wrench:
dagger :dagger:
crossed_swords :crossed_swords:
bomb :bomb:
boomerang :boomerang:
bow_and_arrow :bow_and_arrow:
shield :shield:
carpentry_saw :carpentry_saw:
wrench :wrench:
screwdriver :screwdriver:
nut_and_bolt :nut_and_bolt:
gear :gear:
clamp :clamp:
balance_scale :balance_scale:
probing_cane :probing_cane:
link :link:
chains :chains:
hook :hook:
toolbox :toolbox:
magnet :magnet:
ladder :ladder:

équipement scientifique

alembic :alembic:
test_tube :test_tube:
petri_dish :petri_dish:
dna :dna:
microscope :microscope:
telescope :telescope:
satellite :satellite:

médical

syringe :syringe:
drop_of_blood :drop_of_blood:
pill :pill:
adhesive_bandage :adhesive_bandage:
crutch :crutch:
stethoscope :stethoscope:
x_ray :x_ray:

articles ménagers

door :door:
elevator :elevator:
mirror :mirror:
window :window:
bed :bed:
couch_and_lamp :couch_and_lamp:
chair :chair:
toilet :toilet:
plunger :plunger:
shower :shower:
bathtub :bathtub:
mouse_trap :mouse_trap:
razor :razor:
lotion_bottle :lotion_bottle:
safety_pin :safety_pin:
broom :broom:
basket :basket:
roll_of_paper :roll_of_paper:
bucket :bucket:
soap :soap:
bubbles :bubbles:
toothbrush :toothbrush:
sponge :sponge:
fire_extinguisher :fire_extinguisher:
shopping_cart :shopping_cart:

d’autres objets

smoking :smoking:
coffin :coffin:
headstone :headstone:
funeral_urn :funeral_urn:
nazar_amulet :nazar_amulet:
hamsa :hamsa:
moyai :moyai:
placard :placard:
identification_card :identification_card:

symboles

panneaux de transport

atm :atm:
put_litter_in_its_place :put_litter_in_its_place:
potable_water :potable_water:
wheelchair :wheelchair:
mens :mens:
womens :womens:
restroom :restroom:
baby_symbol :baby_symbol:
wc :wc:
passport_control :passport_control:
customs :customs:
baggage_claim :baggage_claim:
left_luggage :left_luggage:

symboles d’avertissement

warning :warning:
children_crossing :children_crossing:
no_entry :no_entry:
no_entry_sign :no_entry_sign:
no_bicycles :no_bicycles:
no_smoking :no_smoking:
do_not_litter :do_not_litter:
non-potable_water :non-potable_water:
no_pedestrians :no_pedestrians:
no_mobile_phones :no_mobile_phones:
underage :underage:
radioactive :radioactive:
biohazard :biohazard:

flèches

arrow_up :arrow_up:
arrow_upper_right :arrow_upper_right:
arrow_right :arrow_right:
arrow_lower_right :arrow_lower_right:
arrow_down :arrow_down:
arrow_lower_left :arrow_lower_left:
arrow_left :arrow_left:
arrow_upper_left :arrow_upper_left:
arrow_up_down :arrow_up_down:
left_right_arrow :left_right_arrow:
leftwards_arrow_with_hook :leftwards_arrow_with_hook:
arrow_right_hook :arrow_right_hook:
arrow_heading_up :arrow_heading_up:
arrow_heading_down :arrow_heading_down:
arrows_clockwise :arrows_clockwise:
arrows_counterclockwise :arrows_counterclockwise:
back :back:
end :end:
on :on:
soon :soon:
top :top:

symboles religieux

place_of_worship :place_of_worship:
atom_symbol :atom_symbol:
om :om:
star_of_david :star_of_david:
wheel_of_dharma :wheel_of_dharma:
yin_yang :yin_yang:
latin_cross :latin_cross:
orthodox_cross :orthodox_cross:
star_and_crescent :star_and_crescent:
peace_symbol :peace_symbol:
menorah :menorah:
six_pointed_star :six_pointed_star:
khanda :khanda:

signes du zodiaque

aries :aries:
taurus :taurus:
gemini :gemini:
cancer :cancer:
leo :leo:
virgo :virgo:
libra :libra:
scorpius :scorpius:
sagittarius :sagittarius:
capricorn :capricorn:
aquarius :aquarius:
pisces :pisces:
ophiuchus :ophiuchus:

symboles audio et vidéo

twisted_rightwards_arrows :twisted_rightwards_arrows:
repeat :repeat:
repeat_one :repeat_one:
arrow_forward :arrow_forward:
fast_forward :fast_forward:
next_track_button :next_track_button:
play_or_pause_button :play_or_pause_button:
arrow_backward :arrow_backward:
rewind :rewind:
previous_track_button :previous_track_button:
arrow_up_small :arrow_up_small:
arrow_double_up :arrow_double_up:
arrow_down_small :arrow_down_small:
arrow_double_down :arrow_double_down:
pause_button :pause_button:
stop_button :stop_button:
record_button :record_button:
eject_button :eject_button:
cinema :cinema:
low_brightness :low_brightness:
high_brightness :high_brightness:
signal_strength :signal_strength:
wireless :wireless:
vibration_mode :vibration_mode:
mobile_phone_off :mobile_phone_off:

signes de genre

female_sign :female_sign:
male_sign :male_sign:
transgender_symbol :transgender_symbol:

symboles mathématiques

heavy_multiplication_x :heavy_multiplication_x:
heavy_plus_sign :heavy_plus_sign:
heavy_minus_sign :heavy_minus_sign:
heavy_division_sign :heavy_division_sign:
heavy_equals_sign :heavy_equals_sign:
infinity :infinity:

ponctuation

bangbang :bangbang:
interrobang :interrobang:
question :question:
grey_question :grey_question:
grey_exclamation :grey_exclamation:
exclamation :exclamation:
wavy_dash :wavy_dash:

devises

currency_exchange :currency_exchange:
heavy_dollar_sign :heavy_dollar_sign:

d’autres symboles

medical_symbol :medical_symbol:
recycle :recycle:
fleur_de_lis :fleur_de_lis:
trident :trident:
name_badge :name_badge:
beginner :beginner:
o :o:
white_check_mark :white_check_mark:
ballot_box_with_check :ballot_box_with_check:
heavy_check_mark :heavy_check_mark:
x :x:
negative_squared_cross_mark :negative_squared_cross_mark:
curly_loop :curly_loop:
loop :loop:
part_alternation_mark :part_alternation_mark:
eight_spoked_asterisk :eight_spoked_asterisk:
eight_pointed_black_star :eight_pointed_black_star:
sparkle :sparkle:
copyright :copyright:
registered :registered:

caractères de clavier

hash :hash:
asterisk :asterisk:
zero :zero:
one :one:
two :two:
three :three:
four :four:
five :five:
six :six:
seven :seven:
eight :eight:
nine :nine:
keycap_ten :keycap_ten:

symboles alphanumériques

capital_abcd :capital_abcd:
abcd :abcd:
1234 :1234:
symbols :symbols:
abc :abc:
a :a:
ab :ab:
b :b:
cl :cl:
cool :cool:
free :free:
information_source :information_source:
id :id:
m :m:
new :new:
ng :ng:
o2 :o2:
ok :ok:
parking :parking:
sos :sos:
up :up:
vs :vs:
koko :koko:
sa :sa:
u6708 :u6708:
u6709 :u6709:
u6307 :u6307:
ideograph_advantage :ideograph_advantage:
u5272 :u5272:
u7121 :u7121:
u7981 :u7981:
accept :accept:
u7533 :u7533:
u5408 :u5408:
u7a7a :u7a7a:
congratulations :congratulations:
secret :secret:
u55b6 :u55b6:
u6e80 :u6e80:

formes et couleurs

red_circle :red_circle:
orange_circle :orange_circle:
yellow_circle :yellow_circle:
green_circle :green_circle:
large_blue_circle :large_blue_circle:
purple_circle :purple_circle:
brown_circle :brown_circle:
black_circle :black_circle:
white_circle :white_circle:
red_square :red_square:
orange_square :orange_square:
yellow_square :yellow_square:
green_square :green_square:
blue_square :blue_square:
purple_square :purple_square:
brown_square :brown_square:
black_large_square :black_large_square:
white_large_square :white_large_square:
black_medium_square :black_medium_square:
white_medium_square :white_medium_square:
black_medium_small_square :black_medium_small_square:
white_medium_small_square :white_medium_small_square:
black_small_square :black_small_square:
white_small_square :white_small_square:
large_orange_diamond :large_orange_diamond:
large_blue_diamond :large_blue_diamond:
small_orange_diamond :small_orange_diamond:
small_blue_diamond :small_blue_diamond:
small_red_triangle :small_red_triangle:
small_red_triangle_down :small_red_triangle_down:
diamond_shape_with_a_dot_inside :diamond_shape_with_a_dot_inside:
radio_button :radio_button:
white_square_button :white_square_button:
black_square_button :black_square_button:

drapeaux

autres drapeaux

checkered_flag :checkered_flag:
triangular_flag_on_post :triangular_flag_on_post:
crossed_flags :crossed_flags:
black_flag :black_flag:
white_flag :white_flag:
rainbow_flag :rainbow_flag:
transgender_flag :transgender_flag:
pirate_flag :pirate_flag:

drapeaux de pays

ac :ac:
ad :ad:
ae :ae:
af :af:
ag :ag:
ai :ai:
al :al:
am :am:
ao :ao:
aq :aq:
ar :ar:
as :as:
at :at:
au :au:
aw :aw:
ax :ax:
az :az:
ba :ba:
bb :bb:
bd :bd:
be :be:
bf :bf:
bg :bg:
bh :bh:
bi :bi:
bj :bj:
bl :bl:
bm :bm:
bn :bn:
bo :bo:
bq :bq:
br :br:
bs :bs:
bt :bt:
bv :bv:
bw :bw:
by :by:
bz :bz:
ca :ca:
cc :cc:
cd :cd:
cf :cf:
cg :cg:
ch :ch:
ci :ci:
ck :ck:
cl :cl:
cm :cm:
cn :cn:
co :co:
cp :cp:
cr :cr:
cu :cu:
cv :cv:
cw :cw:
cx :cx:
cy :cy:
cz :cz:
de :de:
dg :dg:
dj :dj:
dk :dk:
dm :dm:
do :do:
dz :dz:
ea :ea:
ec :ec:
ee :ee:
eg :eg:
eh :eh:
er :er:
es :es:
et :et:
eu :eu:
fi :fi:
fj :fj:
fk :fk:
fm :fm:
fo :fo:
fr :fr:
ga :ga:
gb :gb:
gd :gd:
ge :ge:
gf :gf:
gg :gg:
gh :gh:
gi :gi:
gl :gl:
gm :gm:
gn :gn:
gp :gp:
gq :gq:
gr :gr:
gs :gs:
gt :gt:
gu :gu:
gw :gw:
gy :gy:
hk :hk:
hm :hm:
hn :hn:
hr :hr:
ht :ht:
hu :hu:
ic :ic:
id :id:
ie :ie:
il :il:
im :im:
in :in:
io :io:
iq :iq:
ir :ir:
is :is:
it :it:
je :je:
jm :jm:
jo :jo:
jp :jp:
ke :ke:
kg :kg:
kh :kh:
ki :ki:
km :km:
kn :kn:
kp :kp:
kr :kr:
kw :kw:
ky :ky:
kz :kz:
la :la:
lb :lb:
lc :lc:
li :li:
lk :lk:
lr :lr:
ls :ls:
lt :lt:
lu :lu:
lv :lv:
ly :ly:
ma :ma:
mc :mc:
md :md:
me :me:
mf :mf:
mg :mg:
mh :mh:
mk :mk:
ml :ml:
mm :mm:
mn :mn:
mo :mo:
mp :mp:
mq :mq:
mr :mr:
ms :ms:
mt :mt:
mu :mu:
mv :mv:
mw :mw:
mx :mx:
my :my:
mz :mz:
na :na:
nc :nc:
ne :ne:
nf :nf:
ng :ng:
ni :ni:
nl :nl:
no :no:
np :np:
nr :nr:
nu :nu:
nz :nz:
om :om:
pa :pa:
pe :pe:
pf :pf:
pg :pg:
ph :ph:
pk :pk:
pl :pl:
pm :pm:
pn :pn:
pr :pr:
ps :ps:
pt :pt:
pw :pw:
py :py:
qa :qa:
re :re:
ro :ro:
rs :rs:
ru :ru:
rw :rw:
sa :sa:
sb :sb:
sc :sc:
sd :sd:
se :se:
sg :sg:
sh :sh:
si :si:
sj :sj:
sk :sk:
sl :sl:
sm :sm:
sn :sn:
so :so:
sr :sr:
ss :ss:
st :st:
sv :sv:
sx :sx:
sy :sy:
sz :sz:
ta :ta:
tc :tc:
td :td:
tf :tf:
tg :tg:
th :th:
tj :tj:
tk :tk:
tl :tl:
tm :tm:
tn :tn:
to :to:
tr :tr:
tt :tt:
tv :tv:
tw :tw:
tz :tz:
ua :ua:
ug :ug:
um :um:
us :us:
uy :uy:
uz :uz:
va :va:
vc :vc:
ve :ve:
vg :vg:
vi :vi:
vn :vn:
vu :vu:
wf :wf:
ws :ws:
xk :xk:
ye :ye:
yt :yt:
za :za:
zm :zm:
zw :zw:
england :england:
scotland :scotland:
wales :wales: