All store scraper APIs
Storegyneika.com

gyneika.com scraper API for AI agents and code

datawebot returns gyneika.com search results, product pages and catalogue pages as structured JSON, with the same fields for every shop: title, price, original price, availability, rating, image and link, plus details such as brand, variants and identifiers when a product page shows them. It runs from your AI agent over MCP or from code over REST on gyneika.com, at 5 credits per search page, 1 per product page and 5 per catalogue page, and failed requests are free.

Checked when added to the catalogue.

Fields you get

Every gyneika.com product comes back in these fields; a field is null when the page doesn't show it. Each endpoint below also lists its raw record schema.

FieldTypeDescription
product_idstring or nullOpaque id. Pass it to get_product (or capability "product") to read the product again.
titlestringProduct title as the shop shows it.
urlstring or nullThe product page on the shop.
shopstring or nullThe shop’s hostname, without www.
priceobject or nullamount (number), currency (ISO 4217, or null when the shop doesn’t say) and text (the shop’s own wording when it is the same amount, else null).
original_priceobject or nullThe price before a discount, in the same shape as price.
ratingnumber or nullAverage rating, on the shop’s own scale.
review_countinteger or nullNumber of reviews or ratings.
image_urlstring or nullMain product image.
availabilitystring or nullin_stock, out_of_stock, or the shop’s own stock wording.
sponsoredboolean or nulltrue for an ad the shop marks as sponsored; null when the page doesn’t say.

How to run it

From your agent, after connecting it once with the setup prompt (agent setup), ask in plain words:

Agent prompt
Use datawebot to extract https://gyneika.com/search?q=shoe&type=product and give me each product's title, price and link as JSON.

From code, send one request with your API key. The answer has the same shape for every shop; if it says "status": "working", read it again with GET /v1/requests/{id}.

POST /v1/requests
curl https://api.datawebot.com/v1/requests \
  -H "Authorization: Bearer $DATAWEBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"capability":"endpoint","endpoint":"s_gyneika_com.search_items","url":"https://gyneika.com/search?q=shoe&type=product","format":"structured"}'

Product details

One /products/handle via standard JSON, no HTML fallback.

ID
s_gyneika_com.product_details
Version
1
Price
1 credit / page
State
Available
Typical time
About 30 s (estimate)

What it does

Reads one product page and returns that product. Works on gyneika.com; other hosts are rejected before anything runs.

Input

One page URL per request, shaped like https://gyneika.com/products/example-product.

Price

1 credit / page. Failed requests are free; a page that loaded but had nothing on it still costs credits. Set max_credits to refuse anything dearer before it runs.

Output

The default, "format": "structured". Every shop answers in the same fields, mapped from the page to the product@1 schema. Fields are null when the page doesn't show them, and a record that can't be mapped is read best-effort from its raw fields. The product is in product.

FieldTypeDescription
product_idstring or nullOpaque id. Pass it to get_product (or capability "product") to read the product again.
titlestringProduct title as the shop shows it.
urlstring or nullThe product page on the shop.
shopstring or nullThe shop’s hostname, without www.
priceobject or nullamount (number), currency (ISO 4217, or null when the shop doesn’t say) and text (the shop’s own wording when it is the same amount, else null).
original_priceobject or nullThe price before a discount, in the same shape as price.
ratingnumber or nullAverage rating, on the shop’s own scale.
review_countinteger or nullNumber of reviews or ratings.
image_urlstring or nullMain product image.
availabilitystring or nullin_stock, out_of_stock, or the shop’s own stock wording.
sponsoredboolean or nulltrue for an ad the shop marks as sponsored; null when the page doesn’t say.

product.details, when the shop's page maps to product@1:

FieldTypeDescription
brandstring or nullBrand as the page names it.
category_patharray of stringsBreadcrumb categories, top first.
descriptionstring or nullPlain-text description.
feature_bulletsarray of stringsListed features.
price_min, price_maxnumber or nullLowest and highest variant price.
discount_labelstring or nullDiscount wording, such as "-20%".
stockinteger or nullUnits in stock, when the page shows a number.
sold_count, sold_count_basisinteger or null; "total", "monthly" or nullUnits sold, and whether that is a total or per month.
identifiersarray of {type, value}asin, parent_asin, walmart_item_id, gtin, mpn, isbn or source_sku.
specs_rawarray of {name, value}The specification table as shown.
images, image_countarray of {url, alt}; integerEvery product image.
option_namesarray of stringsOption names such as Size or Colour.
variants, variant_countarray (up to 100); integer or nullEach variant: id, name, options, sku, final_price, price_before_discount, discount_label, available, stock, image_url.
sellerobject or nullid, name, url and type (official or marketplace).
rating_scalenumber or nullThe top of the rating scale, such as 5.
warningsarray of stringsFields the page didn’t give, such as currency_missing.
Answer shape (types, not real data)
{
  "request_id": "string",
  "status": "done",
  "product": {
    "product_id": "string or null",
    "title": "string",
    "url": "string or null",
    "shop": "string or null",
    "price": {
      "amount": "number",
      "currency": "string or null",
      "text": "string or null"
    },
    "original_price": {
      "amount": "number",
      "currency": "string or null",
      "text": "string or null"
    },
    "rating": "number or null",
    "review_count": "integer or null",
    "image_url": "string or null",
    "availability": "string or null",
    "sponsored": "boolean or null",
    "details": {
      "brand": "string or null",
      "variants": [
        "…"
      ],
      "…": "…"
    }
  },
  "meta": {
    "as_of": "date-time",
    "country": "string",
    "credits_used": "integer",
    "credits_left": "integer"
  }
}

Over the Jobs API, GET /v1/jobs/{id}/results?format=structured returns the full product@1 records.

