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

# Intégration Olostep + Apify

> Automatisez la recherche web, le scraping et le crawling avec les Acteurs Apify en utilisant Olostep — l’API pour rechercher, extraire et structurer les données web.

Olostep est une API de recherche, scraping et crawling Web — une API pour rechercher, extraire et structurer les données web. Ce guide montre comment utiliser Olostep avec les Acteurs Apify pour construire des pipelines de données web fiables de bout en bout.

## Ce que vous pouvez construire

<CardGroup cols={2}>
  <Card title="Scraper un site web" icon="file-lines">
    Extraire le contenu de n'importe quelle URL unique en Markdown, HTML, JSON ou Texte
  </Card>

  <Card title="Scraper des URLs en lot" icon="layer-group">
    Traiter de grandes listes d'URLs en parallèle avec des sorties structurées
  </Card>

  <Card title="Créer un Crawl" icon="spider-web">
    Découvrir et scraper des pages liées pour construire des ensembles de données complets
  </Card>

  <Card title="Créer une Carte" icon="map">
    Extraire toutes les URLs d'un site web (découverte type sitemap)
  </Card>

  <Card title="Réponses alimentées par l'IA" icon="robot">
    Poser des questions et obtenir des réponses JSON structurées avec sources
  </Card>
</CardGroup>

## Démarrage rapide

### 1) Installer Apify CLI

```bash theme={null}
npm install -g apify-cli
apify --version
```

### 2) Obtenez votre clé API Olostep

Depuis le Tableau de bord Olostep → Clés API.

### 3) Exécutez l'Acteur Olostep localement

```bash theme={null}
cd olostep-tools/integrations/apify
apify run
```

Le fichier d'entrée local par défaut se trouve à :
`olostep-tools/integrations/apify/storage/key_value_stores/default/INPUT.json`

Exemple d'entrée :

```json theme={null}
{
  "operation": "scrape",
  "apiKey": "YOUR_OLostep_API_KEY",
  "url_to_scrape": "https://example.com",
  "formats": "markdown"
}
```

### 4) Déployer sur Apify (cloud)

```bash theme={null}
apify login
apify push
```

Ensuite, ouvrez la Console Apify → Acteurs → exécutez l'acteur avec votre entrée souhaitée.

### Exécuter dans la Console Apify (étape par étape)

1. Ouvrez votre Acteur dans la Console Apify → Source → Entrée.
2. Dans l'onglet Manuel, vous verrez un champ visible “Clé API Olostep”. Collez votre clé depuis le Tableau de bord Olostep.
3. Choisissez une opération (par défaut “scrape”).
4. Remplissez les champs pertinents (pour “scrape”, définissez “URL à scraper”).
5. Cliquez sur Enregistrer → Démarrer.
6. Lorsque l'exécution est terminée, ouvrez l'onglet Ensemble de données pour télécharger les résultats (JSON/CSV/Excel).

Notes :

* Pour “URL à scraper”, vous pouvez coller avec ou sans schéma. S'il manque, l'acteur ajoute automatiquement `https://`.
* Si un site est lourd en JavaScript et que vous voyez un délai d'attente, définissez “Attendre avant de scraper” à 2000–5000 ms et réexécutez.

## Opérations disponibles

### Scraper un site web

Extraire le contenu d'une URL unique. Idéal pour l'automatisation au niveau de la page.

<ParamField path="operation" type="constant" default="scrape">
  Doit être "scrape"
</ParamField>

<ParamField path="apiKey" type="string" required>
  Votre clé API Olostep (Bearer)
</ParamField>

<ParamField path="url_to_scrape" type="string" required>
  L'URL à scraper (doit inclure http\:// ou https\://)
</ParamField>

<ParamField path="formats" type="dropdown" default="markdown">
  Un de : Markdown, HTML, JSON, Texte
</ParamField>

<ParamField path="country" type="string">
  Code pays optionnel (ex., "US", "GB", "CA")
</ParamField>

<ParamField path="wait_before_scraping" type="integer">
  Temps d'attente optionnel en ms pour le rendu JavaScript (0–10000)
</ParamField>

<ParamField path="parser" type="string">
  ID de parseur optionnel (ex., "@olostep/amazon-product")
</ParamField>

Champs de sortie :

* id, url, statut, formats
* markdown\_content / html\_content / json\_content / text\_content
* URLs hébergées (si disponibles), métadonnées de la page

### Scraper des URLs en lot

Traiter de nombreuses URLs à la fois avec un formatage et une structure cohérents.

<ParamField path="operation" type="constant" default="batch">
  Doit être "batch"
</ParamField>

<ParamField path="apiKey" type="string" required>
  Votre clé API Olostep
</ParamField>

<ParamField path="batch_array" type="text" required>
  Tableau JSON d'objets avec `url` et `custom_id` optionnel\
  Exemple : `[{"url":"https://example.com","custom_id":"site1"}]`
</ParamField>

