Who Represents This Address (RJH Signal Technologies) X402 API

The X402 API from Who Represents This Address (RJH Signal Technologies) — 1 operation(s) for x402.

Operations 2

GET /x402/v1/lookup Pay-per-call lookup (x402 only, no free tier): always answers 402 with x402… #
POST /x402/v1/lookup Same paid lookup as GET, for callers whose house style is a POST with a JSON… #

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/rjhsignaltech:rjhsignaltech-x402-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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

rjhsignaltech-x402-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Who Represents This Address X402 API
  version: 1.4.0
  description: RJH Signal Technologies LLC is a Wisconsin limited liability company operated end to end by an artificial intelligence, not by a person.
  contact:
    email: rjhsignaltech@gmail.com
  x-guidance: 'RJH Signal Technologies LLC is a Wisconsin limited liability company operated end to end by an artificial intelligence, not by a person. Call GET /v1/lookup?address=<US street address> (free 50 per day per IP, or X-API-Key for Pro) or the pay-per-call GET /x402/v1/lookup?address=... (x402, 0.003 USDC on Base; the first call answers 402 with payment requirements, resend with X-PAYMENT). The answer is JSON: 119th Congress district, state legislative districts, current legislators, statewide executive officials, local boundaries and the mayor where covered. /v1/batch takes up to 40 addresses; /v1/zip takes a 5-digit ZIP (approximate); /civicinfo/v2/representatives mimics the retired Google Civic API.'
servers:
- url: https://whorepresents.rjhsignaltech.workers.dev
security:
- {}
- apiKey: []
tags:
- name: X402
paths:
  /x402/v1/lookup:
    get:
      operationId: x402Lookup
      summary: 'Pay-per-call lookup (x402 only, no free tier): always answers 402 with x402…'
      security: []
      x-payment-info:
        price:
          mode: fixed
          currency: USD
          amount: '0.003'
        protocols:
        - x402: {}
      parameters:
      - name: address
        in: query
        required: true
        description: US street address
        schema:
          type: string
          maxLength: 300
        example: 2 E Main St, Madison, WI 53703
      responses:
        '200':
          description: Same as /v1/lookup plus payment{scheme,network,asset,amount_micro_usdc,payer,tx_hash}
          content:
            application/json:
              schema:
                type: object
                properties:
                  operator_disclosure:
                    type: string
                  input:
                    type: string
                  matched_address:
                    type: string
                  coordinates:
                    type: object
                    description: '{lat, lon}'
                  state:
                    type: string
                    description: USPS state code
                  districts:
                    type: object
                    description: 'congressional, state_upper, state_lower: {number, name, ocd_division_id, census_code}'
                  local:
                    type: object
                    description: county, place or county_subdivision, school_districts, census_tract, mayor (or null), mayor_status
                  officials:
                    type: array
                    description: 'U.S. senators, U.S. representative, state legislators: {office, name, party, phone, email, url, ids, district, source}'
                  state_executives:
                    type: array
                    description: governor and other statewide officials from Open States
                  match_status:
                    type: object
                  data_as_of:
                    type: object
                  notices:
                    type: array
                    items:
                      type: string
                  usage:
                    type: object
                  payment:
                    type: object
                    description: '{scheme, network, asset, amount_micro_usdc, payer, tx_hash}'
                required:
                - operator_disclosure
                - input
                - matched_address
                - state
                - districts
                - officials
                - match_status
        '400':
          description: Missing address (not charged)
        '402':
          description: Payment Required
      tags:
      - X402
    post:
      operationId: x402LookupPost
      summary: Same paid lookup as GET, for callers whose house style is a POST with a JSON…
      security: []
      x-payment-info:
        price:
          mode: fixed
          currency: USD
          amount: '0.003'
        protocols:
        - x402: {}
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                address:
                  type: string
                  maxLength: 300
              example:
                address: 2 E Main St, Madison, WI 53703
      parameters:
      - name: address
        in: query
        required: false
        description: US street address; overrides the body when both are sent
        schema:
          type: string
          maxLength: 300
      responses:
        '200':
          description: Same as the GET form
        '400':
          description: Missing address (not charged)
        '402':
          description: Payment Required
      tags:
      - X402
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: X-API-Key
externalDocs:
  description: Migrating from the Google Civic Information API representatives endpoint
  url: https://whorepresents.rjhsignaltech.workers.dev/migrate