---
title: "Radar Ingest"
method: POST
path: "/api/internal/radar/ingest"
tags: ["internal"]
---

# Radar Ingest

`POST /api/internal/radar/ingest`

## Request

- Base URL: `https://api.tintin-x.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.tintin-x.com/api/internal/radar/ingest`
- Auth: none declared

Push a storefront catalog for a watched shop from an external collector.

Both marketplaces refuse this platform's egress — Shopify 429s
(`local_rate_limited`) and Etsy 403s every storefront request from our AWS
ranges, on a first touch, from any User-Agent, while the same URLs answer
200 from a residential IP (measured 2026-07-31). Until the scanner has an
accepted egress (`radar_fetch_proxy`), a collector that does have one can
push the raw payload here.

The payload runs through the SAME upsert + signal code as a direct scan
(`apply_listings`), so there is exactly one signal implementation — a
collector-fed shop and a self-scanned shop are indistinguishable
downstream.

Body: ``{shop_id, platform_payload}`` — the raw Shopify products.json
object. Etsy is API-fetched in-process and is rejected here.
X-Internal-Key gated, like every other internal endpoint.

## Request body

- object

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/tintin-x/apis/tintin-api.md) · [All operations](https://skmtc.dev/tintin-x/apis/tintin-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tintin-x/apis/tintin-api/revisions/8839a8d0a66c?raw)
