Get Results
curl --request GET \
--url https://api.lobstr.io/v1/results \
--header 'Authorization: <authorization>'import requests
url = "https://api.lobstr.io/v1/results"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.lobstr.io/v1/results', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.lobstr.io/v1/results",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.lobstr.io/v1/results"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.lobstr.io/v1/results")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lobstr.io/v1/results")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"message_id": "<string>",
"message_text": "<string>",
"message_type": "<string>",
"template_id": "<string>",
"message_sent_at": {},
"direction": "<string>",
"is_outgoing": true,
"is_read": true,
"is_partner_read": true,
"attachments_count": 123,
"attachments": "<any>",
"sender_id": "<string>",
"sender_name": "<string>",
"conversation_id": "<string>",
"conversation_url": "<string>",
"annonce_id": "<string>",
"ad_title": "<string>",
"ad_status": "<string>",
"ad_category_id": "<string>",
"ad_image": "<string>",
"ad_owner_id": "<string>",
"ad_owner_type": "<string>",
"counterparty_id": "<string>",
"counterparty_name": "<string>",
"last_message_sent_at": {},
"last_message_preview": "<string>",
"last_message_attachments_count": 123,
"unseen_counter": 123,
"is_unread": true
}Leboncoin Messages Reader
Get Results
Retrieve scraped data from Leboncoin Messages Reader
GET
/
v1
/
results
Get Results
curl --request GET \
--url https://api.lobstr.io/v1/results \
--header 'Authorization: <authorization>'import requests
url = "https://api.lobstr.io/v1/results"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.lobstr.io/v1/results', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.lobstr.io/v1/results",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.lobstr.io/v1/results"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.lobstr.io/v1/results")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.lobstr.io/v1/results")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"message_id": "<string>",
"message_text": "<string>",
"message_type": "<string>",
"template_id": "<string>",
"message_sent_at": {},
"direction": "<string>",
"is_outgoing": true,
"is_read": true,
"is_partner_read": true,
"attachments_count": 123,
"attachments": "<any>",
"sender_id": "<string>",
"sender_name": "<string>",
"conversation_id": "<string>",
"conversation_url": "<string>",
"annonce_id": "<string>",
"ad_title": "<string>",
"ad_status": "<string>",
"ad_category_id": "<string>",
"ad_image": "<string>",
"ad_owner_id": "<string>",
"ad_owner_type": "<string>",
"counterparty_id": "<string>",
"counterparty_name": "<string>",
"last_message_sent_at": {},
"last_message_preview": "<string>",
"last_message_attachments_count": 123,
"unseen_counter": 123,
"is_unread": true
}Retrieve scraped data from your Leboncoin Messages Reader runs. One row per message, with the conversation, the listing and the other party on every row.
Headers
string
required
Your API authentication token. Value:
Token YOUR_API_KEY.Query Parameters
string
required
Hash of the squid to get results from.
integer
Page number (default: 1).
Result Fields
string
Unique identifier of the message on Leboncoin.
text
Full text of the message, line breaks preserved.
string
Message kind as returned by Leboncoin:
ApiTextMessage for a regular message, ApiTemplateMessage for a templated one.string
Identifier of the Leboncoin message template when the message was sent from a template, empty otherwise.
datetime
Date and time (UTC) the message was sent.
string
received when the message was written by the other party, sent when it was written by the connected Leboncoin account.boolean
True when the message was sent by the connected Leboncoin account.
boolean
True when the message has been read by the connected Leboncoin account.
boolean
True when the other party has read the message (read receipt on messages you sent).
integer
Number of files attached to the message.
json
Raw attachment objects attached to the message, as returned by Leboncoin.
string
Leboncoin user id of the message sender.
string
Display name of the message sender.
string
Unique identifier of the conversation the message belongs to.
string
Direct URL of the conversation in the Leboncoin messaging inbox.
string
Identifier of the Leboncoin listing the conversation is about. Same identifier as the
annonce_id of the Leboncoin Auto Message Sender, so replies can be joined back to the messages sent.string
Title of the listing the conversation is about.
string
Current status of the listing:
active or deleted.string
Leboncoin category id of the listing (e.g.
9 = Ventes immobilières).string
Thumbnail image of the listing.
string
Leboncoin user id of the listing owner.
string
Type of the listing owner,
private for a private seller. Empty when Leboncoin does not return it.string
Leboncoin user id of the other party in the conversation.
string
Display name of the other party in the conversation.
datetime
Date and time (UTC) of the most recent message of the conversation at collection time.
text
Preview of the most recent message of the conversation at collection time.
integer
Number of files attached to the most recent message of the conversation.
integer
Number of unread messages in the conversation at collection time.
boolean
True when the conversation had at least one unread message at collection time.
Code Examples
curl -G https://api.lobstr.io/v1/results \
-H "Authorization: Token YOUR_API_KEY" \
-d "squid=YOUR_SQUID_HASH" \
-d "page=1"
import requests
response = requests.get(
"https://api.lobstr.io/v1/results",
headers={"Authorization": "Token YOUR_API_KEY"},
params={"squid": "YOUR_SQUID_HASH", "page": 1},
)
print(response.json())
Response
200
{"total_results": 1, "data": [{"message_id": "b07ce020-6be6-11f1-8080-808080808080", "message_text": "Hello Sasha, toutes les infos utiles sont dans l'annonce !\nMichel.", "message_type": "ApiTextMessage", "message_sent_at": "2026-06-19T13:56:37.282000+00:00", "direction": "received", "is_outgoing": false, "is_read": true, "conversation_id": "c2d7efff-5f3e-4898-8d49-979f94260003", "conversation_url": "https://www.leboncoin.fr/messages/id/c2d7efff-5f3e-4898-8d49-979f94260003", "annonce_id": "3196445542", "ad_title": "Maison individuelle de plein-pied proche Louhans", "counterparty_name": "deschamps"}]}