Request

Read a product page with capability: "product"; it runs this endpoint for the page's shop. Set format to "raw" for the raw records too.

POST /v1/requests
curl https://api.datawebot.com/v1/requests \
  -H "Authorization: Bearer $DATAWEBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"capability":"product","url":"https://gyneika.com/products/example-product","format":"structured"}'
MCP get_product
get_product {
  "url": "https://gyneika.com/products/example-product",
  "format": "structured"
}

If the answer says "status": "working", read it again with GET /v1/requests/{id} (MCP: get_results) after check_after_seconds.

Catalogue

Bounded /products.json catalogue starting at page one. No collections, filters or full-inventory guarantee.

ID
s_gyneika_com.catalog_items
Version
1
Price
5 credits / page
State
Available
Typical time
About 30 s (estimate)

What it does

Reads the store’s product catalogue, one page of products at a time. Works on gyneika.com; other hosts are rejected before anything runs.

Input

One page URL per request, shaped like https://gyneika.com/, plus these bounded parameters.

ParameterTypeAllowedDefaultSet in /v1/requests
max_pagesinteger1–101max_pages
max_productsinteger1–25050POST /v1/jobs only

Price

5 credits / page. With max_pages up to 10, a request costs at most 50 credits. Failed requests are free; a page that loaded but had nothing on it still costs credits. Set max_credits to refuse anything dearer before it runs.

Output

The default, "format": "structured". Every shop answers in the same fields, mapped from the page to the product@1 schema. Fields are null when the page doesn't show them, and a record that can't be mapped is read best-effort from its raw fields. Products are in products, up to 50 a page; follow next_cursor with GET /v1/requests/{id} (MCP: get_results).

FieldTypeDescription
product_idstring or nullOpaque id. Pass it to get_product (or capability "product") to read the product again.
titlestringProduct title as the shop shows it.
urlstring or nullThe product page on the shop.
shopstring or nullThe shop’s hostname, without www.
priceobject or nullamount (number), currency (ISO 4217, or null when the shop doesn’t say) and text (the shop’s own wording when it is the same amount, else null).
original_priceobject or nullThe price before a discount, in the same shape as price.
ratingnumber or nullAverage rating, on the shop’s own scale.
review_countinteger or nullNumber of reviews or ratings.
image_urlstring or nullMain product image.
availabilitystring or nullin_stock, out_of_stock, or the shop’s own stock wording.
sponsoredboolean or nulltrue for an ad the shop marks as sponsored; null when the page doesn’t say.
Answer shape (types, not real data)
{
  "request_id": "string",
  "status": "done",
  "products": [
    {
      "product_id": "string or null",
      "title": "string",
      "url": "string or null",
      "shop": "string or null",
      "price": {
        "amount": "number",
        "currency": "string or null",
        "text": "string or null"
      },
      "original_price": {
        "amount": "number",
        "currency": "string or null",
        "text": "string or null"
      },
      "rating": "number or null",
      "review_count": "integer or null",
      "image_url": "string or null",
      "availability": "string or null",
      "sponsored": "boolean or null"
    }
  ],
  "next_cursor": "string or null",
  "meta": {
    "as_of": "date-time",
    "country": "string",
    "credits_used": "integer",
    "credits_left": "integer"
  }
}

Over the Jobs API, GET /v1/jobs/{id}/results?format=structured returns the full product@1 records.

Request

Run exactly this endpoint with capability: "endpoint"; there is no fallback, and a failed run is free. Set format to "raw" for the raw records too.

POST /v1/requests
curl https://api.datawebot.com/v1/requests \
  -H "Authorization: Bearer $DATAWEBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"capability":"endpoint","endpoint":"s_gyneika_com.catalog_items","url":"https://gyneika.com/","max_pages":1,"format":"structured"}'
MCP submit_job
submit_job {
  "endpoint": "s_gyneika_com.catalog_items",
  "url": "https://gyneika.com/",
  "max_pages": 1,
  "format": "structured"
}

If the answer says "status": "working", read it again with GET /v1/requests/{id} (MCP: get_results) after check_after_seconds.

Limits

  • One page URL per request, on gyneika.com only; other hosts are rejected before anything runs.
  • A search or catalogue request reads at most 10 pages (max_pages).
  • Prices and stock are read when the request runs (meta.as_of); datawebot keeps no price history, so schedule and store repeat reads yourself.
  • Fields the page doesn't show come back null; nothing is filled in or guessed.
  • Up to 30 requests a minute per account.

Questions about the gyneika.com scraper API

Does gyneika.com have an official API?

datawebot does not use one. It reads gyneika.com's pages and returns them as structured JSON, so you need no gyneika.com developer account or partner key. Whether gyneika.com offers its own API, and on what terms, is for gyneika.com to say.

Can I scrape gyneika.com with Python?

Yes. Send the POST /v1/requests call shown on this page from Python with any HTTP client, such as requests or httpx: the same JSON body, with your API key in the Authorization header. The products come back in the answer's products field (product for a product page).

Is it legal to scrape gyneika.com?

It depends on where you are, gyneika.com's terms and what you do with the data. You stay responsible for how you use what datawebot returns. This is not legal advice; read our guide to robots.txt and legal considerations, and ask a lawyer about your case.

What does a gyneika.com scraper API call cost?

5 credits per search page, 1 per product page and 5 per catalogue page. Failed requests are free; a page that loaded but had nothing on it still costs credits. Every account starts with 200 free credits, and credit packs start at 10,000 credits for $10, with no subscription.

Start with 200 free credits

Connect your agent with one setup prompt, or create an API key, and run gyneika.com requests right away. No card and no subscription.

Connect your agent See pricing