outfigure
The Python client for the OutFigure API.
OutFigure keeps three things apart for a learning platform: what a learner did with help, what they did without it, and whether a change to the teaching moved the second. This package sends your learning events and outcomes to the API and reads back evidence, learner states and Outcome Receipts.
The hosted API is a sandbox for invited partners, with test data only. To ask about a pilot, write to hello@outfigure.in.
Install
pip install outfigure
Python 3.11 or later. The client uses the standard library only, so it brings no other packages with it. Use it on your server: an API key never belongs in a browser.
Send an event and read the evidence
import os
from datetime import datetime, timezone
from outfigure import OutFigure
client = OutFigure(
api_key=os.environ["OUTFIGURE_API_KEY"],
base_url="https://console.outfigure.in",
)
receipt = client.events.send(
{
"schema_version": "1.0",
"event_id": "evt_demo_0001",
"event_type": "response",
"learner_id": "learner_demo_01",
"occurred_at": datetime.now(timezone.utc).isoformat(),
"source": "partner_backend",
"session_id": "session_demo_01",
"item_id": "question_012",
"item_version": "1",
"attempt_id": "attempt_demo_01",
"attempt_number": 1,
"response_kind": "binary",
"correct": True,
"assistance": "none",
"hint_count": 0,
"feedback_seen": False,
},
idempotency_key="demo-send-0001",
)
client.jobs.wait(receipt["job_ids"], timeout=15)
state = client.learners.state("learner_demo_01")
One response is thin evidence. A learner's state on a concept stays
insufficient_evidence until it has at least five eligible attempts across two
sessions, and missing data is never turned into a score.
How it behaves
- Fields use the API's own names (
learner_id,item_version), and requests and responses are typed asTypedDicts inoutfigure.types. - Network failures and 429, 502, 503 and 504 are retried at most three times,
with the same body and idempotency key, honouring
Retry-After. Other errors are raised asApiErrorwith the code, status and request ID. - No telemetry, no background work, no local copy of learner data.
The full reference, with every route and scope, is at outfigure.in/developers.
Licence
MIT. This covers the client only; the OutFigure service is not open source.
Metadata
Release files for outfigure 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| outfigure-0.3.0.tar.gz | 40.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| outfigure-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 71.8 kB
Release files / outfigure-0.3.0.tar.gz
| Download URL | outfigure-0.3.0.tar.gz |
|---|---|
| Size | 40.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dda9592da175e6f5988738cb4bf407a5462550b38ac3c68de47cd81b49442866
|
|
BLAKE2b-256 checksum How to use checksums |
57bf3963ba60535787ff5c912f6077fb0c025126bfe2be669f0d230836fe833d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.
Transparency logRelease files / outfigure-0.3.0-py3-none-any.whl
| Download URL | outfigure-0.3.0-py3-none-any.whl |
|---|---|
| Size | 31.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
229a317ac0fed6b81276003622a638ee2c4a1c445620d2e344191ca89f76dd41
|
|
BLAKE2b-256 checksum How to use checksums |
9cbd2ac63d4a1cc9e8477261b149d21e07e6d529c4e02b1d283bf899a6f68f72
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 15, 2026.
Transparency log