Ce document décrit comment l’app mobile appelle ProspectLab. La référence complète des routes, permissions, cache serveur et exemples cURL est le Guide de l’API publique.
Base URL (definir via EXPO_PUBLIC_PROSPECTLAB_BASE_URL, sans slash final)
- developpement local : typiquement
http://localhost:5000ou IP LAN du poste (ex.http://192.168.x.x:5000) - production :
https://<votre-domaine>(HTTPS recommande)
Prefix : EXPO_PUBLIC_PROSPECTLAB_API_PUBLIC_PREFIX (defaut /api/public).
Auth
- Recommande : header
Authorization: Bearer <token> - Evite sur mobile :
?api_token=<token>(fuite possible via logs / historique)
Permissions du token (champs en base) : lecture entreprises, emails, statistiques, campagnes, et éventuellement entreprises_delete pour la suppression PERMANENTE. Une route peut exiger une ou plusieurs permissions ; une route peut aussi n'exiger qu'un token valide (ex. metadonnees du token).
- Serveur : les reponses
GETde plusieurs routes sont mises en cache en memoire (TTL par route, cle par token + chemin + query). Desactiver :PUBLIC_API_RESPONSE_CACHE=false. Voir commentaires dansconfig.py. - Application mobile : cache memoire TTL sur les appels
ProspectLabApi.*;skipCache: truesur pull-to-refresh / actions explicites ; vidage a la suppression du token.
Toutes les URLs ci-dessous sont relatives au prefixe /api/public.
| Methode | Chemin | Permission | Description |
|---|---|---|---|
| GET | /token/info |
Token valide uniquement | Nom du token, apercu masque, permissions booleennes, user_id, last_used, date_creation. |
| Methode | Chemin | Permission | Description |
|---|---|---|---|
| GET | /statistics |
statistics |
Statistiques globales detaillees (dashboard web / export). |
| GET | /statistics/overview?days=7 |
statistics |
Vue mobile : totaux (total_entreprises, total_analyses, total_campagnes, total_emails, emails_envoyes) et serie trend_entreprises (date, count) sur days jours (max 90). |
| Methode | Chemin | Permission | Description |
|---|---|---|---|
| GET | /entreprises/statuses |
entreprises |
Statuts entreprise supportes (workflow, webhooks, etc.). |
| GET | /reference/ciblage |
entreprises |
Listes distinctes : secteurs, opportunites, statuts (champ entreprise), tags. |
| GET | /reference/ciblage/counts |
entreprises |
Memes dimensions avec effectifs { value, count } pour facettes / pickers. |
| GET | /campagnes/statuses |
campagnes |
Valeurs de statut campagne : draft, scheduled, running, completed, failed. |
| Methode | Chemin | Permission | Description |
|---|---|---|---|
| GET | /entreprises |
entreprises |
Liste paginee (limit, offset, search, secteur, statut). |
| GET | /entreprises/<id> |
entreprises |
Detail d'une entreprise. |
| DELETE | /entreprises/<id> |
entreprises + entreprises_delete |
Suppression PERMANENTE d'une entreprise (cascades incluses). |
| GET | /entreprises/by-website?website=... |
entreprises |
Recherche par site. |
| GET | /entreprises/by-email?email=...&include_emails= |
entreprises + emails |
Recherche par email. |
| GET | /entreprises/by-phone?phone=...&include_phones= |
entreprises |
Recherche par telephone. |
| GET | /entreprises/<id>/emails |
entreprises + emails |
Emails simplifies. |
| GET | /entreprises/<id>/emails/all?include_primary= |
entreprises + emails |
Tous les emails enrichis. |
| GET | /entreprises/<id>/phones?include_primary= |
entreprises |
Nouveau : telephones scrapes + principal. |
| GET | /entreprises/<id>/campagnes |
campagnes |
Campagnes liees a l'entreprise. |
| PATCH/POST | /entreprises/<id>/statut |
entreprises |
Mise a jour statut (voir doc serveur). |
| POST | /entreprises/<id>/unsubscribe |
entreprises |
Evenements de cycle de vie (bounce, reply, etc.) — voir routes dediees dans api_public.py. |
| Methode | Chemin | Permission | Description |
|---|---|---|---|
| GET | /emails |
emails |
Liste paginee (limit, offset, entreprise_id optionnel). |
| Methode | Chemin | Permission | Description |
|---|---|---|---|
| GET | /website-analysis?website=...&full= |
entreprises |
Rapport SEO / technique / pentest / OSINT (agrege). |
| POST | /website-analysis |
entreprises |
Lance les taches d'analyse ; reponse typique 202 avec ids de taches. |
| Methode | Chemin | Permission | Description |
|---|---|---|---|
| POST | /push/register |
Token valide uniquement | Enregistre un jeton Expo Push (expo_push_token, platform, installation_id optionnel). Requiert que le serveur expose bien cette route (deploy a jour + reverse proxy qui autorise POST sur /api/public/...). |
| DELETE | /push/register |
Token valide uniquement | Retire le jeton (corps JSON : expo_push_token). |
| Methode | Chemin | Permission | Description |
|---|---|---|---|
| GET | /campagnes |
campagnes |
Liste (limit, offset, statut, entreprise_id). |
| GET | /campagnes/<id> |
campagnes |
Detail campagne. |
| GET | /campagnes/<id>/emails |
campagnes |
Emails envoys (avec pagination interne / filtres). |
| GET | /campagnes/<id>/statistics |
campagnes |
Statistiques de tracking. |
Fichier : mobile/src/features/prospectlab/prospectLabApi.ts.
Methodes principales alignees sur les endpoints : getTokenInfo, getStatistics, getStatisticsOverview, getReferenceCiblage, getReferenceCiblageCounts, getCampagneStatuses, listEntreprises, getEntreprise, lookups by website/email/phone, listEntrepriseEmailsAll, listEntreprisePhones, listCampagnes, listCampagnesByEntreprise, getWebsiteAnalysis, launchWebsiteAnalysis, registerExpoPush, unregisterExpoPush, etc. Le dernier argument optionnel { skipCache?: boolean } controle le cache client.
401: token manquant ou invalide.403: token valide mais permission manquante pour la route.404: ressource absente (entreprise, rapport d'analyse, etc.).405surPOST /push/register: route absente cote serveur (deploy non a jour) ou reverse proxy qui ne transmet pas POST vers l'app ; verifier nginx / chemins/api/public.- CORS : uniquement pertinent pour Expo Web ; l'app native ne depend pas des en-tetes CORS.
- Guide de l’API publique (serveur) — tableau unique des endpoints, détail des permissions, cache
PUBLIC_API_RESPONSE_CACHE, admin tokens - Index mobile — navigation dans toute la doc mobile
- Index documentation — menu général du dépôt
Objectif : enrichir la fiche quand l'OCR est partiel (ex. nom + ville).
Regles : pas de cles en dur dans l'app ; feature flags et timeouts courts.
Exemples envisageables plus tard : annuaires d'entreprises, DNS/WHOIS publics, etc.