timzinin-com Us Brand Offer Evidence Normalizer API
The Us Brand Offer Evidence Normalizer API from timzinin-com — 1 operation(s) for us brand offer evidence normalizer.
The Us Brand Offer Evidence Normalizer API from timzinin-com — 1 operation(s) for us brand offer evidence normalizer.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/timzinin-com:timzinin-com-us-brand-offer-evidence-normalizer-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Zinin M2M Hub Us Brand Offer Evidence Normalizer API
description: Pay-per-call data & tool APIs
version: 1.0.0
x-guidance: 'Zinin M2M Hub — pay-per-call data & tool APIs for AI agents. Each POST /api/{slug} operation below is a distinct paid tool: call GET /api/{slug}/schema first for the exact input shape, then POST with a signed PAYMENT-SIGNATURE header (x402 v2, USDC — see x-payment-info per operation) or omit it to receive a 402 with full payment requirements in the PAYMENT-REQUIRED header. The same catalog is also available as MCP JSON-RPC tool bundles at POST /mcp/{bundle} — see GET /.well-known/x402 for the list of bundles.'
tags:
- name: Us Brand Offer Evidence Normalizer
paths:
/api/us-brand-offer-evidence-normalizer:
post:
summary: US Brand Offer Evidence Normalizer
description: Turn supplied US brand offer, coupon, ad, and landing-page evidence into closed deterministic JSON. Submit bounded inline rows or one authorized read-only Dataset; the Actor validates source proof and terms without browsing or inferring ownership.
operationId: call_us_brand_offer_evidence_normalizer
x-payment-info:
price:
mode: fixed
currency: USD
amount: '0.050000'
protocols:
- x402: {}
network: eip155:8453
payTo: '0x409D32aD39C02BC9B23a8b2d447532ed801b12dE'
asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
requestBody:
required: true
content:
application/json:
schema:
title: US Brand Offer Evidence Normalizer input
description: Choose inline evidence rows or one authorized read-only Apify Dataset. Runtime semantic validation enforces exactly one source.
type: object
schemaVersion: 1
additionalProperties: false
required:
- schemaVersion
- requestId
properties:
schemaVersion:
title: Contract schema version
type: string
description: Required V1 contract version.
editor: select
enum:
- '1.0'
default: '1.0'
prefill: '1.0'
requestId:
title: Request ID
type: string
description: Correlation ID for this run. Reusing it in another run does not deduplicate purchases.
editor: textfield
minLength: 1
maxLength: 80
pattern: ^[A-Za-z0-9._:-]+$
prefill: offer-normalize-20260804-001
rows:
title: Inline evidence rows
type: array
description: One to 100 closed evidence-row objects. Leave empty when selecting a Dataset.
editor: json
minItems: 1
maxItems: 100
items:
type: object
additionalProperties: false
required:
- entity
- evidence
properties:
entity:
type: object
additionalProperties: false
required:
- entityId
- brandName
- legalName
- domain
- ticker
- aliases
- country
- sourceEntityIds
properties:
entityId:
type: string
minLength: 1
maxLength: 256
brandName:
type: string
minLength: 1
maxLength: 1024
legalName:
type:
- string
- 'null'
maxLength: 1024
domain:
type:
- string
- 'null'
maxLength: 2048
ticker:
type:
- string
- 'null'
maxLength: 64
aliases:
type: array
maxItems: 5
items:
type: string
minLength: 1
maxLength: 1024
country:
type: string
pattern: ^[A-Z]{2}$
sourceEntityIds:
type: array
minItems: 1
maxItems: 10
items:
type: string
minLength: 1
maxLength: 256
evidence:
type: object
additionalProperties: false
required:
- evidenceType
- sourceName
- sourceRecordId
- sourceUrl
- observedAt
- rawTitle
- rawTermsText
- terms
- entityAttribution
- additionalUrls
properties:
evidenceType:
type: string
enum:
- ad
- offer
- coupon
- landing_page
sourceName:
type: string
minLength: 1
maxLength: 1024
sourceRecordId:
type: string
minLength: 1
maxLength: 1024
sourceUrl:
type: string
pattern: ^https://
maxLength: 1024
observedAt:
type: string
maxLength: 64
rawTitle:
type:
- string
- 'null'
maxLength: 1024
rawTermsText:
type:
- string
- 'null'
maxLength: 4096
terms:
type:
- object
- 'null'
additionalProperties: false
properties:
offerKind:
type: string
enum:
- percent_off
- amount_off
- buy_x_get_y
- free_shipping
- gift_with_purchase
- bundle
- coupon_code
- price_drop
- other
percentOff:
type:
- number
- 'null'
minimum: 0
maximum: 100
amountOff:
type:
- object
- 'null'
additionalProperties: false
required:
- value
- currency
properties:
value:
type: number
minimum: 0
maximum: 1000000000000
currency:
type: string
pattern: ^[A-Z]{3}$
buyQuantity:
type:
- integer
- 'null'
minimum: 1
maximum: 1000000
getQuantity:
type:
- integer
- 'null'
minimum: 1
maximum: 1000000
minPurchaseAmount:
type:
- object
- 'null'
additionalProperties: false
required:
- value
- currency
properties:
value:
type: number
minimum: 0
maximum: 1000000000000
currency:
type: string
pattern: ^[A-Z]{3}$
couponCode:
type:
- string
- 'null'
maxLength: 256
memberOnly:
type:
- boolean
- 'null'
newCustomerOnly:
type:
- boolean
- 'null'
startAt:
type:
- string
- 'null'
maxLength: 64
endAt:
type:
- string
- 'null'
maxLength: 64
geography:
type:
- string
- 'null'
maxLength: 1024
channels:
type:
- array
- 'null'
maxItems: 8
items:
type: string
maxLength: 256
exclusions:
type:
- array
- 'null'
maxItems: 32
items:
type: string
maxLength: 1024
entityAttribution:
type:
- object
- 'null'
additionalProperties: false
required:
- status
- proofType
- proofValue
- sourceEntityId
- proofUrl
- proofDomain
- merchantId
- adAccountId
- officialSourceId
properties:
status:
type: string
const: verified_by_source
proofType:
type: string
enum:
- first_party_domain
- merchant_id_and_domain
- official_ad_account
- source_entity_id
- official_link
proofValue:
type: string
minLength: 1
maxLength: 2048
sourceEntityId:
type: string
minLength: 1
maxLength: 256
proofUrl:
type: string
pattern: ^https://
maxLength: 1024
proofDomain:
type:
- string
- 'null'
maxLength: 1024
merchantId:
type:
- string
- 'null'
maxLength: 1024
adAccountId:
type:
- string
- 'null'
maxLength: 1024
officialSourceId:
type:
- string
- 'null'
maxLength: 1024
additionalUrls:
type: array
maxItems: 4
items:
type: string
pattern: ^https://
maxLength: 1024
suppliedOfferId:
type:
- string
- 'null'
maxLength: 256
prefill:
- entity:
entityId: brand:demo-outfitters
brandName: Demo Outfitters
legalName: null
domain: demo.example
ticker: null
aliases: []
country: US
sourceEntityIds:
- prefill:demo-outfitters
evidence:
evidenceType: landing_page
sourceName: demo_fixture
sourceRecordId: offer-001
sourceUrl: https://demo.example/offers/spring
observedAt: '2026-08-04T08:00:00Z'
rawTitle: Spring offer
rawTermsText: 20% off orders $50+ with code SPRING20. Ends 2026-09-30.
terms:
offerKind: percent_off
percentOff: 20
minPurchaseAmount:
value: 50
currency: USD
couponCode: SPRING20
endAt: '2026-09-30T23:59:59Z'
entityAttribution:
status: verified_by_source
proofType: first_party_domain
proofValue: demo.example
sourceEntityId: prefill:demo-outfitters
proofUrl: https://demo.example/
proofDomain: demo.example
merchantId: null
adAccountId: null
officialSourceId: null
additionalUrls: []
datasetId:
title: Authorized source Dataset
type: string
description: One resource selected with READ permission. Dataset V1 accepts at most 10 rows and probes 11 in one SDK call. Leave empty when using inline rows.
editor: resourcePicker
resourceType: dataset
resourcePermissions:
- READ
minLength: 1
maxLength: 100
pattern: ^[A-Za-z0-9][A-Za-z0-9_-]{0,99}$
openrouterApiKey:
title: OpenRouter caller key
description: Optional caller-owned key for BYOK labels. The runtime must redact and never persist it.
type: string
editor: textfield
isSecret: true
minLength: 1
maxLength: 4096
options:
title: Normalization options
type: object
description: Labels are off unless an explicit model and caller key are supplied in BYOK mode.
editor: json
additionalProperties: false
default:
labels: 'off'
maxItems: 100
properties:
labels:
title: Label mode
description: Off or caller-funded BYOK labels.
type: string
editor: select
enum:
- 'off'
- byok
analysisModel:
title: OpenRouter model
description: Explicit model ID required only in BYOK mode; omit when labels are off.
type: string
editor: textfield
minLength: 1
maxLength: 200
maxItems:
title: Maximum results
description: Maximum eligible rows attempted in this run, up to 100. The Dataset source cap remains 10.
type: integer
editor: number
minimum: 1
maximum: 100
prefill:
labels: 'off'
maxItems: 100
responses:
'200':
description: Actor run succeeded and payment settled
content:
application/json:
schema:
type: object
properties:
results:
type: array
items:
type: object
description: Actor output items — shape is actor-specific (varies per tool); see this operation's own requestBody schema/description for what the underlying actor produces.
meta:
type: object
properties:
run_ms:
type: integer
description: Actor run duration in milliseconds
item_count:
type: integer
description: len(results)
settled:
type: boolean
description: Whether the x402 payment was confirmed settled by the facilitator
transaction:
type:
- string
- 'null'
description: On-chain settlement transaction hash, null if unsettled
required:
- run_ms
- item_count
- settled
- transaction
required:
- results
- meta
'400':
description: Malformed PAYMENT-SIGNATURE header or request body
'402':
description: Payment required or invalid — see PAYMENT-REQUIRED header
'409':
description: Payment payload already used
'502':
description: Actor run failed
'504':
description: Actor run timed out
tags:
- Us Brand Offer Evidence Normalizer