API Docs

Publisher Revenue Audit API

Run public publisher revenue screens, fetch Sulvo reports, and manage approved publisher inventory through the same API surface used by the CLI and MCP server.

Hosted Base

https://publisher-revenue-audit.sulvo.com/v1/publisher-revenue-audits CLI and MCP setup

Basics

Base URLs

The public audit endpoint is intentionally unauthenticated. Sulvo account reports and inventory calls use a dashboard-generated API key.

Public audit API

POST
https://publisher-revenue-audit.sulvo.com/v1/publisher-revenue-audits

Sulvo account API

Bearer API key
https://surge.sulvo.com/api

Hosted MCP endpoint

MCP
https://publisher-revenue-audit.sulvo.com/mcp

Public Endpoint

Run a revenue audit

Use this endpoint for a directional public-evidence screen of a publisher domain. The response is not proof of revenue loss or guaranteed lift; validate findings against publisher-side reporting.

cURL
curl -X POST https://publisher-revenue-audit.sulvo.com/v1/publisher-revenue-audits \
  -H "content-type: application/json" \
  -d '{
    "tool": "run_publisher_revenue_audit",
    "input": {
      "domain": "example.com",
      "vertical": "news",
      "options": {
        "format": "json",
        "compact": true,
        "maxPages": 2,
        "enablePageSpeed": true
      }
    }
  }'
Field Notes
input.domainRequired publisher domain or public host. Bare domains are normalized to HTTPS. Private targets, raw IPs, internal hosts, and non-standard ports are rejected.
input.verticalOptional. Accepts news, sports, entertainment, technology, education, gaming, or other.
input.metricsOptional publisher-supplied dashboard context such as fill rate, viewability, average CPM, revenue per session, monthly pageviews, or monthly sessions.
input.optionsOptional output and collection controls, including format, compact, maxPages, includeEvidence, enableBrowser, includeScreenshots, enablePageSpeed, pageSpeedStrategy, concurrency, whiteLabel, and partnerId.

Authentication

Use a Sulvo API key for account APIs

Generate an API key in the Sulvo dashboard under Account Settings. Send it as a Bearer token on Sulvo account API requests.

Authorization header
Authorization: Bearer $SULVO_API_KEY

reports:read

Required for report exports and saved-report listing.

reports:write

Required to create, update, run, or delete advanced reports.

inventory:write

Required for ad-unit creation and deletion. The account must be approved and own the inventory.

Reports

Read report endpoints

Read reports use GET requests under the Sulvo account API base. Date-only values are interpreted as full UTC-day bounds.

Report request
curl "https://surge.sulvo.com/api/v1/reports/by-date?start=2026-06-01&end=2026-06-07&domains=example.com" \
  -H "authorization: Bearer $SULVO_API_KEY" \
  -H "accept: application/json"
Method Path Notes
GET/api/v1/reports/by-dateDaily performance summary. Supports date, domain, ad root, and provider filters.
GET/api/v1/reports/by-date-and-ad-unitDaily performance grouped by ad unit.
GET/api/v1/reports/by-domain-and-ad-unitDomain and ad-unit performance breakdown.
GET/api/v1/reports/bot-filteringBot filtering report for account traffic quality review.
GET/api/v1/reports/bot-scoresBot score reporting by date and related dimensions.
GET/api/v1/reports/invalid-activityInvalid activity reporting. No standard date/domain query is required.
GET/api/v1/reports/direct-bidder-analysisDirect bidder report. Requires directBidder and can include start/end.
GET/api/v1/inventory/ad-units-by-domainAd-unit inventory grouped by domain.

Common query parameters: start, end, repeatable domains, repeatable adRoots, and adProvider. Direct bidder analysis also requires directBidder.

Advanced Reports

Create scheduled or immediate email reports

Advanced reports can run immediately or recur on a schedule. They are delivered by email rather than returned inline.

Save advanced report
curl -X POST https://surge.sulvo.com/api/v2/reports/save-advanced-report \
  -H "authorization: Bearer $SULVO_API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "reportType": "dimensions",
    "toAddress": "publisher@example.com",
    "immediateRun": true,
    "domains": ["example.com"],
    "dimensions": ["country", "device"],
    "start": "2026-06-01",
    "end": "2026-06-07"
  }'
Method Path Notes
GET/api/v2/reports/advanced-reportsList saved advanced reports for the authenticated account.
POST/api/v2/reports/save-advanced-reportCreate or update an advanced report. Requires reportType, toAddress, immediateRun, and at least one adRoots or domains target.
DELETE/api/v2/reports/delete-advanced-report/{reportId}Delete a saved advanced report by id.

Report types

adUnit, dimensions, customData

Dimensions

country, device, os

Frequency

daily, weekly, biweekly, monthly

Inventory

Create and delete approved ad units

Inventory writes require an approved Sulvo account and an owner-minted API key with inventory:write scope.

Create ad unit
curl -X PUT https://surge.sulvo.com/api/v2/inventory/unit \
  -H "authorization: Bearer $SULVO_API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "domain": "example.com",
    "type": "display",
    "size": { "width": 300, "height": 250 }
  }'
Method Path Notes
PUT/api/v2/inventory/unitCreate a single ad unit with domain, type, optional size, placement, custom name, and focusedAd settings.
PUT/api/v2/inventory/interstitial-unitsCreate desktop and/or mobile interstitial units for a domain.
PUT/api/v2/inventory/auto-sticky-unitsCreate sticky display and/or sticky mobile units for a domain.
DELETE/api/v2/inventory/unit/{adId}Delete an ad unit owned by the authenticated account.

Supported ad unit types

displaynative_multisticky_displaysticky_mobilesticky_display_customsticky_mobile_customsticky_videointerstitial_desktopinterstitial_mobileofferwall

Errors

Error handling

Non-2xx audit responses and Sulvo account API failures return JSON bodies designed for agent and CLI clients.

401

The API key is missing, invalid, or expired for account API calls. The public audit endpoint does not require a key.

403

The key authenticated but lacks the required scope, the account is not approved, or the resource belongs to a different account.

503 / 504

The public audit service is saturated or the audit timed out. Retry later and respect Retry-After when present.

Audit error envelope
{
  "error": {
    "code": "audit_capacity_exceeded",
    "message": "Audit capacity is currently exhausted. Retry later."
  }
}

MCP and CLI

Prefer a packaged client?

The npm package and MCP setup call these endpoints for you and expose the same audit, report, and inventory workflows to compatible AI clients.

View setup

Sulvo 是一個以發布商為核心的全球智慧平台,協助數位發布商將廣告收入最大化。我們的專利技術能協助發布商找出網站上對收入影響最大的錯誤,這些錯誤會造成曝光與廣告收入的流失。Sulvo 的技術能挽回因網站程式碼設定錯誤、廣告單元設定不佳與元件過時而流失的曝光,甚至能協助發布商從廣告攔截器、機器人與 AI 代理中挽回廣告收入,並透過網站稽核優化網站效能,提供企業級的機器人過濾——這一切在每月 2.5 億次廣告曝光以內皆免收廣告投放費用。深受全球 50 多種語言的企業發布商信賴。

© by Sulvo Europe OÜ. 保留一切權利。

Chrome、Ad Manager、AdSense 與 Google 為 Google LLC 的註冊商標。

使用條款 · 隱私政策 · 簡訊隱私政策
Google Certified Publishing Partner