API Perplexity AI : accès, tarifs, intégration et guide de production
Dernière vérification par rapport à la documentation de Perplexity : 24 octobre 2026.
L’API Perplexity AI n’est plus une « API de recherche-chat » indifférenciée. Elle propose désormais des interfaces distinctes pour les réponses d’agents ancrées dans le Web, le routage de modèles à poids ouverts, la recherche brute, les embeddings et les décisions typées. Choisissez l’interface adaptée à la tâche avant d’écrire du code : elle détermine le point de terminaison, la méthode SDK, l’unité de tarification, la limite de débit et les éléments à journaliser en production.
Pour la plupart des nouvelles fonctionnalités de recherche ou d’assistant, commencez par l’API Agent. Elle suit le format OpenAI Responses, peut utiliser la recherche Web et renvoie une sortie structurée avec des sources. Utilisez l’API Orchestrator lorsque votre code OpenAI Chat Completions existant doit accéder à son catalogue de modèles à poids ouverts. Utilisez Search lorsque vous avez besoin de résultats classés sans réponse d’un LLM.
La réponse courte : quelle API Perplexity devez-vous utiliser ?
| Besoin | Utiliser | Ce que vous recevez | Mode d’intégration |
|---|---|---|---|
| Une réponse documentée avec des sources, des outils ou un flux de travail en plusieurs étapes | API Agent | Sortie Responses structurée, y compris des éléments de résultat tenant compte des sources | POST /v1/agent ou l’alias accepté /v1/responses |
| Des modèles à poids ouverts derrière un client de type OpenAI Chat Completions | API Orchestrator | Réponse de type Chat Completions | POST /orchestrator/v1/chat/completions |
| Des résultats Web classés que votre propre pipeline traitera | API Search | Résultats de recherche bruts | POST /search |
| Des vecteurs pour la recherche sémantique, le RAG ou la classification | API Embeddings | Embeddings | Point de terminaison/SDK Perplexity embeddings |
| Une décision calibrée oui/non, à choix multiple ou fondée sur une grille d’évaluation | API Decisions | Réponse typée et probabilités | Point de terminaison/SDK Decisions |
Cette distinction constitue le choix de conception le plus important pour l’API Perplexity AI. La présentation actuelle de Perplexity décrit l’API Agent comme une API compatible avec OpenAI Responses et ancrée dans le Web ; son API Orchestrator est une interface de compatibilité distincte pour les modèles hébergés à poids ouverts. Consultez la présentation de Perplexity.
Obtenir l’accès à l’API Perplexity AI
- Créez un compte dans la console API Perplexity.
- Générez une clé depuis la page API Keys.
- Stockez-la uniquement sur le serveur ou dans votre gestionnaire de secrets de déploiement.
- Définissez
PERPLEXITY_API_KEYdans l’environnement d’exécution — et non dans le code du navigateur, git, des exemples ou des journaux. - Ajoutez une configuration de facturation avant d’envoyer du trafic de production. Perplexity documente une facturation d’API à l’usage, sans exigence d’abonnement ; consultez la page de tarification en direct avant le lancement, car les tarifs des modèles et des outils peuvent changer.
Sur macOS ou Linux, définissez le secret sans l’afficher :
export PERPLEXITY_API_KEY="replace-in-your-secret-manager"
test -n "$PERPLEXITY_API_KEY" && echo "PERPLEXITY_API_KEY is set"
La dernière commande confirme délibérément la présence sans exposer la valeur. Perplexity déconseille explicitement d’afficher des clés, ou même des fragments de clés, dans la sortie du terminal. Pour le reste de votre application, suivez la même règle : masquez les en-têtes Authorization, effectuez une rotation des clés compromises et attribuez à chaque environnement son propre identifiant. Associez cela à un workflow sécurisé de gestion des clés API avant d’ajouter du trafic client.
Intégrer l’API Agent avec le SDK OpenAI
L’API Agent est la bonne interface de l’API Perplexity AI lorsque votre produit nécessite une réponse ancrée dans le Web, des citations, l’utilisation d’outils ou une réponse pouvant se poursuivre sur plusieurs tours. Perplexity documente la configuration du SDK OpenAI avec base_url="https://api.perplexity.ai/v1", en utilisant client.responses.create().
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["PERPLEXITY_API_KEY"],
base_url="https://api.perplexity.ai/v1",
)
response = client.responses.create(
model="perplexity/sonar",
input="What changed in the last 30 days for this topic? Cite primary sources.",
tools=[{"type": "web_search"}],
max_output_tokens=600,
)
print(response.output_text)
Le point de terminaison canonique est POST /v1/agent ; le SDK OpenAI envoie POST /v1/responses, que Perplexity accepte comme alias. Cela est compatible au niveau de Responses, mais ne garantit pas que chaque option de Chat Completions soit mappée proprement. Le guide de compatibilité OpenAI de Perplexity fait autorité concernant les champs de requête et de réponse pris en charge.
Deux détails de production sont importants ici :
- La recherche Web est facultative. Une requête contenant uniquement
modeletinpututilise les connaissances du modèle et ne renvoie aucune citation ; utilisez un niveau d’effort ou un outilweb_searchlorsque la fraîcheur et les sources sont importantes. - Conservez la structure
output, et pas seulementoutput_text, à la frontière de votre application. Les citations, l’activité des outils, le statut, l’utilisation et l’ID de réponse sont des données opérationnelles — et non une simple décoration pour l’interface utilisateur.
Avant de coder en dur un identifiant de modèle, interrogez GET /v1/models dans votre workflow de déploiement ou consultez le catalogue actuel des modèles de l’Agent API. Perplexity documente cet endpoint dans un format compatible avec OpenAI, ce qui le rend utile pour les listes d’autorisation et les vérifications de version.
Utilisez l’Orchestrator API lorsque vous avez besoin de compatibilité avec Chat Completions
L’API Perplexity AI propose une seconde voie compatible avec OpenAI pour un usage différent. L’Orchestrator API utilise le format Chat Completions et une URL de base différente :
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["PERPLEXITY_API_KEY"],
base_url="https://api.perplexity.ai/orchestrator/v1",
)
completion = client.chat.completions.create(
model=os.environ["PPLX_ORCHESTRATOR_MODEL"],
max_tokens=500,
messages=[
{"role": "user", "content": "Summarize these notes in five bullets."}
],
)
print(completion.choices[0].message.content)
Utilisez une variable d’environnement pour l’ID du modèle et validez-le dans la CI ou lors d’une vérification de version. La disponibilité du catalogue, les alias et les grilles tarifaires changent plus souvent que votre code applicatif ne le devrait. L’erreur principale à éviter consiste à considérer l’Agent API et l’Orchestrator API comme interchangeables :
- Agent API :
https://api.perplexity.ai/v1+responses.create(). - Orchestrator API :
https://api.perplexity.ai/orchestrator/v1+chat.completions.create().
Si votre objectif est d’obtenir une réponse actuelle avec des citations, ne basculez pas vers Chat Completions simplement parce que ce client vous est familier. Si votre objectif est une migration directe d’OpenAI Chat Completions pour le catalogue hébergé de modèles à poids ouverts, ne le pointez pas vers l’URL de base de l’Agent. Le guide de démarrage rapide de Perplexity présente les deux modèles.
Tarification de l’API Perplexity AI : calculez l’intégralité de la requête
La manière pratique de budgétiser l’API Perplexity AI consiste à séparer les frais liés aux jetons des frais liés aux outils ou aux requêtes. La grille tarifaire exacte est en temps réel et spécifique à chaque modèle ; utilisez donc la page de tarification comme donnée d’entrée pour le déploiement, et non comme un chiffre que vous copiez dans une diapositive une fois par trimestre.
| Surface | Modèle de facturation | Implication en production |
|---|---|---|
| Orchestrator API | Tarifs par modèle pour les jetons d’entrée, de sortie et lus depuis le cache ; les jetons de raisonnement sont facturés au tarif de sortie ; pas de frais par requête | Estimez à partir des jetons d’entrée, de sortie et de cache mesurés. |
| Modèle Agent API | Tarification transparente basée sur les jetons selon le fournisseur/modèle sélectionné | Enregistrez l’utilisation renvoyée et le modèle sélectionné pour chaque requête visible par l’utilisateur. |
Agent web_search |
Standard : 0,0025 $/invocation ; Fast Search : 0,001 $/invocation | Rendez l’accès au Web intentionnel ; il s’agit d’une ligne de coût distincte. |
Agent fetch_url |
0,0005 $/invocation | Plafonnez les récupérations d’URL dans les boucles d’agents. |
| Sandbox Agent | 0,03 $/session, plus les requêtes de recherche SDK | Traitez une session sandbox comme une ressource distincte. |
| Search API | 5,00 $ pour 1 000 requêtes standard réussies ; 1,00 $ pour 1 000 requêtes Fast Search réussies | Une requête contenant jusqu’à cinq recherches correspond à une unité de facturation de requête réussie. |
Les tarifs ci-dessus ont été vérifiés le 24 octobre 2026. La page officielle de tarification et le catalogue de modèles de l’Agent API doivent être consultés à nouveau avant de définir une marge, un quota client ou une alerte budgétaire.
Une formule de planification utile est :
request_cost =
(input_tokens / 1,000,000 × input_rate) +
(output_tokens / 1,000,000 × output_rate) +
(cache_read_tokens / 1,000,000 × cache_read_rate) +
tool_invocations × tool_rate +
search_requests × search_request_rate
N’estimez pas une réponse issue de recherches à partir des seuls jetons de sortie. Les workflows d’agents peuvent utiliser le contexte d’entrée, les jetons de sortie/de raisonnement et les appels d’outils. Stockez chacune de ces dimensions avec votre ID de locataire, le nom de la fonctionnalité, le modèle demandé, le modèle final et l’ID de réponse. Ce même modèle d’événement rend les comparaisons de prix des modèles d’IA bien plus pertinentes que la comparaison des seuls prix catalogue.
Créez un workflow d’API Perplexity AI prêt pour la production
1. Faites de la surface d’API une décision produit explicite
Définissez un petit adaptateur par surface, tel que perplexity_agent, perplexity_search et perplexity_orchestrator. Ne masquez pas leurs différents types de réponse derrière une fonction générique chat() avant d’avoir décidé du traitement des citations, des résultats de recherche, de l’utilisation et des événements d’outils.
Pour une réponse de recherche destinée aux clients, votre adaptateur doit renvoyer au minimum :
answer_text, citations, response_id, status, requested_model,
served_model, input_tokens, output_tokens, tool_calls, cost, latency_ms
Pour Search brut, renvoyez les résultats séparément de toute synthèse ultérieure. Cela préserve la provenance et permet de changer le modèle de rédaction sans modifier silencieusement le fournisseur de recherche.
2. Traitez les citations comme des données à préserver
Lorsque votre requête vers l’API Perplexity AI utilise la recherche web, affichez les sources citées à côté de l’affirmation qu’elles étayent. Enregistrez l’URL source renvoyée, le titre lorsqu’il est fourni, ainsi que l’ID de réponse utilisé pour créer la réponse. Une réponse conviviale sans sources vérifiables ne suffit pas pour une fonctionnalité de recherche, un agent de support ou un flux de décision interne.
Définissez votre politique avant le lancement :
- Exigez-vous au moins une source primaire pour une réponse factuelle ?
- Supprimerez-vous une affirmation lorsqu’aucune citation ne l’étaye ?
- Un utilisateur peut-il ouvrir l’URL citée avant d’agir sur la base de la réponse ?
- Combien de temps conservez-vous les métadonnées des sources et les enregistrements de réponse ?
3. Prévoyez un budget pour des fenêtres glissantes de débit, pas pour un seul chiffre de « requêtes par minute »
L’API Agent de Perplexity documente une limite de requêtes à l’échelle de l’organisation, partagée entre les appels Agent, les interrogations d’état, les opérations d’annulation/reprise et les téléchargements de fichiers. Elle documente également des limites de jetons par modèle sur des fenêtres glissantes d’une minute et d’une heure. L’interrogation d’état n’est pas gratuite : à un niveau d’offre inférieur, interroger une requête asynchrone une fois par seconde peut consommer toute l’allocation de requêtes.
Pour les réponses 429, respectez Retry-After. Pour les erreurs overloaded liées à la capacité, appliquez un backoff exponentiel avec gigue et utilisez une liste de repli documentée uniquement lorsque le produit peut accepter en toute sécurité un modèle différent. Ne réessayez pas les erreurs d’authentification, de validation ou de configuration de quota comme si elles étaient transitoires. Consultez les instructions relatives aux limites de débit et aux niveaux d’utilisation de Perplexity pour connaître les seuils actuels et la sémantique des réponses.
Pseudocode pour une politique de nouvelle tentative limitée :
for attempt in range(3):
try:
return call_perplexity()
except RateLimitError as error:
wait_seconds = retry_after_or_jittered_backoff(error, attempt)
sleep(wait_seconds)
except TransientCapacityError:
sleep(jittered_backoff(attempt))
raise ServiceTemporarilyUnavailable()
Limitez le nombre de tentatives, utilisez une échéance de bout en bout et rendez visible l’état de repli de l’appelant. Des tentatives qui transforment une requête de recherche lente en un indicateur de chargement de 90 secondes ne constituent pas de la fiabilité.
4. Journalisez suffisamment d’informations pour diagnostiquer ensemble les coûts, la qualité et la fraîcheur
Suivez l’ID de requête, la famille d’endpoint, le modèle, le niveau d’effort, la liste des outils, le délai jusqu’au premier jeton, le temps de finalisation, les dimensions de jetons, le nombre d’appels d’outils, le statut HTTP, le nombre de tentatives et une classification sûre des erreurs. Pour les réponses avec citations, suivez le nombre de citations et les domaines sources. Pour Search, suivez le nombre de requêtes et le nombre de résultats.
Cela vous donne les éléments nécessaires pour répondre à des questions telles que : « La latence a-t-elle augmenté parce que nous avons activé la recherche ? », « Quel tenant dépense pour des sessions sandbox ? » et « Un repli a-t-il amélioré la disponibilité tout en réduisant la couverture des citations ? » Pour une architecture plus générale, consultez le guide de passerelle d’API IA et le guide des limites de débit des LLM.
5. Planifiez une migration Sonar si vous avez du code existant
Les instructions de migration actuelles de Perplexity indiquent que la prise en charge de Sonar Chat Completions a pris fin le 27 septembre 2026. Elles recommandent l’API Agent pour les nouveaux projets ; les requêtes existantes synchrones et en streaming sont progressivement reformulées, tandis que les requêtes Sonar asynchrones ne sont plus prises en charge. Si vous appelez encore un endpoint Sonar, testez dès maintenant un adaptateur d’API Agent au lieu de découvrir une rupture asynchrone en production. Lisez le guide de migration.
API Perplexity directe ou passerelle multi-modèles distincte ?
Utilisez une intégration directe de l’API Perplexity AI lorsque la fonctionnalité dépend d’Agent, de Search, des citations, des niveaux d’effort ou du comportement d’API propres à Perplexity. Cela rend le contrat de production clair.
Utilisez une passerelle multi-modèles distincte uniquement pour les modèles et endpoints que cette passerelle répertorie actuellement comme pris en charge. Par exemple, Flatkey documente une URL de base compatible OpenAI à l’adresse https://router.flatkey.ai/v1 pour son catalogue pris en charge et un tableau de bord d’utilisation par requête. Son répertoire public de modèles doit être vérifié en direct avant de supposer qu’un fournisseur ou un modèle est disponible. Commencez avec le guide de démarrage rapide de l’API Flatkey.
Pour les équipes ayant besoin des deux, utilisez deux clients explicites :
| Exigence | Frontière client recommandée |
|---|---|
| Recherche web ancrée dans des sources Perplexity et citations | Client direct Perplexity Agent/Search |
| Modèles non-Perplexity pris en charge avec une URL de base compatible unique et des contrôles d’utilisation consolidés | Client Flatkey |
| Le produit a besoin des deux dans un même flux de travail | Un routeur au niveau de l’application avec des adaptateurs typés, des listes d’autorisation de modèles indépendantes et un schéma commun d’événements d’observabilité |
N’acheminez pas un endpoint Perplexity direct via un autre service, sauf si sa documentation actuelle prend explicitement en charge cette voie. L’objectif n’est pas de forcer chaque appel à passer par une seule couche ; il est de préserver les capacités et le comportement de facturation dont votre fonctionnalité dépend réellement.
Checklist de lancement en production
- [ ] Chaque fonctionnalité a sélectionné intentionnellement l’Agent, l’Orchestrateur, la Recherche, les Embeddings ou les Décisions.
- [ ] Les clés API sont côté serveur, limitées par environnement et absentes des bundles clients et des journaux.
- [ ] L’URL de base de l’Agent (
/v1) et l’URL de base de l’Orchestrateur (/orchestrator/v1) ne sont pas confondues. - [ ] Les ID de modèles et les grilles tarifaires en vigueur sont validés lors d’une vérification de publication.
- [ ] La recherche web est explicitement activée uniquement lorsque la fraîcheur des citations est utile.
- [ ] Les réponses citées conservent les métadonnées des sources et un ID de réponse.
- [ ] Les événements de coût incluent les dimensions de jetons et les nombres d’invocations d’outils ou de recherche.
- [ ]
429respecteRetry-After; les échecs transitoires de capacité utilisent un backoff exponentiel borné avec gigue. - [ ] Le polling est ralenti par backoff ou remplacé par un comportement de streaming/reconnexion.
- [ ] Un test par étapes couvre la qualité des sources, la latence, le coût, le comportement de nouvelle tentative et les solutions de repli visibles par l’utilisateur.
FAQ sur l’API Perplexity AI
L’API Perplexity AI est-elle compatible avec le SDK OpenAI ?
Oui, mais choisissez le format d’API correspondant. L’API Agent utilise le format OpenAI Responses à l’adresse https://api.perplexity.ai/v1 ; l’API Orchestrator utilise Chat Completions à l’adresse https://api.perplexity.ai/orchestrator/v1.
Chaque requête de l’API Agent effectue-t-elle une recherche sur le web et inclut-elle des citations ?
Non. Perplexity documente la recherche web comme une option à activer. Ajoutez un niveau d’effort ou l’outil web_search lorsque vous avez besoin d’une sortie fondée sur le web ; conservez la sortie structurée afin que votre application puisse afficher et auditer les citations.
Combien coûte l’API Perplexity AI ?
Cela dépend de l’interface API sélectionnée, du modèle, de l’utilisation des jetons, des lectures de cache, des jetons de raisonnement et des outils. Utilisez la grille tarifaire officielle en vigueur et mesurez l’utilisation réelle des requêtes. Une requête d’agent avec recherche activée comporte à la fois des composantes de coût liées aux jetons du modèle et aux outils.
Que dois-je faire après une erreur de limite de débit ?
Respectez Retry-After, régulez les nouvelles requêtes et utilisez un backoff exponentiel borné avec gigue. N’effectuez pas de polling agressif ; les interrogations de l’API Agent sont comptabilisées dans la limite de requêtes partagée de l’organisation.
Étape suivante
Commencez par un cas d’usage de production ciblé : une réponse de recherche avec citations, une fonctionnalité de recherche brute ou un appel de modèle compatible avec Chat Completions. Instrumentez-le avant d’augmenter le trafic. Si le reste de votre application a également besoin de modèles pris en charge derrière un client compatible avec OpenAI, explorez le catalogue de modèles de Flatkey et maintenez une séparation explicite au niveau du client.