<ParamField path="formats" type="dropdown" default="markdown">
  Un de : Markdown, HTML, JSON, Texte
</ParamField>

<ParamField path="country" type="string">
  Code pays optionnel
</ParamField>

<ParamField path="wait_before_scraping" type="integer">
  Temps d'attente optionnel en ms pour les sites JS
</ParamField>

<ParamField path="parser" type="string">
  ID de parseur optionnel
</ParamField>

Champs de sortie :

* batch\_id, statut, total\_urls, created\_at, formats, country, parser, urls\[]

### Créer un Crawl

Suivre des liens et scraper plusieurs pages à partir d'une URL de départ.

<ParamField path="operation" type="constant" default="crawl">
  Doit être "crawl"
</ParamField>

<ParamField path="apiKey" type="string" required>
  Votre clé API Olostep
</ParamField>

<ParamField path="start_url" type="string" required>
  URL de départ pour le crawl
</ParamField>

<ParamField path="max_pages" type="integer" default="10">
  Nombre maximum de pages à crawler. Définir à `1` pour scraper uniquement l'URL de départ.
</ParamField>

<ParamField path="formats" type="dropdown" default="markdown">
  Un de : Markdown, HTML, JSON, Texte
</ParamField>

<ParamField path="country" type="string">
  Code pays optionnel
</ParamField>

<ParamField path="parser" type="string">
  ID de parseur optionnel
</ParamField>

Champs de sortie :

* crawl\_id, objet, statut, start\_url, max\_pages, créé, formats

### Créer une Carte

Découvrir toutes les URLs sur un site web et préparer pour un scraping en lot ultérieur.

<ParamField path="operation" type="constant" default="map">
  Doit être "map"
</ParamField>

<ParamField path="apiKey" type="string" required>
  Votre clé API Olostep
</ParamField>

<ParamField path="website_url" type="string" required>
  Le site web à cartographier
</ParamField>

<ParamField path="search_query" type="string">
  Filtre de requête optionnel
</ParamField>

<ParamField path="top_n" type="integer">
  Limiter le nombre d'URLs
</ParamField>

<ParamField path="include_patterns" type="string">
  Inclure des glob(s), ex. "/products/\*\*"
</ParamField>

<ParamField path="exclude_patterns" type="string">
  Exclure des glob(s), ex. "/admin/\*\*"
</ParamField>

Champs de sortie :

* map\_id, objet, website\_url, total\_urls, urls\[], search\_query, top\_n

## Exemples JSON à copier-coller (Console → Entrée → JSON)

### Scraper

```json theme={null}
{
  "operation": "scrape",
  "apiKey": "YOUR_OLOSTEP_API_KEY",
  "url_to_scrape": "https://www.wikipedia.org",
  "formats": "markdown",
  "wait_before_scraping": 2000
}
```

### Lot

```json theme={null}
{
  "operation": "batch",
  "apiKey": "YOUR_OLOSTEP_API_KEY",
  "batch_array": "[{\"url\":\"https://example.com\",\"custom_id\":\"site1\"},{\"url\":\"https://olostep.com\",\"custom_id\":\"site2\"}]",
  "formats": "json"
}
```

### Crawl

```json theme={null}
{
  "operation": "crawl",
  "apiKey": "YOUR_OLOSTEP_API_KEY",
  "start_url": "https://docs.example.com",
  "max_pages": 50,
  "formats": "markdown"
}
```

### Carte

```json theme={null}
{
  "operation": "map",
  "apiKey": "YOUR_OLOSTEP_API_KEY",
  "website_url": "https://example.com",
  "include_patterns": "/blog/**",
  "top_n": 200
}
```

### Réponses

```json theme={null}
{
  "operation": "answers",
  "apiKey": "YOUR_OLOSTEP_API_KEY",
  "task": "What is the latest funding round of Olostep? Provide company, round, date, amount.",
  "json": "{\"company\":\"\",\"round\":\"\",\"date\":\"\",\"amount\":\"\"}"
}
```

## Exemples de flux de travail

<AccordionGroup>
  <Accordion title="Découvrir et Scraper des Produits">
    1. Créer une Carte → inclure "/products/\*\*"
    2. Analyser les URLs → construire un tableau de lot
    3. Scraper des URLs en lot → formats : JSON
    4. Envoyer à Google Sheets / Airtable
  </Accordion>

  <Accordion title="Surveillance de Contenu Quotidienne">
    1. Programmer l'acteur (quotidiennement)
    2. Scraper un site web → formats : Markdown
    3. Résumer avec LLM
    4. Notifier sur Slack
  </Accordion>

  <Accordion title="Base de Connaissances Concurrentielle">
    1. Créer un Crawl (blog/docs)
    2. Stocker les sorties dans Notion
    3. Rafraîchir chaque semaine avec Schedule
  </Accordion>
</AccordionGroup>

## Parseurs spécialisés

Olostep prend en charge des parseurs pour structurer les données pour les sites populaires.

