Skip to main content

record-assessment-backend

Backend SDK for SmartAI Assessment Portal — create sessions and manage assessments from your server.

Install

pip install record-assessment-backend

Usage

from record_assessment_backend import AssessmentClient

client = AssessmentClient(
    api_key="VFN_LIVE_...",
    secret_key="VFN_SK_LIVE_...",
    base_url="https://your-api.com/api/v1",           # optional
    webhook_base_url="https://your-webhook-api.com",   # optional
    timeout=60.0,                                       # optional — create_campaign calls OpenAI server-side
)

Create a session

result = client.create_session(
    candidate_id="mongo_candidate_id",
    name="Jane Doe",
    email="jane@example.com",
)
token = result["token"]

Create a campaign

Generates the assessment immediately. method must be "programming" or "knowledge" and the workflow must have that verification method enabled — "programming" generates a programming-only assessment, "knowledge" generates a mix of mcq/true-false/short-answer/long-answer per the workflow's configured counts. workflow_id, method, and name+email are required — everything else falls back to the workflow's own defaults:

campaign = client.create_campaign(
    workflow_id="wf_...",
    method="knowledge",
    name="Jane Doe",
    email="jane@example.com",
    job_title="Backend Engineer",  # optional
    experience="3",                 # optional
    level="2-5",                    # optional
)
assessment_link = campaign["assessmentLink"]

List assessments

assessments = client.list_assessments()

Poll for events

campaign.generated carries the assessmentLink (the platform link candidates take the assessment at). assessment.completed / assessment.disqualified carry the candidate's full result — score, passed, totalMarks, passMarks, candidateName, candidateEmail, submittedAt, durationMinutes, questionAnswers, proctoring, recording, aiFeedback — plus reportUrl, the shareable link to the candidate's full result report page:

result = client.get_webhook_events()
for event in result["events"]:
    if event["event"] == "campaign.generated":
        print("send to candidates:", event["assessmentLink"])
    elif event["event"] in ("assessment.completed", "assessment.disqualified"):
        print(event["candidateEmail"], event["score"], "passed" if event["passed"] else "failed")
        print("full report:", event["reportUrl"])
if result["events"]:
    client.acknowledge_webhook_events([e["eventId"] for e in result["events"]])

Headers sent on every request

x-api-key:   VFN_LIVE_...
x-signature: hmac-sha256(secret_key, "METHOD:/api/v1/path:timestamp:sorted_body")
x-timestamp: 1234567890123

Notes

  • secret_key is HMAC-sign-only for signed requests (list_assessments); create_session and create_campaign send it directly as x-secret-key instead, since those endpoints authenticate with x-api-key + x-secret-key rather than a signature.
  • There's a single deployed backend for this integration — no separate test/live URLs. base_url and webhook_base_url both default to it, and can each be overridden independently via the constructor params (e.g. for local testing). Webhook events do use a different response envelope though: {status, code, data} on success, {status, code, message} on error — not {success, data} like the rest of this client.

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

record_assessment_backend-2.0.2.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

record_assessment_backend-2.0.2-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file record_assessment_backend-2.0.2.tar.gz.

File metadata

File hashes

Hashes for record_assessment_backend-2.0.2.tar.gz
Algorithm Hash digest
SHA256 c46b558ecb6cd60408db69673d399b98b18ba0b76e270b8dedac0372d7bafb89
MD5 3ecdea2d6de56c182c87a52a5f8cc9cd
BLAKE2b-256 a43e76fef0547eafbf3e359df928dfff4621c582767b100d9109ad999bff2596

See more details on using hashes here.

File details

Details for the file record_assessment_backend-2.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for record_assessment_backend-2.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 193dd8f76c34edcb5330d4b9abb6ee8c017a998156026e36ce0e0a0014643d8d
MD5 ed2443f860cdbbe1b4f98d584613319f
BLAKE2b-256 400738b53c5002bbfc774c03cd86848a31929d59ffd63a28354faecde91e47e4

See more details on using hashes here.

Release history Release notifications | RSS feed

2.0.4

2 files

2.0.3

2 files

This release

2.0.2 This release

2 files

2.0.1

2 files

1.0.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page