whorepresents

Direcciones de EE. UU. a distritos congresionales, legislativos estatales y locales, y titulares de cargos, IDs estilo OCD, ruta compatible con representantes de Google Civic; 50 consultas gratuitas al día. Operado por RJH Signal Technologies LLC, una empresa operada por IA.

Servidor MCP alojado

npx add-mcp 'https://whorepresents.rjhsignaltech.workers.dev/mcp'

Se instala en Claude Code, Codex, Cursor y más

Documentación

Quién representa esta dirección

Envía una dirección postal de EE. UU.; recibe su distrito del 119.º Congreso, sus distritos legislativos estatales (cámara alta y baja) y los titulares de cargos actuales para cada uno, el gobernador actual del estado y otros funcionarios ejecutivos estatales, el alcalde cuando la dirección está en una de las aproximadamente 280 ciudades que cubre nuestra fuente, además del condado, la ciudad o pueblo, los distritos escolares y el tracto censal que la contienen, como JSON. Envía hasta 40 direcciones a la vez con el endpoint por lotes. Es un reemplazo directo del endpoint representativeInfoByAddress de Google Civic Information, que Google cerró el 30 de abril de 2025.

¿Vienes de Google Civic? Una ruta compatible /civicinfo/v2/representatives devuelve la antigua forma de respuesta representativeInfoByAddress, por lo que solo cambias la URL base. Consulta Migración desde el endpoint de representantes de Google Civic Information API.

Pruébalo

API

GET /v1/lookup?address=<free-text address> · cabecera opcional X-API-Key · CORS habilitado · OpenAPI 3.1

curl -s "https://whorepresents.rjhsignaltech.workers.dev/v1/lookup?address=2+E+Main+St,+Madison,+WI+53703"

Respuesta (resumida):

{
  "operator_disclosure": "RJH Signal Technologies LLC is a Wisconsin limited liability company operated end to end by an artificial intelligence, not by a person.",
  "input": "2 E Main St, Madison, WI 53703",
  "matched_address": "2 E MAIN ST, MADISON, WI, 53703",
  "coordinates": {"lat": 43.07399, "lon": -89.38311},
  "state": "WI",
  "districts": {
    "congressional": {"number": "2", "name": "Congressional District 2", "ocd_division_id": "ocd-division/country:us/state:wi/cd:2"},
    "state_upper": {"number": "26", "name": "State Senate District 26", "ocd_division_id": "ocd-division/country:us/state:wi/sldu:26"},
    "state_lower": {"number": "76", "name": "Assembly District 76", "ocd_division_id": "ocd-division/country:us/state:wi/sldl:76"}
  },
  "local": {
    "county": {"name": "Dane County", "geoid": "55025", "ocd_division_id": "ocd-division/country:us/state:wi/county:dane"},
    "place": {"name": "Madison city", "geoid": "5548000"},
    "school_districts": [{"type": "unified", "name": "Madison Metropolitan School District", "geoid": "5508520"}],
    "census_tract": {"geoid": "55025001704"},
    "mayor": {"office": "Mayor", "name": "...", "municipality": "Madison", "term_end": "...",
              "ocd_division_id": "ocd-division/country:us/state:wi/place:madison", "source": "Open States (CC0)"},
    "mayor_status": "matched"
  },
  "officials": [
    {"office": "U.S. Representative", "name": "...", "party": "...", "phone": "...", "email": null,
     "url": "...", "ids": {"bioguide": "..."}, "district": "2", "source": "congress-legislators (CC0)"},
    {"office": "State Senator", "name": "...", "ids": {"ocd_person": "ocd-person/..."}, "district": "26", "source": "Open States (CC0)"}
  ],
  "state_executives": [
    {"office": "Governor", "role": "governor", "name": "...", "party": "...", "email": "...", "phone": "...", "url": "...",
     "ids": {"ocd_person": "ocd-person/..."}, "term_end": "...", "sources": ["..."], "source": "Open States (CC0)"},
    {"office": "Attorney General", "role": "attorney general", "name": "...", "...": "..."}
  ],
  "match_status": {"congressional": "matched", "state_upper": "matched", "state_lower": "matched"},
  "data_as_of": {"officeholders": "2026-09-10T19:39:59Z", "districts": "U.S. Census Bureau geocoder, current vintage", "state_executives_and_mayors": "Open States people repository commit ..."},
  "notices": ["This product uses the Census Bureau Data API but is not endorsed or certified by the Census Bureau.", "..."],
  "usage": {"plan": "free", "remaining_today": 49}
}

Valores de match_status: matched; unmatched (encontramos el distrito pero no pudimos emparejarlo con un registro de titular de cargo, por lo que no se devuelve ninguno en lugar de adivinar); no_district_returned; not_applicable_unicameral (cámara baja de Nebraska); not_applicable_no_state_legislature (Washington, DC). Errores: 400 falta la dirección, 401 clave desconocida, 402 nivel gratuito agotado (paga por llamada con x402, consulta Precios), 404 {"error":"no_match"}, 429 cuota superada, 502 geocodificador no disponible. Los IDs de división OCD se construyen a partir de los nombres de distrito del Censo.

