curl "https://api.alura.io/v1/research/products/4524717183/similar" \
-H "Authorization: Bearer $ALURA_API_KEY"const res = await fetch('https://api.alura.io/v1/research/products/4524717183/similar', {
headers: {
Authorization: `Bearer ${process.env.ALURA_API_KEY}`,
},
});
console.log(await res.json());import json
import os
import urllib.request
request = urllib.request.Request(
"https://api.alura.io/v1/research/products/4524717183/similar",
headers={
"Authorization": f"Bearer {os.environ['ALURA_API_KEY']}",
},
)
with urllib.request.urlopen(request) as response:
print(json.load(response)){
"object": "list",
"data": [
{
"object": "research.product",
"id": "1587263044",
"title": "Custom Name Coffee Mug, Personalized Gift Mug",
"url": "https://www.etsy.com/listing/1587263044",
"shop": {
"id": "30577120",
"name": "ClayAndName"
},
"price": {
"amount": "19.50",
"currency": "USD",
"usd": "19.50"
},
"image_url": "https://i.etsystatic.com/30577120/r/il/7c8d9e/1587263044/il_570xN.1587263044_mug2.jpg",
"category": {
"id": "1062",
"path": [
"Home & Living",
"Kitchen & Dining",
"Drink & Barware",
"Drinkware",
"Mugs"
]
},
"sales": {
"est_lifetime": 2900,
"est_monthly_avg": 95,
"est_lifetime_revenue_usd": 56550
},
"reviews": {
"count": 410,
"average": 4.8
},
"favorites": 1280,
"listing_score": 79,
"listed_at": "2024-01-18T15:42:00.000Z",
"as_of": "2026-10-12T21:14:00.000Z"
},
{
"object": "research.product",
"id": "1349902215",
"title": "Personalized Mug with Name, Birthday Gift",
"url": "https://www.etsy.com/listing/1349902215",
"shop": {
"id": "22841907",
"name": "GiftMugStudio"
},
"price": {
"amount": "22.00",
"currency": "GBP",
"usd": "28.60"
},
"image_url": "https://i.etsystatic.com/22841907/r/il/3f4a5b/1349902215/il_570xN.1349902215_mug3.jpg",
"category": {
"id": "1062",
"path": [
"Home & Living",
"Kitchen & Dining",
"Drink & Barware",
"Drinkware",
"Mugs"
]
},
"sales": {
"est_lifetime": 1750,
"est_monthly_avg": 60,
"est_lifetime_revenue_usd": 50050
},
"reviews": {
"count": 233,
"average": 4.9
},
"favorites": 905,
"listing_score": 74,
"listed_at": "2022-11-03T08:20:00.000Z",
"as_of": "2026-10-13T06:51:00.000Z"
}
],
"has_more": false,
"next_cursor": null,
"total": {
"value": 2,
"relation": "eq"
}
}{
"type": "https://docs.alura.io/errors/invalid_request",
"title": "Invalid request",
"status": 400,
"code": "invalid_request",
"detail": "Invalid request",
"suggestion": "Fix the request as the detail says, then send it again.",
"retryable": false,
"request_id": "req_01JQ5W3H8M2N4P6R8T0V2X4Z6B"
}{
"type": "https://docs.alura.io/errors/unauthorized",
"title": "Unauthorized",
"status": 401,
"code": "unauthorized",
"detail": "Unauthorized",
"suggestion": "Send a valid API key as `Authorization: Bearer alura_sk_...`.",
"retryable": false,
"request_id": "req_01JQ5W3H8M2N4P6R8T0V2X4Z6B"
}{
"type": "https://docs.alura.io/errors/credits_exhausted",
"title": "API credits exhausted",
"status": 402,
"code": "credits_exhausted",
"detail": "API credits exhausted",
"suggestion": "Upgrade the plan or wait for the monthly reset.",
"retryable": false,
"request_id": "req_01JQ5W3H8M2N4P6R8T0V2X4Z6B"
}{
"type": "https://docs.alura.io/errors/plan_required",
"title": "Plan required",
"status": 403,
"code": "plan_required",
"detail": "Plan required",
"suggestion": "Upgrade the workspace plan to use this operation.",
"retryable": false,
"request_id": "req_01JQ5W3H8M2N4P6R8T0V2X4Z6B"
}{
"type": "https://docs.alura.io/errors/not_found",
"title": "Not found",
"status": 404,
"code": "not_found",
"detail": "Not found",
"suggestion": "Check the ID, or search for it first.",
"retryable": false,
"request_id": "req_01JQ5W3H8M2N4P6R8T0V2X4Z6B"
}{
"type": "https://docs.alura.io/errors/method_not_allowed",
"title": "Method not allowed",
"status": 405,
"code": "method_not_allowed",
"detail": "Method not allowed",
"suggestion": "Use one of the methods in the Allow header.",
"retryable": false,
"request_id": "req_01JQ5W3H8M2N4P6R8T0V2X4Z6B"
}{
"type": "https://docs.alura.io/errors/rate_limited",
"title": "Rate limited",
"status": 429,
"code": "rate_limited",
"detail": "Rate limited",
"suggestion": "Wait for Retry-After, then retry.",
"retryable": true,
"request_id": "req_01JQ5W3H8M2N4P6R8T0V2X4Z6B"
}{
"type": "https://docs.alura.io/errors/internal_error",
"title": "Internal error",
"status": 500,
"code": "internal_error",
"detail": "Internal error",
"suggestion": "Retry; if it keeps failing, report the request_id.",
"retryable": true,
"request_id": "req_01JQ5W3H8M2N4P6R8T0V2X4Z6B"
}{
"type": "https://docs.alura.io/errors/credits_unavailable",
"title": "API credits unavailable",
"status": 503,
"code": "credits_unavailable",
"detail": "API credits unavailable",
"suggestion": "Retry shortly.",
"retryable": true,
"request_id": "req_01JQ5W3H8M2N4P6R8T0V2X4Z6B"
}Find similar products
Finds Etsy products (other sellers’ listings) like the given one: products whose titles and tags share its words rank first, and products in the same category rank higher. Returns product summaries with Alura’s sales estimates, best match first; the product itself is never among them. Only active listings are returned; shops that opted out of Alura never appear. The totals stop counting at 10,000 and paging stops after 10,000 results. A product Alura has not seen is 404 not_found (nothing is fetched). Costs 10 API credits per page with results; an empty page is free.
Cost: 10 API credits per page.
curl "https://api.alura.io/v1/research/products/4524717183/similar" \
-H "Authorization: Bearer $ALURA_API_KEY"const res = await fetch('https://api.alura.io/v1/research/products/4524717183/similar', {
headers: {
Authorization: `Bearer ${process.env.ALURA_API_KEY}`,
},
});
console.log(await res.json());import json
import os
import urllib.request
request = urllib.request.Request(
"https://api.alura.io/v1/research/products/4524717183/similar",
headers={
"Authorization": f"Bearer {os.environ['ALURA_API_KEY']}",
},
)
with urllib.request.urlopen(request) as response:
print(json.load(response)){
"object": "list",
"data": [
{
"object": "research.product",
"id": "1587263044",
"title": "Custom Name Coffee Mug, Personalized Gift Mug",
"url": "https://www.etsy.com/listing/1587263044",
"shop": {
"id": "30577120",
"name": "ClayAndName"
},
"price": {
"amount": "19.50",
"currency": "USD",
"usd": "19.50"
},
"image_url": "https://i.etsystatic.com/30577120/r/il/7c8d9e/1587263044/il_570xN.1587263044_mug2.jpg",
"category": {
"id": "1062",
"path": [
"Home & Living",
"Kitchen & Dining",
"Drink & Barware",
"Drinkware",
"Mugs"
]
},
"sales": {
"est_lifetime": 2900,
"est_monthly_avg": 95,
"est_lifetime_revenue_usd": 56550
},
"reviews": {
"count": 410,
"average": 4.8
},
"favorites": 1280,
"listing_score": 79,
"listed_at": "2024-01-18T15:42:00.000Z",
"as_of": "2026-10-12T21:14:00.000Z"
},
{
"object": "research.product",
"id": "1349902215",
"title": "Personalized Mug with Name, Birthday Gift",
"url": "https://www.etsy.com/listing/1349902215",
"shop": {
"id": "22841907",
"name": "GiftMugStudio"
},
"price": {
"amount": "22.00",
"currency": "GBP",
"usd": "28.60"
},
"image_url": "https://i.etsystatic.com/22841907/r/il/3f4a5b/1349902215/il_570xN.1349902215_mug3.jpg",
"category": {
"id": "1062",
"path": [
"Home & Living",
"Kitchen & Dining",
"Drink & Barware",
"Drinkware",
"Mugs"
]
},
"sales": {
"est_lifetime": 1750,
"est_monthly_avg": 60,
"est_lifetime_revenue_usd": 50050
},
"reviews": {
"count": 233,
"average": 4.9
},
"favorites": 905,
"listing_score": 74,
"listed_at": "2022-11-03T08:20:00.000Z",
"as_of": "2026-10-13T06:51:00.000Z"
}
],
"has_more": false,
"next_cursor": null,
"total": {
"value": 2,
"relation": "eq"
}
}{
"type": "https://docs.alura.io/errors/invalid_request",
"title": "Invalid request",
"status": 400,
"code": "invalid_request",
"detail": "Invalid request",
"suggestion": "Fix the request as the detail says, then send it again.",
"retryable": false,
"request_id": "req_01JQ5W3H8M2N4P6R8T0V2X4Z6B"
}{
"type": "https://docs.alura.io/errors/unauthorized",
"title": "Unauthorized",
"status": 401,
"code": "unauthorized",
"detail": "Unauthorized",
"suggestion": "Send a valid API key as `Authorization: Bearer alura_sk_...`.",
"retryable": false,
"request_id": "req_01JQ5W3H8M2N4P6R8T0V2X4Z6B"
}{
"type": "https://docs.alura.io/errors/credits_exhausted",
"title": "API credits exhausted",
"status": 402,
"code": "credits_exhausted",
"detail": "API credits exhausted",
"suggestion": "Upgrade the plan or wait for the monthly reset.",
"retryable": false,
"request_id": "req_01JQ5W3H8M2N4P6R8T0V2X4Z6B"
}{
"type": "https://docs.alura.io/errors/plan_required",
"title": "Plan required",
"status": 403,
"code": "plan_required",
"detail": "Plan required",
"suggestion": "Upgrade the workspace plan to use this operation.",
"retryable": false,
"request_id": "req_01JQ5W3H8M2N4P6R8T0V2X4Z6B"
}{
"type": "https://docs.alura.io/errors/not_found",
"title": "Not found",
"status": 404,
"code": "not_found",
"detail": "Not found",
"suggestion": "Check the ID, or search for it first.",
"retryable": false,
"request_id": "req_01JQ5W3H8M2N4P6R8T0V2X4Z6B"
}{
"type": "https://docs.alura.io/errors/method_not_allowed",
"title": "Method not allowed",
"status": 405,
"code": "method_not_allowed",
"detail": "Method not allowed",
"suggestion": "Use one of the methods in the Allow header.",
"retryable": false,
"request_id": "req_01JQ5W3H8M2N4P6R8T0V2X4Z6B"
}{
"type": "https://docs.alura.io/errors/rate_limited",
"title": "Rate limited",
"status": 429,
"code": "rate_limited",
"detail": "Rate limited",
"suggestion": "Wait for Retry-After, then retry.",
"retryable": true,
"request_id": "req_01JQ5W3H8M2N4P6R8T0V2X4Z6B"
}{
"type": "https://docs.alura.io/errors/internal_error",
"title": "Internal error",
"status": 500,
"code": "internal_error",
"detail": "Internal error",
"suggestion": "Retry; if it keeps failing, report the request_id.",
"retryable": true,
"request_id": "req_01JQ5W3H8M2N4P6R8T0V2X4Z6B"
}{
"type": "https://docs.alura.io/errors/credits_unavailable",
"title": "API credits unavailable",
"status": 503,
"code": "credits_unavailable",
"detail": "API credits unavailable",
"suggestion": "Retry shortly.",
"retryable": true,
"request_id": "req_01JQ5W3H8M2N4P6R8T0V2X4Z6B"
}Authorizations
An API key: Authorization: Bearer alura_sk_....
Path Parameters
Etsy listing ID.
^[1-9][0-9]{0,19}$"4524717183"
Query Parameters
Page size: default 25, at most 100.
1 <= x <= 100The next_cursor of the previous page. Bound to the query, the workspace and the key.
Comma-separated dotted paths to return; id, object and as_of always come back.