Saltar al contenido

Endpoints

Cada ruta es un GET bajo https://georgiacivicdata.org/api/v1, excepto la consulta de zonas escolares, que también acepta un POST. Los parámetros de filtro por conjunto de datos se enumeran en cada página de conjunto de datos.

De un vistazo

EndpointPropósito
/datasetsLista cada conjunto de datos + dimensión
/datasets/{main}/{topic}Esquema completo de un conjunto de datos (JSON)
/datasets/{main}/{topic}/contractContrato ODCS sin procesar (YAML/JSON)
/{main}/{topic}Consulta las filas de un conjunto de datos
/education/_dimensions/{name}Lee una dimensión educativa (districts/schools/demographics)
/_dimensions/{name}Lee una dimensión global (counties/demographics)
/education/_dimensions/{name}/schemaEl esquema de una dimensión
/education/school_attendance_zonesPolígonos de las zonas de asistencia escolar, más /schema y /coverage
/education/school_attendance_zones/lookupZonas en un punto o una dirección, o que cubren un sector censal (GET o POST)
/education/school_district_boundariesLímites de los distritos escolares (Census TIGER/Line)

Catálogo

GET/api/v1/datasets

Un resumen por conjunto de datos (título, fuente, rango de años, niveles de detalle, endpoint) más un bloque dimensions. Sin parámetros.

curl "https://georgiacivicdata.org/api/v1/datasets"

Esquema del conjunto de datos

GET/api/v1/datasets/{main_topic}/{topic}

El esquema completo: cada columna (nombre, tipo, rol, unidad, rango, valores permitidos, descripción), la lista estructurada de filters, las claves foráneas, el puntero key_metric, los años disponibles y el schema_hash. Esto es lo que impulsa esta documentación.

curl "https://georgiacivicdata.org/api/v1/datasets/education/act_scores"
GET/api/v1/datasets/{main_topic}/{topic}/contract

El contrato ODCS v3.2 autoritativo. ?format=yaml (predeterminado) lo devuelve textualmente; ?format=json lo devuelve analizado.

curl "https://georgiacivicdata.org/api/v1/datasets/education/act_scores/contract?format=yaml"

Consulta del conjunto de datos

GET/api/v1/{main_topic}/{topic}

Consulta las filas de un conjunto de datos. Parámetros comunes:

ParámetroDescripción
yearAño exacto. Excluyente con el rango de abajo.
year_min / year_maxRango de años inclusivo.
detailstates / counties / districts / schools (lo que publique el conjunto de datos).
district_code / school_code / county_fips / demographicListas de códigos separadas por comas (cuando exista la columna).
parámetros por categoríaUn parámetro por columna categórica (ver la página del conjunto de datos).
limit / offsetTamaño de página (predeterminado 1000, máximo 10000) y desplazamiento.
formatjson (predeterminado) / csv / parquet.
curl "https://georgiacivicdata.org/api/v1/education/act_scores?year=2024&test_component=composite&detail=districts"

Dimensiones

GET/api/v1/education/_dimensions/{name}

Lee una tabla de búsqueda del ámbito educativo — districts, schools o demographics — paginada con limit / offset. Estas aportan las columnas de etiqueta que las consultas de hechos unen.

curl "https://georgiacivicdata.org/api/v1/education/_dimensions/districts?limit=10"
GET/api/v1/_dimensions/{name}

Lee una tabla de búsqueda global — counties (los 159 condados de Georgia, código FIPS + nombre) o demographics. La ruta educativa de arriba se mantiene para districts, schools y demographics.

curl "https://georgiacivicdata.org/api/v1/_dimensions/counties?limit=10"
GET/api/v1/education/_dimensions/{name}/schema

La clave primaria, los atributos y las claves de enlace de una dimensión.

Zonas de asistencia escolar

Las zonas de asistencia escolar son las áreas que un distrito escolar usa para asignar una dirección a una escuela, por nivel (primaria, secundaria, preparatoria) y rango de grados. Las zonas se reconstruyen a partir de fuentes publicadas por los distritos y por proveedores, con distintos grados de actualidad y precisión, y algunos distritos no tienen zonas (ver /coverage). Una zona o una consulta no es una determinación oficial de inscripción: confirma los resultados con el distrito escolar.

GET/api/v1/education/school_attendance_zones

Polígonos de las zonas, uno por escuela, nivel y rango de grados. Parámetros:

ParámetroDescripción
district_code / school_code / zone_levelListas separadas por comas. zone_level es elementary (primaria), middle (secundaria) o high (preparatoria).
gradepk, k o 01–12: solo las zonas que atienden ese grado.
yearAño escolar en que rigen las zonas, indicado por su año final (2027 = 2026–27).
formatgeojson (predeterminado) / shapefile (un zip con una capa por nivel) / geoparquet / json (solo atributos, sin geometría).
resolutiondisplay (predeterminado; simplificada como una cobertura, así que las zonas vecinas conservan sus bordes compartidos) / full (los polígonos de resolución completa que usa la consulta).