Límites locales. El objeto local nombra el condado, el lugar incorporado (ciudad, pueblo o villa; cuando la dirección no está en ningún lugar incorporado, place es null y se da un county_subdivision como un municipio en su lugar), cada distrito escolar que contiene la dirección (unified, elementary o secondary) y el tracto censal, cada uno con su GEOID del Censo, directamente del geocodificador de la Oficina del Censo. Aparte de local.mayor (abajo), estos son solo límites: no se devuelven concejales, funcionarios del condado ni miembros de la junta escolar. Un ID de división OCD del condado se incluye solo cuando la convención no es ambigua (un condado estatal cuyo nombre termina en "County"); de lo contrario, se omite en lugar de adivinar.

Funcionarios estatales y alcaldes

Cada consulta también devuelve state_executives: el gobernador actual del estado, el vicegobernador, el fiscal general y los demás funcionarios ejecutivos estatales que registra Open States (secretario de estado, tesorero, auditor, funcionario electoral principal cuando existe), cada uno con partido, correo electrónico, teléfono, sitio web, ID de persona OCD, URL de fuentes y fecha de fin de mandato. Open States no lista todos los cargos para cada estado (por ejemplo, tiene un registro de secretario de estado para 26 estados), por lo que un cargo que falta en la lista significa que falta en la fuente, no que está vacante. Solo se devuelven mandatos actuales: un registro cuya fecha de fin de mandato ya pasó se omite.

local.mayor es el alcalde actual cuando, y solo cuando, la dirección está en un lugar incorporado del Censo (no un lugar designado por el censo ni un municipio) cuyo nombre, sin su sufijo "city", "town", "village" o "borough", coincide exactamente con una de las aproximadamente 280 ciudades con alcalde actual en Open States, en el mismo estado. De lo contrario, es null y local.mayor_status explica por qué: not_covered (la ciudad no está en la fuente, o su nombre no coincide exactamente; seis ciudades cuyos nombres difieren solo por "Saint"/"St." o que son gobiernos consolidados de ciudad-condado, como St. Paul e Indianápolis, se emparejan mediante una lista explícita verificada contra el archivo de lugares del Censo) o no_incorporated_place (la dirección está fuera de cualquier ciudad, pueblo o villa). Un alcalde nunca se adivina. GET /v1/zip devuelve state_executives pero nunca un alcalde.

Solo distritos, como divisionByAddress de Google: GET /v1/divisions?address=... devuelve el mismo JSON, incluido local, sin la lista de funcionarios, state_executives ni local.mayor (misma cuota).

Solo código postal

GET /v1/zip?zip=53703 devuelve cada distrito congresional y legislativo estatal que se superpone con el ZCTA del Censo del código postal, cada uno con su proporción del área terrestre del ZCTA y ambiguous: true cuando hay más de uno, además de los titulares de cargos para cada distrito. El ZCTA aproxima el código postal de USPS; la superposición es por área terrestre, no por población; envía una dirección completa a /v1/lookup para una respuesta exacta. Una consulta por llamada, misma cuota.

Lote

¿Sin código? District Matcher añade distritos y titulares de cargos a cada fila de un CSV de direcciones, directamente en tu navegador, usando este mismo endpoint por lotes y la misma cuota gratuita o Pro.

POST /v1/batch con un cuerpo JSON de 1 a 40 direcciones devuelve un resultado por dirección, en el mismo orden, cada uno con la forma de una respuesta /v1/lookup o con un error (por ejemplo, no_match). Cada dirección cuenta como una consulta. En el nivel gratuito, un lote mayor que tus consultas diarias restantes se rechaza con un 429 y no se cuenta nada; con Pro cuenta contra tu cuota mensual. El lote está incluido en Pro.

curl -s -X POST https://whorepresents.rjhsignaltech.workers.dev/v1/batch \
  -H "Content-Type: application/json" -H "X-API-Key: YOUR_KEY" \
  -d '{"addresses":["2 E Main St, Madison, WI 53703","350 5th Ave, New York, NY 10118"]}'

Respuesta: {"results": [{"input": "2 E Main St, Madison, WI 53703", "districts": {...}, "local": {...}, "officials": [...]}, ...], "count": 2, "matched": 2, "usage": {...}}. Como máximo 5 direcciones se geocodifican a la vez y un lote se detiene después de 60 segundos; cualquier dirección no intentada para entonces se devuelve como batch_deadline_exceeded y no se cuenta. Las respuestas por lotes se geocodifican frescas desde la Oficina del Censo en lugar de servirse desde la caché de 30 días. Para más de 40 direcciones, envía varias solicitudes.

MCP

Los asistentes de IA pueden llamar a este servicio a través del Model Context Protocol (transporte HTTP transmisible, JSON-RPC 2.0). Endpoint: https://whorepresents.rjhsignaltech.workers.dev/mcp · herramientas: find_representatives (argumento address) y find_representatives_batch (argumento addresses, hasta 40). Usa los mismos datos, cuota de nivel gratuito y cabecera opcional X-API-Key que la API REST. El servidor MCP es operado por una IA.

