apispain
v1.0.0
Published
SDK oficial para la API de datos públicos de España (BORME, BOE, BDNS, PLACE)
Maintainers
Readme
apispain
SDK oficial para la API de datos públicos de España.
Accede a licitaciones (PLACE), subvenciones (BDNS), sociedades (BORME) y normativa (BOE) con una sola librería.
Instalación
npm install apispainInicio rápido
import Apispain from 'apispain'
const client = new Apispain({ apiKey: 'tu-api-key' })
// Licitaciones abiertas
const { data } = await client.place.getLicitaciones({ abiertas: true, limit: 10 })
console.log(data[0].objeto)
// Subvenciones por CCAA
const subs = await client.bdns.getSubvenciones({ ccaa: 'Cataluña', limit: 5 })
// Sociedad por ID
const soc = await client.borme.getSociedadById('ES123456789')Constructor
new Apispain({
apiKey: string, // requerido
baseUrl: string, // default: 'https://api.apispain.es/v1'
timeout: number, // ms, default: 30000
})Namespaces
client.place — Licitaciones (PLACE)
| Método | Parámetros |
|--------|-----------|
| getLicitaciones(params) | q, cpv, organo, abiertas, importeMin, importeMax, limit, cursor |
| getLicitacionById(id) | — |
client.bdns — Subvenciones (BDNS)
| Método | Parámetros |
|--------|-----------|
| getSubvenciones(params) | q, ccaa, sector, abiertas, importeMin, importeMax, limit, cursor |
| getSubvencionById(id) | — |
client.borme — Registro Mercantil
| Método | Parámetros |
|--------|-----------|
| getSociedades(params) | q, provincia, limit, cursor |
| getSociedadById(id) | — |
| getActos(params) | tipo, fechaDesde, limit, cursor |
client.boe — Boletín Oficial del Estado
| Método | Parámetros |
|--------|-----------|
| getDocumentos(params) | q, seccion, fecha, limit, cursor |
| getDocumentoById(id) | — |
client.webhooks
| Método | Descripción |
|--------|-------------|
| list() | Lista tus webhooks |
| create({ url, eventos }) | Crea un webhook |
| delete(id) | Elimina un webhook |
Manejo de errores
import { ApispainError } from 'apispain'
try {
const data = await client.place.getLicitaciones({ limit: 20 })
} catch (err) {
if (err instanceof ApispainError) {
console.error(err.status) // 401, 429, 500...
console.error(err.message) // mensaje legible
console.error(err.body) // body JSON completo
}
}Paginación
Todas las listas devuelven { data, pagination: { nextCursor } }. Pasa cursor en la siguiente llamada:
let cursor
do {
const res = await client.bdns.getSubvenciones({ limit: 100, cursor })
processar(res.data)
cursor = res.pagination.nextCursor
} while (cursor)Licencia
MIT
