WritersLogic Verifiable AI Agent Hub Competitor Battlecard API

The Competitor Battlecard API from WritersLogic Verifiable AI Agent Hub — 1 operation(s) for competitor battlecard.

GitHub OpenAPI

Operations 1

POST /api/v1/competitor-battlecard SaaS Pricing & Competitor Battlecard Spy #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/writerslogic-com:writerslogic-com-competitor-battlecard-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

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 Specification

writerslogic-com-competitor-battlecard-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: WritersLogic Verifiable AI Agent Hub Competitor Battlecard…
  version: 2.0.0
  description: Pay-per-call agents settled in USDC on Base via x402. Every response carries a signed provenance envelope.
  contact:
    name: WritersLogic
    url: https://writerslogic.com/agents
    email: agents@writerslogic.com
servers:
- url: https://agents.writerslogic.com
tags:
- name: Competitor Battlecard
paths:
  /api/v1/competitor-battlecard:
    post:
      operationId: competitor_battlecard
      summary: SaaS Pricing & Competitor Battlecard Spy
      description: 'Reads up to 3 competitor sites (homepage and pricing page, fetched in parallel) and returns a deal battlecard in under a minute: a verdict headline with confidence, pricing tiers whose amounts are checked against the page text, a scenario cost comparison computed in code, hidden fees and limits, landmine questions, objection handling, wedge features and a talk track. If a site or model step fails you get a signed partial result that names what is missing. Pricing is only as current as the public pages; unverified prices are flagged.


        Price: 1.50 USDC on Base (x402).'
      x-x402-price-usdc: '1.50'
      x-x402-amount: '1500000'
      x-payment-info:
        protocols:
        - x402
        price:
          mode: fixed
          currency: USD
          amount: '1.50'
      x-audience: business
      x-sample-url: https://agents.writerslogic.com/api/v1/samples/competitor-battlecard
      security:
      - x402: []
      - apiKey: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: false
              required:
              - ourProductDescription
              - competitorUrls
              properties:
                ourProductDescription:
                  type: string
                  minLength: 20
                  maxLength: 4000
                competitorUrls:
                  type: array
                  minItems: 1
                  maxItems: 3
                  items:
                    type: string
                    minLength: 3
                    maxLength: 2048
                  description: Competitor homepage or pricing URLs. A same-site pricing page is discovered automatically.
                scenario:
                  type: object
                  additionalProperties: false
                  description: 'Optional deal size used to compute monthly and annual cost per verified tier: seats for per-seat prices, monthlyVolume for usage prices.'
                  properties:
                    seats:
                      type: integer
                      minimum: 1
                      maximum: 100000
                    monthlyVolume:
                      type: integer
                      minimum: 0
                      maximum: 1000000000
            example:
              ourProductDescription: Acme Support is an AI-first help desk with usage-based pricing ($0.40 per resolved ticket), SSO on every plan, and native Slack and Shopify integrations.
              competitorUrls:
              - https://www.zendesk.com
              - https://www.intercom.com
              - https://www.freshworks.com/freshdesk/
      responses:
        '200':
          description: Paid result with provenance
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    additionalProperties: false
                    required:
                    - our_positioning
                    - competitors
                    - talk_track
                    - evidence_gaps
                    - status
                    - headline
                    - confidence
                    - next_steps
                    - missing
                    - elapsedMs
                    - pricing_comparison
                    - pricing_scenario
                    - priceVerification
                    - pricingEvidence
                    - pagesScraped
                    - fetchFailures
                    - generatedAt
                    properties:
                      our_positioning:
                        type: string
                      competitors:
                        type: array
                        items:
                          type: object
                          additionalProperties: false
                          required:
                          - name
                          - url
                          - positioning
                          - target_segment
                          - pricing_model
                          - pricing_tiers
                          - hidden_fees_and_limits
                          - enterprise_upsell_triggers
                          - strengths
                          - weaknesses
                          - landmine_questions
                          - objection_handling
                          - wedge_features
                          properties:
                            name:
                              type: string
                            url:
                              type: string
                            positioning:
                              type: string
                              description: Their core claim, paraphrasing their own copy.
                            target_segment:
                              type: string
                            pricing_model:
                              type: string
                              description: e.g. per seat, usage-based, flat tiers, contact sales. "not published" if absent.
                            pricing_tiers:
                              type: array
                              items:
                                type: object
                                additionalProperties: false
                                required:
                                - tier
                                - price
                                - billing
                                - key_limits
                                - notable_features
                                properties:
                                  tier:
                                    type: string
                                  price:
                                    type: string
                                    description: One amount exactly as shown on the page (e.g. "$55 per agent/month"), or "not listed". Put discounts, annual-vs-monthly differences and other amounts in notable_features, not here.
                                  billing:
                                    type: string
                                  key_limits:
                                    type: array
                                    items:
                                      type: string
                                  notable_features:
                                    type: array
                                    items:
                                      type: string
                            hidden_fees_and_limits:
                              type: array
                              items:
                                type: string
                            enterprise_upsell_triggers:
                              type: array
                              items:
                                type: string
                              description: Features or limits that force an upgrade (SSO, audit logs, seat caps...).
                            strengths:
                              type: array
                              items:
                                type: string
                            weaknesses:
                              type: array
                              items:
                                type: string
                            landmine_questions:
                              type: array
                              items:
                                type: object
                                additionalProperties: false
                                required:
                                - question
                                - exposes
                                properties:
                                  question:
                                    type: string
                                  exposes:
                                    type: string
                            objection_handling:
                              type: array
                              items:
                                type: object
                                additionalProperties: false
                                required:
                                - objection
                                - response
                                properties:
                                  objection:
                                    type: string
                                  response:
                                    type: string
                            wedge_features:
                              type: array
                              items:
                                type: object
                                additionalProperties: false
                                required:
                                - feature
                                - why_we_win
                                properties:
                                  feature:
                                    type: string
                                  why_we_win:
                                    type: string
                      talk_track:
                        type: string
                        description: A 3-5 sentence opener for a live deal against these competitors.
                      evidence_gaps:
                        type: array
                        items:
                          type: string
                        description: What could not be verified from the scraped pages.
                      pricing_comparison:
                        type: string
                        description: Computed in code from prices verified on the scraped pages; the model does not write it.
                      pricing_scenario:
                        type: object
                        description: Monthly and annual cost per verified tier at the scenario. assumed is true when no scenario was given and 10 seats / 1,000 monthly units were used.
                      status:
                        type: string
                        enum:
                        - complete
                        - partial
                        description: partial when a fetch or model step failed; missing lists what.
                      headline:
                        type: string
                        description: 'One-paragraph verdict: competitors analyzed, pricing published, verified-tier count, lowest verified cost at the scenario.'
                      confidence:
                        type: string
                        enum:
                        - high
                        - medium
                        - low
                        description: high only when every priced tier was verified against the page and nothing is missing.
                      next_steps:
                        type: array
                        items:
                          type: string
                      missing:
                        type: array
                        items:
                          type: string
                        description: Sections that could not be produced (failed fetches or model steps); empty when status is complete.
                      elapsedMs:
                        type: integer
                      priceVerification:
                        type: array
                        items:
                          type: object
                        description: 'Per model-written tier: verified | unverified | no_amount against the scraped text.'
                      pricingEvidence:
                        type: array
                        items:
                          type: object
                        description: 'Per competitor: whether any price or structured offer was found (pricingPublished).'
                      pagesScraped:
                        type: array
                        items:
                          type: string
                      fetchFailures:
                        type: array
                        items:
                          type: object
                      generatedAt:
                        type: string
                  _provenance:
                    type: object
                    description: C2PA-aligned manifest and W3C VC 2.0 (eddsa-jcs-2022) issued by the hub DID; verify at POST /api/v1/verify-provenance
                required:
                - data
                - _provenance
        '400':
          description: Invalid request (no payment consumed)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
        '401':
          description: Invalid X-API-KEY
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
        '402':
          description: Payment required or invalid
          content:
            application/json:
              schema:
                type: object
                description: x402 v2 PaymentRequired (also base64 in the PAYMENT-REQUIRED header)
                properties:
                  x402Version:
                    type: integer
                  error:
                    type: string
                  code:
                    type: string
                  resource:
                    type: object
                  accepts:
                    type: array
                    items:
                      type: object
                  extensions:
                    type: object
        '502':
          description: Upstream failure; the payment is released or not settled
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
      tags:
      - Competitor Battlecard
components:
  securitySchemes:
    x402:
      type: apiKey
      in: header
      name: PAYMENT-SIGNATURE
      description: x402 v2 payment payload (base64) sent after a 402 challenge
    apiKey:
      type: apiKey
      in: header
      name: X-API-KEY