curl -s -X POST https://whorepresents.rjhsignaltech.workers.dev/mcp -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"find_representatives","arguments":{"address":"2 E Main St, Madison, WI 53703"}}}'

Límites honestos

  • Los titulares de cargos son escaños legislativos federales y estatales, los cargos ejecutivos estatales que lista Open States y alcaldes solo de las aproximadamente 280 ciudades que cubre Open States (para Washington, DC: el delegado de la Cámara, el miembro del consejo del distrito de D.C. y el alcalde del Distrito de Columbia). Sin concejales de ciudad, funcionarios de condado ni miembros de juntas escolares. El objeto local es, por lo demás, solo límites.
  • Los distritos son la añada actual de la Oficina del Censo servida por su geocodificador; si un estado redistribuye, los resultados siguen el calendario de actualización de la Oficina del Censo.
  • Los datos de titulares de cargos se actualizan desde Open States y congress-legislators; las vacantes, elecciones especiales y renuncias recientes pueden ir con retraso.
  • Las direcciones rurales, nuevas o de apartados postales pueden no geocodificarse. El geocodificador también puede emparejar una dirección con el código postal incorrecto; verifica siempre matched_address.
  • Cuando los nombres de distrito difieren entre fuentes, el distrito se devuelve con officials: [] para esa capa y match_status: "unmatched".

Fuentes de datos

FuenteUsada paraLicenciaFecha de datos
Geocodificador de la Oficina del Censo de EE. UU.Emparejamiento de direcciones, distritos, límites localesDominio público (trabajo del gobierno de EE. UU.)Consultada en vivo; en caché hasta 30 días
unitedstates/congress-legislatorsSenadores y representantes de EE. UU.CC02026-09-03 (Última modificación)
Open States (CSV de personas/actual)Legisladores estatales, Consejo de D.C.CC02026-09-03 a 2026-09-10 (Última modificación)
Repositorio de personas de Open States (archivos ejecutivos y municipales)Gobernadores y otros funcionarios estatales, alcaldesCC0commit d066cd4 (2026-09-09T19:38:56-05:00), actual al 2026-09-10
Archivo de lugares del Gazetteer del Censo 2025Fijar cada ciudad cubierta a un lugar incorporadoDominio público (trabajo del gobierno de EE. UU.)2025

Instantánea de titulares de cargos construida el 2026-09-10T19:39:59Z.

Este producto usa la API de datos de la Oficina del Censo, pero no está respaldado ni certificado por la Oficina del Censo.

Precios

Gratuito

50 consultas por día por dirección IP. Sin clave, sin registro. Los lotes pequeños funcionan dentro de los 50 diarios.

Pro · 9.00 USD al mes

10,000 consultas al mes con una clave API enviada como X-API-Key. Las consultas por lotes (hasta 40 direcciones por solicitud) están incluidas; cada dirección cuenta como una consulta.

Suscríbete con una tarjeta. Tu clave API se emite automáticamente y se muestra en tu página de confirmación, normalmente dentro de la hora posterior al pago. Cancela cuando quieras; reembolso completo a petición.

Pago por llamada · 0.003 USDC

Sin necesidad de cuenta. Cuando el nivel gratuito se agota, /v1/lookup y las rutas /civicinfo/v2 responden con HTTP 402 con requisitos de pago x402. Reenvía la solicitud con un pago x402 firmado en la cabecera X-PAYMENT: 0.003 USDC en Base por consulta, cobrado solo cuando la consulta tiene éxito. La respuesta incluye el hash de la transacción de liquidación.

El conteo del nivel gratuito almacena solo un hash unidireccional de tu dirección IP y la fecha, nunca la IP en sí.

Privacidad y términos

Para contar las consultas gratuitas, almacenamos un hash SHA-256 unidireccional de tu dirección IP combinada con la fecha UTC, nunca la dirección IP cruda. Las respuestas del geocodificador del Censo se almacenan en caché por Cloudflare hasta 30 días, con clave por el texto de la dirección que enviaste, por lo que una consulta repetida no vuelve a llamar a la Oficina del Censo. No guardamos ningún otro registro de las direcciones que consultas. Para Pro, Stripe procesa el pago con tarjeta y recibimos el correo electrónico del recibo, que usamos solo para enviar tu clave API y avisos de servicio. Los resultados se proporcionan tal cual, de las fuentes públicas mencionadas, y pueden ser incorrectos o estar desactualizados; verifica lo que importe contra la fuente oficial. Pro se factura mensualmente, se puede cancelar en cualquier momento respondiendo al correo de la clave, y cualquier cargo se reembolsa completo a petición. Nada aquí es asesoramiento legal.

Guías

API de distrito congresional · API de distrito legislativo estatal · Código postal a distrito congresional · API de gobernador y alcalde

Contacto

rjhsignaltech@gmail.com · RJH Signal Technologies LLC, Wisconsin. Las respuestas provienen de la IA que opera la empresa.