The Human MFA

Is your user
actually there?

Presence Tools is a physical presence verification API. Prove that a real human was at a real place, at a real time - as a factor of authentication.

Start for free See how it works
POST /events
// Create a presence event in one API call
{
  "configId": "cfg_warehouse_checkin",
  "name": "Morning shift - Bay 3",
  "locations": ["loc_bay3"],
  "identities": ["idn_jane_smith"]
}

// Returns a session URL - share it, scan it, embed it
"fullUrl": "https://app.presence.tools/events/..."
Built for teams that need to know
Workforce Management Field Services Event Access Compliance Audit Remote Work Verification

You can't prove it.
That's the problem.

A rota says someone was scheduled. A badge swipe says a card was present. A GPS pin says a phone was nearby. A signature on a sheet says someone could hold a pen. None of it proves the right person was there.

Stop GPS spoofing on clock-in

Clock-ins from the car park. Or from home, with a spoofed location and a mate covering the shift.

Prevent credential sharing on shift handover

One worker, four logins, and your payroll none the wiser.

Prove a field visit actually happened

A timestamped photo of a job site could have been taken last Tuesday. By anyone.

Know your compliance check was done in person

When the auditor, insurer, or regulator asks - a spreadsheet of self-reported times is not an answer.

Verify your remote contractor was on site

Declared location, assumed presence, no way to check without being creepy about it.

Every one of these is the same gap: your system records that something happened, not that a specific human was at a specific place when it did.
That's the gap we close.

Three steps to verified presence

Configure once, verify everywhere. Presence Tools handles the challenge flow - you just act on the result.

01

Configure your checks

Define a config: which challenges to require, geo radius, whether to enrol new identities on first use. Set it once, reuse it everywhere.

02

Create an event

POST to /events with a location, an identity, and your config. Get back a URL. Share it however you like - link, QR code, embed.

03

Human completes challenges

They open the URL on any smartphone. No app required. Geo check runs silently. Face match confirms it's them. Done in seconds.

The result

A signed webhook fires to your endpoint instantly. GEO passed, FACE matched, distance 6m, confidence 99.8%.

You have proof

Everything you need.
Nothing you don't.

A focused API built around one problem - proving physical presence - done properly.

📍

Geolocation verification

Set a location with lat/lng and a max distance in metres. We verify the device was within range when the challenge completed. No GPS spoofing.

🤳

Face match

Compare a live selfie against an enrolled identity photo. 99%+ confidence scoring. No passwords, no PINs required - just a face.

📱

SMS & audio challenge

One-time codes to a verified mobile number, or an audio callback. Human-only verification without app installs or hardware.

🔗

Short URLs

Compact, shareable session links. Perfect for QR codes, SMS delivery, and anywhere character count matters.

Webhook delivery

Signed payloads delivered to your endpoint the moment a session completes. React to verified presence in real time.

🏗️

EventBridge & SQS

Native AWS event delivery. Events land directly in your architecture - no polling, no middleware, no glue code.

🎭

Multi-stage events

Chain presence checks into a single session. Check-in at arrival, verify at each stage, confirm at completion.

🪪

Identity enrolment

Enrol via API with photo, mobile, email and PIN. First-time users can self-enrol during a session if your config allows it.

🔐

Video authentication

Live video challenge for high-assurance scenarios. Confirms an active, present human - not a photo, not a recording.

One API.
Many verifications.

Anywhere you need proof that a specific human was at a specific place.

Stop GPS spoofing on clock-in

Replace paper sign-in sheets and badge swipes with cryptographic proof. Prevent credential sharing on shift handover - know who clocked in, where they were, and that it was really them.

  • GEO + FACE confirms worker was on-site
  • Works on any smartphone, no app install
  • Webhook fires your HR system in real time
  • Audit trail with distance and confidence scores
"event": "session.completed"
"identityId": "idn_jane_smith"
"completedChallenges": [
  {
    "type": "GEO",
    "passed": true,
    "distance": 6
  },
  {
    "type": "FACE",
    "passed": true,
    "confidence": 99.86
  }
]

Prove a field visit actually happened

Verify your remote contractor was on site. Field engineers, inspectors, and delivery staff can prove they attended a location - timestamped, geolocated, and face-verified.

  • Device must be within metres of the location
  • Face match ties the visit to a specific person
  • Signed webhook payload for your records system
  • Time-windowed sessions enforce visit schedules
"name": "Site inspection - Unit 4B"
"locations": ["loc_unit4b"]
"window": {
  "opens_at": "2026-06-05T09:00:00Z",
  "closes_at": "2026-06-05T17:00:00Z"
}

