Integration guide

Call ServoSignal with ordinary HTTP and x402.

All paid routes accept JSON POST bodies, return JSON, and advertise fixed USDC prices through x402 v2.

Endpoints

RoutePriceUse it for
/v1/company/signals$0.05 / 50,000 atomicFresh trigger-event detection
/v1/company/deal-brief$0.25 / 250,000 atomicDefault account-research brief
/v1/company/deal-brief/deep$0.75 / 750,000 atomicStrategic-account research and planning

Plain cURL challenge inspection

curl -i -X POST https://signal.servocenter.com/v1/company/signals \
  -H 'content-type: application/json' \
  --data '{"company":"hubspot.com","lookbackDays":90}'

Expect HTTP 402 and inspect the PAYMENT-REQUIRED response header. Base mainnet USDC is required.

JavaScript x402 buyer

import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const signer = privateKeyToAccount(process.env.EVM_PRIVATE_KEY);
const client = new x402Client();
client.register("eip155:*", new ExactEvmScheme(signer));
const paidFetch = wrapFetchWithPayment(fetch, client);

const response = await paidFetch(
  "https://signal.servocenter.com/v1/company/deal-brief",
  {
    method: "POST",
    headers: { "content-type": "application/json" },
    body: JSON.stringify({
      company: "hubspot.com",
      seller: {
        product: "Automated cloud cost optimization",
        valueProposition: "Reduce unnecessary infrastructure spend",
        idealCustomerProfile: "B2B software companies with 200+ employees"
      }
    })
  }
);
console.log(await response.json());

Python x402 buyer

import os
from eth_account import Account
from x402 import x402ClientSync
from x402.http.clients import x402_requests
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact.register import register_exact_evm_client

client = x402ClientSync()
account = Account.from_key(os.environ["EVM_PRIVATE_KEY"])
register_exact_evm_client(client, EthAccountSigner(account))

with x402_requests(client) as session:
    response = session.post(
        "https://signal.servocenter.com/v1/company/signals",
        json={"company": "hubspot.com", "lookbackDays": 90},
    )
    print(response.json())

Successful response shape

{
  "requestId": "...",
  "company": { "name": "...", "domain": "..." },
  "qualification": { "fitScore": 72, "fitLabel": "good", "reasons": [] },
  "whyNow": [{ "reason": "...", "evidenceIds": ["source_1"] }],
  "recommendedApproach": { "messageAngle": "...", "recommendedAction": "..." },
  "sources": [{ "id": "source_1", "url": "https://..." }],
  "freshness": { "generatedAt": "...", "lookbackDays": 90 }
}

Error model

{
  "error": {
    "code": "INVALID_COMPANY",
    "message": "Provide a valid company name or public domain.",
    "requestId": "..."
  }
}