curl "https://api.alura.io/v1/research/shops/48911633/similar" \
-H "Authorization: Bearer $ALURA_API_KEY"const res = await fetch('https://api.alura.io/v1/research/shops/48911633/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/shops/48911633/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.shop",
"id": "30577120",
"name": "ClayAndName",
"url": "https://www.etsy.com/shop/ClayAndName",
"icon_url": "https://i.etsystatic.com/iusa/7c8d9e/30577120/iusa_fullxfull.30577120_clay.jpg",
"country": "US",
"category": {
"name": "Home & Living",
"sub_category": "Kitchen & Dining"
},
"sales": {
"lifetime": 12840,
"est_monthly_avg": 310,
"est_lifetime_revenue_usd": 250380
},
"reviews": {
"count": 2210,
"average": 4.8
},
"catalog": {
"active_listings": 214
},
"as_of": "2026-10-12T21:14:00.000Z"
},
{
"object": "research.shop",
"id": "22841907",
"name": "GiftMugStudio",
"url": "https://www.etsy.com/shop/GiftMugStudio",
"icon_url": "https://i.etsystatic.com/iusa/3f4a5b/22841907/iusa_fullxfull.22841907_giftmug.jpg",
"country": "GB",
"category": {
"name": "Home & Living",
"sub_category": "Kitchen & Dining"
},
"sales": {
"lifetime": 7930,
"est_monthly_avg": 180,
"est_lifetime_revenue_usd": 226800
},
"reviews": {
"count": 1340,
"average": 4.9
},
"catalog": {
"active_listings": 96
},
"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 shops
Finds Etsy shops (other sellers) that sell what the given shop sells: Alura profiles the shop’s best-selling active products (their tags, categories, prices and format), finds products like them in other shops, and ranks each shop by its best few matches and by how closely its own products match the profile, so a focused competitor ranks above a large shop with one matching product. A shop with fewer than 3 active products Alura knows is matched by its category and sub-category instead, best-selling first. Returns shop summaries of active shops that are not on vacation, best match first; the shop itself is never among them, and shops that opted out of Alura never appear. The results are a ranked list of at most 40 shops: total is its exact length and paging stops at its end. A shop 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/shops/48911633/similar" \
-H "Authorization: Bearer $ALURA_API_KEY"const res = await fetch('https://api.alura.io/v1/research/shops/48911633/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/shops/48911633/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.shop",
"id": "30577120",
"name": "ClayAndName",
"url": "https://www.etsy.com/shop/ClayAndName",
"icon_url": "https://i.etsystatic.com/iusa/7c8d9e/30577120/iusa_fullxfull.30577120_clay.jpg",
"country": "US",
"category": {
"name": "Home & Living",
"sub_category": "Kitchen & Dining"
},
"sales": {
"lifetime": 12840,
"est_monthly_avg": 310,
"est_lifetime_revenue_usd": 250380
},
"reviews": {
"count": 2210,
"average": 4.8
},
"catalog": {
"active_listings": 214
},
"as_of": "2026-10-12T21:14:00.000Z"
},
{
"object": "research.shop",
"id": "22841907",
"name": "GiftMugStudio",
"url": "https://www.etsy.com/shop/GiftMugStudio",
"icon_url": "https://i.etsystatic.com/iusa/3f4a5b/22841907/iusa_fullxfull.22841907_giftmug.jpg",
"country": "GB",
"category": {
"name": "Home & Living",
"sub_category": "Kitchen & Dining"
},
"sales": {
"lifetime": 7930,
"est_monthly_avg": 180,
"est_lifetime_revenue_usd": 226800
},
"reviews": {
"count": 1340,
"average": 4.9
},
"catalog": {
"active_listings": 96
},
"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 shop ID.
^[1-9][0-9]{0,18}$"48911633"
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.