timzinin-com Competitor Ad Change Brief API
The Competitor Ad Change Brief API from timzinin-com — 1 operation(s) for competitor ad change brief.
The Competitor Ad Change Brief API from timzinin-com — 1 operation(s) for competitor ad change brief.
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-competitor-ad-change-brief-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 Competitor Ad Change Brief 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: Competitor Ad Change Brief
paths:
/api/competitor-ad-change-brief:
post:
summary: Competitor Ad Change Brief
description: Compare supplied ad evidence and return deterministic changes, baseline state, and unsent actions.
operationId: call_competitor_ad_change_brief
x-payment-info:
price:
mode: fixed
currency: USD
amount: '0.100000'
protocols:
- x402: {}
network: eip155:8453
payTo: '0x409D32aD39C02BC9B23a8b2d447532ed801b12dE'
asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
requestBody:
required: true
content:
application/json:
schema:
title: Competitor ad change brief input
type: object
additionalProperties: false
required:
- schemaVersion
- requestId
- watchId
- coverage
- sourceContract
properties:
schemaVersion:
const: '1.0'
prefill: '1.0'
default: '1.0'
requestId:
type: string
pattern: ^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$
prefill: auto
default: auto
watchId:
type: string
pattern: ^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$
prefill: nike-us-demo-bootstrap
default: nike-us-demo-bootstrap
rows:
type: array
minItems: 1
maxItems: 100
items:
type: object
additionalProperties: false
required:
- platform
- advertiserId
- pageId
- adId
- creativeId
- isActive
- format
- copy
- cta
- landingDomains
- media
- offer
- evidence
properties:
platform:
enum:
- meta
- google
- linkedin
advertiserId:
type:
- string
- 'null'
pageId:
type:
- string
- 'null'
adId:
type:
- string
- 'null'
creativeId:
type:
- string
- 'null'
isActive:
type:
- boolean
- 'null'
format:
enum:
- TEXT
- IMAGE
- VIDEO
- CAROUSEL
- COLLECTION
- OTHER
- null
copy:
type: object
additionalProperties: false
required:
- primaryText
- headline
- description
properties:
primaryText:
type:
- string
- 'null'
headline:
type:
- string
- 'null'
description:
type:
- string
- 'null'
cta:
type:
- string
- 'null'
landingDomains:
type: array
maxItems: 8
items:
type: string
media:
type: array
maxItems: 8
items:
type: string
offer:
type:
- object
- 'null'
additionalProperties: false
required:
- kind
- value
- currency
- code
properties:
kind:
type:
- string
- 'null'
value:
type:
- number
- 'null'
currency:
type:
- string
- 'null'
code:
type:
- string
- 'null'
evidence:
type: object
additionalProperties: false
required:
- sourceRef
- sourceRowId
properties:
sourceRef:
type:
- string
- 'null'
sourceRowId:
type:
- string
- 'null'
scrapedAt:
type:
- string
- 'null'
prefill:
- platform: google
advertiserId: AR16735076323512287233
pageId: null
adId: null
creativeId: CR16854540057166479361
isActive: true
format: IMAGE
copy:
primaryText: Unisex Nike Sportswear Tech Fleece
headline: Product Listing Ad Rendering Service
description: Nike Sportswear hoodie
cta: Shop now
landingDomains:
- nike.com
media:
- https://tpc.googlesyndication.com/archive/simgad/3463432638140085355?sig=demo
offer:
kind: null
value: null
currency: null
code: null
evidence:
sourceRef: https://adstransparency.google.com/advertiser/AR16735076323512287233/creative/CR16854540057166479361
sourceRowId: CR16854540057166479361
scrapedAt: '2026-08-06T11:03:09Z'
datasetId:
type: string
pattern: ^[A-Za-z0-9][A-Za-z0-9_-]{0,99}$
coverage:
type: object
additionalProperties: false
required:
- status
- comparable
- closed
- evidenceRef
- expectedRows
properties:
status:
enum:
- complete
- partial_pagination
- partial_budget
- source_unavailable
comparable:
type: boolean
closed:
type: boolean
evidenceRef:
type:
- string
- 'null'
maxLength: 512
expectedRows:
type:
- integer
- 'null'
minimum: 0
maximum: 100
prefill:
status: complete
comparable: true
closed: true
evidenceRef: buyer://public-demo/coverage
expectedRows: 1
sourceContract:
type: object
additionalProperties: false
required:
- productionActorId
- productionActorVersion
- adapter
- adapterVersion
- queryScope
- entityIdentity
properties:
productionActorId:
type: string
maxLength: 128
productionActorVersion:
type: string
maxLength: 64
adapter:
type: string
enum:
- meta
- meta-ads
- google
- google-ads
- linkedin
- linkedin-ads
maxLength: 128
adapterVersion:
type: string
maxLength: 64
queryScope:
type: object
entityIdentity:
type: object
prefill:
productionActorId: zinin/brand-evidence-source
productionActorVersion: 0.1.0
adapter: google-ads
adapterVersion: 1.0.0
queryScope:
advertiserId: AR16735076323512287233
country: US
entityIdentity:
advertiserId: AR16735076323512287233
maxAds:
type: integer
minimum: 1
maximum: 100
default: 100
prefill: 100
maxTotalChargeUsd:
type:
- number
- 'null'
minimum: 0
default: null
prefill: 0.055
openrouterApiKey:
type:
- string
- 'null'
maxLength: 512
isSecret: true
analysisModel:
type:
- string
- 'null'
maxLength: 200
default: openai/gpt-4o-mini
prefill: openai/gpt-4o-mini
oneOf:
- required:
- rows
not:
required:
- datasetId
- required:
- datasetId
not:
required:
- rows
definitions:
canonicalRow:
type: object
additionalProperties: false
required:
- platform
- advertiserId
- pageId
- adId
- creativeId
- isActive
- format
- copy
- cta
- landingDomains
- media
- offer
- evidence
properties:
platform:
enum:
- meta
- google
- linkedin
advertiserId:
type:
- string
- 'null'
pageId:
type:
- string
- 'null'
adId:
type:
- string
- 'null'
creativeId:
type:
- string
- 'null'
isActive:
type:
- boolean
- 'null'
format:
enum:
- TEXT
- IMAGE
- VIDEO
- CAROUSEL
- COLLECTION
- OTHER
- null
copy:
type: object
additionalProperties: false
required:
- primaryText
- headline
- description
properties:
primaryText:
type:
- string
- 'null'
headline:
type:
- string
- 'null'
description:
type:
- string
- 'null'
cta:
type:
- string
- 'null'
landingDomains:
type: array
maxItems: 8
items:
type: string
media:
type: array
maxItems: 8
items:
type: string
offer:
type:
- object
- 'null'
additionalProperties: false
required:
- kind
- value
- currency
- code
properties:
kind:
type:
- string
- 'null'
value:
type:
- number
- 'null'
currency:
type:
- string
- 'null'
code:
type:
- string
- 'null'
evidence:
type: object
additionalProperties: false
required:
- sourceRef
- sourceRowId
properties:
sourceRef:
type:
- string
- 'null'
sourceRowId:
type:
- string
- 'null'
scrapedAt:
type:
- string
- 'null'
allOf:
- if:
properties:
coverage:
properties:
comparable:
const: true
then:
properties:
coverage:
properties:
status:
const: complete
closed:
const: true
- if:
properties:
coverage:
properties:
status:
const: complete
closed:
const: true
then:
properties:
coverage:
properties:
evidenceRef:
type: string
minLength: 1
expectedRows:
type: integer
minimum: 0
maximum: 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:
- Competitor Ad Change Brief