> ## Documentation Index
> Fetch the complete documentation index at: https://docs.spottracker.fr/llms.txt
> Use this file to discover all available pages before exploring further.

# Lister les entreprises identifiées

> Triées par score d’intention décroissant. `since` filtre sur la date de dernière visite (`lastSeen`).

Vos visiteurs identifiés, triés par score d'intention décroissant. La première page est celle des comptes les plus chauds.

<Card title="Première fois ? Commencez par l'authentification" icon="key" href="/authentification" horizontal>
  Chaque appel porte votre clé dans l'en-tête `Authorization`, schéma `Bearer`.
</Card>


## OpenAPI

````yaml GET /v1/companies
openapi: 3.0.0
info:
  title: API publique SpotTracker
  description: >-
    API de lecture des entreprises identifiées sur votre site, de leurs contacts
    et des leads qualifiés. Incluse à partir de l'offre Growth.
  version: '1'
  contact: {}
servers:
  - url: https://api.spottracker.fr
    description: Production
security: []
tags: []
paths:
  /v1/companies:
    get:
      tags:
        - api-v1
      summary: Lister les entreprises identifiées
      description: >-
        Triées par score d’intention décroissant. `since` filtre sur la date de
        dernière visite (`lastSeen`).
      operationId: listCompanies
      parameters:
        - name: limit
          required: false
          in: query
          schema:
            minimum: 1
            maximum: 200
            default: 50
            type: number
        - name: offset
          required: false
          in: query
          schema:
            minimum: 0
            default: 0
            type: number
        - name: since
          required: false
          in: query
          schema:
            format: date-time
            example: '2026-08-01T00:00:00Z'
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicCompanyPageDto'
        '401':
          description: >-
            Clé absente, invalide, révoquée, offre insuffisante ou workspace
            suspendu. Ces cas répondent à l’identique, volontairement :
            distinguer les motifs renseignerait un attaquant qui balaye des
            clés.
        '429':
          description: >-
            Limite de débit atteinte pour cette clé. L’en-tête `Retry-After`
            indique le nombre de secondes avant la prochaine fenêtre.
      security:
        - apiKey: []
components:
  schemas:
    PublicCompanyPageDto:
      type: object
      properties:
        total:
          type: number
          description: >-
            Nombre total d'éléments correspondant au filtre, toutes pages
            confondues.
          example: 137
        limit:
          type: number
          description: Taille de page effectivement appliquée.
          example: 50
        offset:
          type: number
          example: 0
        data:
          type: array
          items:
            $ref: '#/components/schemas/PublicCompanyDto'
      required:
        - total
        - limit
        - offset
        - data
    PublicCompanyDto:
      type: object
      properties:
        id:
          type: string
          example: clx3k9v2p0000qw8h1a2b3cde
        name:
          type: string
          example: Atelier Vermeil
        domain:
          type: string
          example: atelier-vermeil.fr
        industry:
          type: string
          example: Industrie
        size:
          type: string
          description: >-
            Tranche d'effectif, telle que fournie par la source
            d'identification.
          example: 50-200
        country:
          type: string
          example: France
        city:
          type: string
          example: Lyon
        revenue:
          type: string
          description: Tranche de chiffre d'affaires estimée.
          example: 10-50 M€
        siren:
          type: string
          nullable: true
          description: Numéro SIREN quand l'entreprise a pu être rapprochée du registre.
        intentScore:
          type: number
          description: >-
            Score d'intention de 0 à 100, dérivé des visites récentes avec

            décroissance sur 14 jours. Il dépend du profil de scoring du
            workspace :

            deux workspaces peuvent noter différemment la même entreprise.
          minimum: 0
          maximum: 100
          example: 78
        intentLevel:
          allOf:
            - $ref: '#/components/schemas/IntentLevel'
        icpScore:
          type: number
          description: Adéquation firmographique au profil de client idéal, de 0 à 100.
          minimum: 0
          maximum: 100
          example: 64
        commercialScore:
          type: number
          description: Synthèse commerciale combinant intention et adéquation, de 0 à 100.
          minimum: 0
          maximum: 100
          example: 71
        crmStatus:
          allOf:
            - $ref: '#/components/schemas/CrmStatus'
        visitsCount:
          type: number
          example: 12
        firstSeen:
          format: date-time
          type: string
        lastSeen:
          format: date-time
          type: string
        contacts:
          type: array
          items:
            $ref: '#/components/schemas/PublicContactDto'
      required:
        - id
        - name
        - domain
        - industry
        - size
        - country
        - city
        - revenue
        - intentScore
        - intentLevel
        - icpScore
        - commercialScore
        - crmStatus
        - visitsCount
        - firstSeen
        - lastSeen
        - contacts
    IntentLevel:
      type: string
      enum:
        - hot
        - warm
        - cold
    CrmStatus:
      type: string
      enum:
        - new
        - qualified
        - in_crm
        - contacted
        - won
        - lost
    PublicContactDto:
      type: object
      properties:
        id:
          type: string
          example: clx3k9v2p0001qw8h4m2n7abc
        name:
          type: string
          example: Camille Perrin
        jobTitle:
          type: string
          example: Directrice des opérations
        email:
          type: string
          nullable: true
          description: Renseigné uniquement si l'adresse a pu être trouvée ou fournie.
        phone:
          type: string
          nullable: true
          description: Ligne directe. `null` tant qu'aucune recherche n'a abouti.
        linkedin:
          type: string
          nullable: true
        seniority:
          allOf:
            - $ref: '#/components/schemas/Seniority'
      required:
        - id
        - name
        - jobTitle
        - seniority
    Seniority:
      type: string
      enum:
        - c_level
        - vp
        - director
        - manager
        - ic
  securitySchemes:
    apiKey:
      scheme: bearer
      type: http
      description: >-
        Clé d'API du workspace, préfixée `st_`. Elle se crée depuis
        Administration → Tracking et n’est affichée qu’une seule fois.

````