BibexPy — V2 Helium

HTTP API

Everything the web interface does goes through a documented HTTP API under the /api namespace — every workflow step can be automated and integrated into external scripts.

Interactive documentation

With BibexPy running, open:

http://127.0.0.1:6060/api/docs

FastAPI's interactive Swagger UI lists every endpoint with schemas and lets you call them directly from the browser.

Shape of the API

| Area | Examples | | --- | --- | | Projects | GET/POST /api/projects, file upload, deletion | | Merge | start Smart Merge, poll job progress (SSE stream) | | Records | query/filter records, quality overview, uncertain pairs | | Harmonization | disambiguation runs, address roll-up, enrichment jobs | | Export | trigger exports, download generated files | | Report | audit log, operation report generation | | Settings | provider keys, thresholds | | Tools | standalone format conversion |

Long-running operations run as jobs: you start one, then follow progress via the jobs endpoint or its server-sent-events stream — exactly how the UI does it.

Example: drive a merge from Python

import requests

BASE = "http://127.0.0.1:6060/api"

# create a project and upload raw exports
p = requests.post(f"{BASE}/projects", json={"name": "Scripted"}).json()
with open("scopus.csv", "rb") as f:
    requests.post(f"{BASE}/projects/{p['id']}/files", files={"files": f})

# start the merge job and poll it
job = requests.post(f"{BASE}/projects/{p['id']}/merge/smart").json()

Local by design

The API binds to 127.0.0.1 — it is your local automation surface, not a public service. Scripts running on the same machine need no authentication.