Test Ground

Send a real request from your browser.

The request below is built from the published contract: a fixed path, fixed parameter names, and the same numeric bounds the API enforces. Every endpoint here is open to anonymous callers, so there is nothing to configure before you can try it.

Treat this as the first step of an integration: confirm the request shape and the response contract here, then take the matching snippet below into your own client.

Anonymous · no keyFixed request envelope

The request is sent from your browser straight to the public API. Nothing passes through this site’s server, no credential is attached, and nothing you type is stored.

  • No key required

    The read surface is anonymous. There is nothing to paste into this page and nothing to leak from it.

  • Bounded by construction

    Parameter names, types, and ranges are fixed by the published contract. Free-form paths and arbitrary headers are not accepted, so this page cannot be turned into a proxy.

  • One surface, both protocols

    REST and MCP are two transports over one contract. The filters you set here apply identically to both, so pick whichever tab your client already speaks.

Request builder

Choose an endpoint, then set the filters

Values outside the published bounds are clamped to the nearest bound rather than rejected, and the clamped value is what appears in the effective request. Anything that had to be adjusted is listed under the controls before you send.

Endpoint

Parameters

Effective request

GET /v1/trends/recent?hours=24&limit=5&page=1
Host: api.genticsprint.com
Accept: application/json

https://api.genticsprint.com/v1/trends/recent?hours=24&limit=5&page=1

Same request, in your language

Generated from the effective path, so the bounded values are already applied.

curl -sS "https://api.genticsprint.com/v1/trends/recent?hours=24&limit=5&page=1" \
  -H "Accept: application/json"
No request sent yet. Press Send request to see the real response body, status, and rate-limit headers, exactly as the API returned them.

Reading the result

Three ways a call can resolve, and what each means

A refusal is reported as a refusal and an outage as an outage. Nothing on this page turns either one into an empty payload that looks like a successful read.

ok

The API answered

The call reached the public surface and returned a real payload. The JSON below is exactly what the API sent, unedited.

private

The request was refused

A 401 or 403 is returned before the request reaches the read endpoint. Every endpoint on this page is anonymous, so a refusal is an access condition rather than a missing key. Retry, and the snippets below still show the exact URL and headers a working request uses.

unreachable

The request could not be completed

The browser could not reach the surface — a network failure, a CORS refusal, or an outage. The generated snippets still work from a server-side client that can reach the service.

Bounds used by this page, all taken from the published OpenAPI contract: hours 12160, limit 150, page 1–20 for anonymous callers, impact score 110, domain quality 110, query length up to 200 characters, and domain up to 253 characters. The API returns a 400 outside these; this page clamps to the nearest bound and tells you it did, so the effective request is always visible before it is sent.

REST and MCP parity

One contract, two transports

MCP is not a second API with its own fields. Every row below pairs a REST endpoint with the MCP call that reads the same data, and the builder on this page accepts all of them — so whichever transport you pick, the filters and the response shape are the same.

REST endpointFiltersBuilder inputsMCP equivalent
GET /v1/trends/recentcategory, hours, velocity, min_impact, min_quality, page, limithours, limit, page, category, velocity, min_impact, min_qualityget_recent_trends (tool)
GET /v1/trends/{trend_id}trend_id (path)trend_idget_trend_detail (tool)
GET /v1/content/{trend_id}trend_id (path), limittrend_id, limitget_trend_content (tool)
GET /v1/searchq (required), category, hours, limitq, limit, time_window, category, min_impactsearch_trends (tool)
GET /v1/categoriesnonenonelist_categories (tool)
GET /v1/sources/{domain}/trendingdomain (path), limitdomain, limitget_source_trends (tool)
GET /v1/benefitsnonenonetrends://benefits (resource)
GET /v1/statsnonenonetrends://stats (resource)

Every one of the 8 published endpoints is runnable above, and the table is generated from the same endpoint definitions the builder uses, so the filters listed beside a row are the filters you will see when you select it. A row cannot lose its builder by accident without this table changing with it. Every REST row is served from https://api.genticsprint.com, and the MCP column names the call that reads the same data over https://mcp.genticsprint.com/mcp.

The MCP tab in the generated snippets posts JSON-RPC 2.0 to https://mcp.genticsprint.com/mcp. Two endpoints are published as resources rather than tools, so their tab shows a resources/read call against the same data. Arguments are derived from the effective request, so the tab always describes the call that returns the data shown beside it.

This page has one job.

It explores the public read contract, and it can only send the requests that contract documents: fixed paths, fixed parameter names, published bounds. There is no free-form URL, no host override, and no credential, so it cannot be turned into a proxy for anything else.