# SERP API avec curl et jq : recettes en une ligne

> Recettes curl et jq pour SerpCrypto : 10 liens, People Also Ask, AI Overviews, pack local et Maps, plus version PowerShell.

- URL: https://serpcrypto.com/fr/docs/curl/
- Dernière mise à jour: 2026-10-22
- Éditeur: SerpCrypto (https://serpcrypto.com)

Le moyen le plus rapide de voir ce que renvoie l'API, c'est un terminal. Ces recettes n'affichent qu'une seule chose chacune : liens, questions, sources ou commerces locaux. Elles fonctionnent dans bash et zsh ; une version PowerShell clôt la page.

**Réponse rapide — Comment interroger une SERP API avec curl ?**

Lancez `curl -sG "https://serpcrypto.com/api/v1/search" -H "Authorization: Bearer $KEY" --data-urlencode "q=your query"` et passez le JSON à `jq`. Avec **SerpCrypto**, chaque requête réussie coûte 1 crédit, à partir de 0,30 $US/1K requêtes, et les erreurs sont gratuites. `-G` transforme les paramètres de données en query string. Les crédits se paient en crypto, sans KYC.

## Quels flags curl sont importants ici ?

Définissez la clé une fois par shell avec `export SERPCRYPTO_API_KEY=…`. Installez `jq` depuis votre gestionnaire de paquets s'il est absent.

| Flag | Pourquoi |
| --- | --- |
| `-s` | Silencieux : aucune barre de progression mélangée au JSON. |
| `-G` | Envoie les valeurs `-d` et `--data-urlencode` sous forme de query string sur une requête GET. |
| `--data-urlencode` | Encode les espaces, les guillemets et les accents dans `q` et `location`. |
| `-H "Authorization: Bearer …"` | Votre clé API. Gardez-la dans une variable d'environnement. |
| `-w '%{http_code}'` | Affiche le statut HTTP, utile quand un appel échoue. |

## Comment afficher les 10 premiers liens pour un mot-clé ?

Demandez les résultats organiques et laissez `jq` afficher la position et le lien de chacun, séparés par une tabulation. La forme `[]?` n'affiche rien au lieu d'échouer quand un bloc est absent, ce qui garde les scripts silencieux sur les pages inhabituelles.

*Top 10 des liens*

```bash
# Top 10 organic links, one per line
curl -sG "https://serpcrypto.com/api/v1/search" \
  -H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
  --data-urlencode "q=kubernetes cost monitoring" -d gl=us -d hl=en \
  | jq -r '.organic_results[]? | "\(.position)\t\(.link)"'
```

## Comment lister les questions People Also Ask ?

Lisez `people_also_ask[].question`. Les questions suivent la langue de `hl` et changent selon le pays de `gl`, alors lancez la même requête dans chaque marché pour lequel vous rédigez. Les équipes éditoriales collent cette liste directement dans un brief.

*People Also Ask*

```bash
# People Also Ask questions, ready for a content brief
curl -sG "https://serpcrypto.com/api/v1/search" \
  -H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
  --data-urlencode "q=how to brew cold brew" -d gl=gb -d hl=en \
  | jq -r '.people_also_ask[]?.question'
```

## Comment voir quelles sources un AI Overview cite ?

Lisez `ai_overview.references`. Le bloc n'existe que lorsque Google affiche un AI Overview pour cette requête et ce lieu, sinon la recette affiche un message clair. Suivre ces sources dans le temps montre si vos pages sont citées dans les réponses générées par Google.

*Sources de l'AI Overview*

```bash
# Sources cited by the AI Overview, if the page shows one
curl -sG "https://serpcrypto.com/api/v1/search" \
  -H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
  --data-urlencode "q=what is a heat pump" -d gl=us -d hl=en \
  | jq -r 'if .ai_overview then .ai_overview.references[] | "\(.index)\t\(.source)\t\(.link)" else "no AI Overview for this query" end'
```

## Comment obtenir le pack local et la liste Maps ?

Une recherche web avec `location` renvoie le pack local affiché sur la page de résultats, généralement quelques établissements. `engine=google_maps` renvoie la liste Maps plus longue avec adresse, note et nombre d'avis, que `@tsv` transforme en lignes pour un tableur. Les deux coûtent 1 crédit chacun.

*Pack local, puis Google Maps*

```bash
# Local pack in a city, then the full Maps list for the same query
curl -sG "https://serpcrypto.com/api/v1/search" \
  -H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
  --data-urlencode "q=vegan restaurant" \
  --data-urlencode "location=Toronto, Ontario, Canada" -d gl=ca -d hl=en \
  | jq -r '.local_results[]? | "\(.position)\t\(.title)\t\(.rating // "-")"'

curl -sG "https://serpcrypto.com/api/v1/search" \
  -H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
  -d engine=google_maps --data-urlencode "q=vegan restaurant Toronto" -d gl=ca -d hl=en \
  | jq -r '.local_results[]? | [.title, .address, .rating, .reviews] | @tsv'
```

## Comment voir l'erreur quand un appel échoue ?

Ajoutez `-w '\nHTTP %{http_code}\n'` pour afficher le statut après le corps. Un corps d'erreur est un petit JSON avec `code` et `message` ; la [page des erreurs](https://serpcrypto.com/fr/docs/errors/) liste les six codes. La seconde commande lit vos crédits, ce qui est gratuit.

*Code de statut et crédits*

```bash
# Print the body, then the HTTP status on its own line
curl -sG "https://serpcrypto.com/api/v1/search" \
  -H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
  --data-urlencode "q=test" -w '\nHTTP %{http_code}\n'

# Credits left (free call)
curl -s "https://serpcrypto.com/api/v1/credits" -H "Authorization: Bearer $SERPCRYPTO_API_KEY" | jq .
```

## Quel est l'équivalent PowerShell sur Windows ?

`Invoke-RestMethod` envoie la requête et parse le JSON en objets, vous n'avez donc pas besoin de `jq`. Passez les paramètres sous forme de hashtable dans `-Body` : avec une requête GET, PowerShell les encode dans la query string. `Format-Table` affiche ensuite positions, titres et liens.

*PowerShell*

```powershell
# Windows PowerShell 5.1 or PowerShell 7
$headers = @{ Authorization = "Bearer $env:SERPCRYPTO_API_KEY" }
$query = @{ q = "kubernetes cost monitoring"; gl = "us"; hl = "en" }
$data = Invoke-RestMethod -Uri "https://serpcrypto.com/api/v1/search" -Headers $headers -Body $query -Method Get
$data.organic_results | Select-Object position, title, link | Format-Table -AutoSize
```

## Quand passer de curl au code ?

Dès que vous répétez une commande avec une liste de mots-clés. Une boucle shell fonctionne pour quelques dizaines de recherches, mais les retries, le parallélisme et le stockage sont plus simples en [Python](https://serpcrypto.com/fr/docs/python/) ou en [Node.js](https://serpcrypto.com/fr/docs/node/). Les requêtes sont identiques, donc une recette testée ici se transpose telle quelle. Chaque recherche reste à 1 crédit, à 0,75 $US/1K requêtes sur le pack 10 000 recherches.

## questions curl

### Pourquoi ma requête renvoie-t-elle une erreur 400 dans curl ?

Généralement parce que `q` a été envoyé avec `-d` et contient un caractère à encoder. Utilisez `--data-urlencode "q=…"` pour la requête et pour `location` ; les codes simples comme `gl=us` peuvent rester avec `-d`.

### Puis-je enregistrer le JSON complet dans un fichier ?

Oui : ajoutez `-o result.json` au lieu de rediriger vers `jq`. Enregistrer les réponses brutes vous permet de les re-parser plus tard sans repayer la recherche.

### curl sur Windows fonctionne-t-il de la même façon ?

Windows 10 et 11 incluent `curl.exe`, et les flags sont identiques. Les guillemets diffèrent dans `cmd.exe`, donc PowerShell avec `Invoke-RestMethod` est généralement plus simple là-bas.

---

SerpCrypto: SerpCrypto est une API SERP pour les développeurs et les agents IA qui renvoie les résultats de recherche Google et Bing en JSON, payable en crypto sans envoi de pièce d'identité. Les crédits de recherche prépayés à partir de 0,30 $US/1K requêtes n'expirent jamais. Sans KYC — pas de pièce d'identité, pas de selfie, pas de documents. Payer en crypto.