Las propiedades de cada zona incluyen las etiquetas de la escuela y del distrito, nces_school_id, nces_lea_id y su procedencia: method, accuracy_class, positional_rmse_m, boundary_vintage, currency_status, currency_note (qué cambió y cuándo, para una zona cuya fuente es anterior a un cambio aprobado), source_url, source_publisher y retrieved_on. Todos los formatos llevan la nota de que una zona no es una determinación oficial de inscripción: un note de nivel superior en GeoJSON y json, un README.txt en el zip del shapefile y los metadatos del archivo GeoParquet.

curl "https://georgiacivicdata.org/api/v1/education/school_attendance_zones?district_code=761&zone_level=high"
GET/api/v1/education/school_attendance_zones/schema

Cada campo con su tipo y descripción, el significado de cada valor enumerado, el sistema de referencia de coordenadas (OGC:CRS84: longitud, latitud), la correspondencia de cada campo con su nombre de campo de shapefile de 10 caracteres y los archivos complementarios, con las columnas de la tabla de cobertura. Un campo de texto de shapefile admite como máximo 254 bytes, así que un valor más largo (un boundary_vintage o un source_url largos) se corta ahí y termina en ...; los demás formatos llevan el texto completo, y currency_note siempre cabe.

GET/api/v1/education/school_attendance_zones/coverage

Una fila por distrito escolar de Georgia: su estado (complete, partial, one_school_per_grade o not_available), el estado de cada nivel (zoned, one_school_per_grade, partial, not_available o served_by_other_district), la proporción de su superficie y de su población de 2020 que cubren las zonas, y por qué falta algo. format=json (predeterminado) o geojson (con los contornos de los distritos).

GET/api/v1/education/school_attendance_zones/lookup

Indica lat y lon, o tract_geoid, más un grade y un year opcionales.

ParámetroDevuelve
lat + lonLas zonas que contienen el punto, el sector censal de 2020 y el condado del punto, su distrito (código, nombre, id del Censo, id de LEA del NCES), un level_status para cada nivel escolar y un coverage_status con el motivo. Una zona cuya fuente es anterior a un cambio de límites que no se pudo aplicar añade un currency_warning que dice qué cambió, por nivel.
tract_geoidCada zona que cubre un sector censal de 2020, con la proporción de la población de 2020 del sector en cada una (del conjunto de datos de correspondencia school_attendance_zone_tracts). Si ninguna zona cubre el sector, un coverage_reason dice por qué.
coverage_statusSignificado
zonedEl punto está dentro de una zona en cada nivel escolar que corresponde a sus grados.
gapEl distrito tiene zonas, pero al menos un nivel escolar no tiene ninguna en este punto (las zonas de los otros niveles se siguen mostrando).
one_school_per_gradeEl distrito tiene una sola escuela para cada grado, así que la zona de esa escuela es todo el distrito.
not_availableEl distrito no publica zonas en uno o más niveles escolares que corresponden a los grados del punto (las zonas de los otros niveles se siguen mostrando); el motivo explica por qué.
not_zonedNinguna zona de asistencia del distrito asigna el grado consultado (prekínder, cuyas plazas se asignan por solicitud).
outside_georgiaEl punto está fuera de Georgia.

Cada respuesta incluye una nota de que no es una determinación oficial de inscripción, y se envía con Cache-Control: no-store. Un GET pone las coordenadas en la URL, que pasa por nuestra plataforma de alojamiento; nuestra aplicación nunca las escribe en sus registros. Para mantener un punto fuera de las URL, envíalo por POST.

curl "https://georgiacivicdata.org/api/v1/education/school_attendance_zones/lookup?lat=33.7479&lon=-84.3903&grade=09"
POST/api/v1/education/school_attendance_zones/lookup

Un cuerpo JSON con exactamente una de las siguientes opciones, más un grade y un year opcionales:

CuerpoDescripción
{"address": "..."}Una dirección, geocodificada por el U.S. Census Geocoder, el geocodificador de la Oficina del Censo (benchmark Public_AR_Current, vintage Census2020_Current). La respuesta agrega la dirección encontrada, sus coordenadas y el sector censal que indica el geocodificador.
{"lat": .., "lon": ..}Un punto.
{"points": [{"id", "lat", "lon"}, ...]}Hasta 1000 puntos; cada resultado lleva su id.

Las direcciones solo se aceptan por POST, así que nunca aparecen en una URL. Nuestra aplicación nunca escribe direcciones ni coordenadas en sus registros de aplicación, ni las guarda en caché ni las conserva. POST también es la forma privada de enviar un punto. Las respuestas se envían con Cache-Control: no-store. Límites de frecuencia por cliente: 120 solicitudes por minuto para las consultas GET y 20 por minuto para POST.

curl -X POST "https://georgiacivicdata.org/api/v1/education/school_attendance_zones/lookup" \
  -H "Content-Type: application/json" \
  -d '{"address": "55 Trinity Ave SW, Atlanta, GA 30303"}'
GET/api/v1/education/school_district_boundaries

Límites de los distritos escolares de Georgia de Census TIGER/Line, identificados por district_code. Filtra con district_code; las mismas opciones de format que las zonas.