✓ GEO passed - 12m from location
✓ FACE matched - 99.2% confidence

Ticketless access control

Replace tickets and wristbands with identity-bound session links. No app, no hardware - a URL that verifies the right person is at the right place.

  • Short URLs for QR code delivery via SMS
  • Identity pre-bound to the session at creation
  • Single-use sessions prevent sharing
  • Real-time webhook for gate control systems
// Session URL sent via SMS
"shortUrl": "https://prsc.tools/x8kQ2"

// Attendee scans, completes GEO + FACE
// Webhook fires to gate controller

"used": true
"passed": true
"distance": 3

Know your compliance check was done in person

Generate tamper-evident, timestamped presence records. When the auditor, insurer, or regulator asks - you have a cryptographic answer, not a spreadsheet.

  • Cryptographically signed session payloads
  • Face photo retained with confidence score
  • Configurable data retention per project
  • EventBridge delivery for SIEM integration
"sessionId": "1oh5e6"
"completedAt": "2026-05-26T19:14:03Z"
"identityId": "idn_jane_smith"
"s3Key": "proj/.../face.jpg"
"confidence": 99.86
"distance": 6
"passed": true

Spot checks

For roles where presence checks are an agreed condition of work - duty of care, regulated supervision, lone-worker safety. Create an event for a specific person, place, and time, and send them the link right now. No warning, no preparation. If they don't respond within the window, or they're not where they're supposed to be, your webhook fires and you escalate with a record either way.

  • Event created and URL delivered in a single API call
  • Short window forces immediate response
  • Non-response and failure both trigger your webhook
  • Full audit trail whether they passed, failed, or ignored it
// Spot check created and sent via SMS
"name": "spot-check-wade-now"
"identities": ["idn_wade"]
"locations": ["loc_site-b"]
"window": {
  "opens_at": "2026-06-11T14:00:00Z",
  "closes_at": "2026-06-11T14:15:00Z"
}

✗ session.expired - no response
// escalation triggered

Start free.
Scale when you're ready.

No credit card required. Upgrade as your verification volume grows.

An API call is any request to the API - authentication, creating a config, submitting a challenge. One verification session involving multiple steps counts as multiple calls.

Sandbox
Free
forever
500 API calls / month
  • Verify attendance
  • Verify dwell time
  • Geo + face match
  • Email challenge
  • Webhook delivery
  • PIN challenge
  • Password challenge
  • SMS challenge
  • Callback challenge
  • Video authentication
  • Short URLs
Get started free
Starter
£20
per month
5,000 API calls / month
  • Everything in Sandbox
  • PIN challenge
  • Password challenge
  • SMS challenge
  • Short URLs
  • 5 req/s · burst 10
  • Callback challenge
  • Video authentication
  • IP whitelist / blacklist
  • EventBridge delivery
Get Starter
Scale
£350
per month
200,000 API calls / month
  • Everything in Pro
  • Video authentication
  • EventBridge output
  • Consultant support
  • 100 req/s · burst 200
Get Scale

Need 200k+ calls, or a custom SLA? Talk to us.

An API you'll
actually enjoy.

RESTful JSON, predictable responses, signed webhooks. Integrates in an afternoon. Try it live in the console before you write a line of code.

Open the console
# Create a presence event
curl -X POST \
  https://api.presence.tools/events \
  -H 'Authorization: Bearer <jwt>' \
  -H 'x-api-key: <key>' \
  -d '{"configId":"...","locations":[...]}'

# Webhook fires on completion
{
  "event": "session.completed",
  "passed": true,
  "distance": 6,
  "confidence": 99.86
}

See it working
in minutes.

The Presence Tools example app is a fully working reference implementation - event creation, identity enrolment, session completion, and webhook handling. Clone it, point it at your sandbox project, and have something running before you write a line of your own code.

View on GitHub
# Clone and run in three commands
git clone https://github.com/alpakaio/presence-tools
cd presence-tools
cp .env.example .env # add your project credentials
npm install && npm run dev

✓ Sandbox project credentials work out of the box
✓ No paid plan required to get started
Alpaka

presence.tools is the verification engine inside Alpaka - software we've run in production since 2016. Geolocation, face match, signed records: every challenge in this API earned its place on real shifts before it appeared in our docs. Thousands of presence records are created across the platform every day.

You're not integrating a prototype. You're integrating the part of our own product we trusted enough to bet payroll on.

The full story →

Prove they were
actually there.

500 free API calls. No credit card. Live in minutes.

Start building free Speak to the team