<CardGroup cols={2}>
  <Card title="Produit Amazon" icon="amazon">
    `@olostep/amazon-product` → titre, prix, évaluation, avis, images, variantes
  </Card>

  <Card title="Recherche Google" icon="google">
    `@olostep/google-search` → résultats, titres, extraits, URLs
  </Card>

  <Card title="Google Maps" icon="map">
    `@olostep/google-maps` → infos entreprise, avis, évaluations, emplacement
  </Card>

  <Card title="Plus de Parseurs" icon="cart-shopping" href="https://www.olostep.com/store">
    Explorez les extracteurs d'emails, les chercheurs de réseaux sociaux, les extracteurs de liens de calendrier, et plus encore
  </Card>
</CardGroup>

## Bonnes pratiques

<AccordionGroup>
  <Accordion title="Préférez le lot pour 3+ URLs">
    Plus rapide, moins cher, plus facile à surveiller et respecte les limites de taux.
  </Accordion>

  <Accordion title="Utilisez des temps d'attente appropriés">
    Sites lourds en JS : augmentez `wait_before_scraping` (ex., 2000–5000ms).
  </Accordion>

  <Accordion title="Filtrer avant de scraper">
    Évitez les tâches inutiles — vérifiez les changements d'abord, gardez l'état de déduplication.
  </Accordion>

  <Accordion title="Stockez le contenu volumineux via des URLs hébergées">
    Utilisez des sorties hébergées pour contourner les limites de taille de charge utile dans les flux Apify.
  </Accordion>

  <Accordion title="Traitez les opérations asynchrones comme longues">
    Lot/Crawl/Carte renvoient des IDs ; récupérez-les plus tard ou enchaînez avec un délai.
  </Accordion>

  <Accordion title="Gérez proprement les délais d'attente transitoires">
    Si vous voyez un 504 ou un délai d'attente transitoire, l'acteur réessaie automatiquement une fois avec un court temps d'attente.\
    Vous pouvez également définir “Attendre avant de scraper” à 2000–5000 ms pour les pages lourdes en JS.
  </Accordion>
</AccordionGroup>

## Dépannage

<AccordionGroup>
  <Accordion title="Échec de l'authentification">
    * Vérifiez la clé API depuis le tableau de bord
    * Supprimez les espaces de fin
    * Renseignez à nouveau dans le formulaire d'entrée Apify
  </Accordion>

  <Accordion title="Contenu vide">
    * Augmentez le temps d'attente
    * Vérifiez que l'URL est publique / non protégée par connexion
    * Essayez un format de sortie différent
  </Accordion>

  <Accordion title="Limite de taux dépassée">
    * Espacer les exécutions via un programme
    * Préférez le lot pour de nombreuses URLs
    * Mettez à niveau le plan Olostep si nécessaire
  </Accordion>

  <Accordion title="Sites bloqués ou dynamiques">
    * Essayez le paramètre de pays
    * Ajustez l'attente et le parseur
    * Contactez le support pour des conseils
  </Accordion>
</AccordionGroup>

## Tarification

Olostep facture par utilisation de l'API (indépendamment d'Apify) :

* Scrapes → par scrape
* Lots → par URL
* Crawls → par page
* Cartes → par opération

Voir `https://www.olostep.com/pricing`.

## Sécurité

* Votre clé API est envoyée en tant que jeton Bearer à l'exécution.
* Ne pas commettre de clés dans le contrôle de version ; Apify stocke les entrées dans le Key‑Value Store.
* En développement local, gardez les clés dans `storage/key_value_stores/default/INPUT.json` (ignoré par git).

## Ressources associées

<CardGroup cols={2}>
  <Card title="API Scrapes" icon="file-lines" href="/features/scrapes">
    Extraire du Markdown, HTML, texte ou JSON structuré compatible LLM à partir de n'importe quelle URL.
  </Card>

  <Card title="API Batches" icon="layer-group" href="/features/batches">
    Traitez jusqu'à 10k URLs simultanément et récupérez les résultats plus tard.
  </Card>

  <Card title="API Crawls" icon="spider-web" href="/features/crawls">
    Découvrez et scrapez récursivement le contenu d'un site.
  </Card>

  <Card title="API Maps" icon="map" href="/features/maps">
    Obtenez toutes les URLs d'un site web pour préparer des scrapes en lot.
  </Card>
</CardGroup>

## Support

<CardGroup cols={2}>
  <Card title="Site Web Apify" icon="link" href="https://apify.com">
    Plateforme Apify
  </Card>

  <Card title="Docs Apify" icon="book" href="https://docs.apify.com">
    Documentation de la plateforme & SDK Apify
  </Card>

  <Card title="Documentation" icon="book" href="https://docs.olostep.com">
    Documentation complète de l'API
  </Card>

  <Card title="Email de Support" icon="envelope" href="mailto:info@olostep.com">
    [info@olostep.com](mailto:info@olostep.com)
  </Card>
</CardGroup>
