Migrate from AWS Rekognition
What is drop-in, what changes, the one step nobody can skip, and a six-step runbook for cutting over without a big-bang switch.
Each Rekognition face operation has a SightRadar equivalent. On Python, the Rekognition shim keeps your boto3 calls and Rekognition-shaped responses with a two-line change. Pointing boto3 itself at a new endpoint_url does not work, and other AWS SDKs have no shim, so from other languages you call the native endpoints mapped below. Every per-photo rate is below Rekognition's first-tier US price ($0.0010 per image); see pricing.
Operation mapping
| Rekognition | SightRadar |
|---|---|
CreateCollection | POST /v1/collections |
ListCollections | GET /v1/collections |
DescribeCollection | GET /v1/collections/{id} |
DeleteCollection | DELETE /v1/collections/{id} |
IndexFaces | POST /v1/collections/{id}/index |
IndexFaces with MaxFaces=1 | POST /v1/collections/{id}/selfies |
SearchFacesByImage | POST /v1/collections/{id}/search |
SearchFaces (by FaceId) | POST /v1/collections/{id}/search-by-id |
CompareFaces | POST /v1/compare |
DetectFaces | POST /v1/detect |
DeleteFaces (faces from one image) | DELETE /v1/collections/{id}/photos/{photoId} (per photo, not per face) |
DeleteFaces (a registered selfie) | DELETE /v1/collections/{id}/selfies/{selfieId} |
DeleteUser | DELETE /v1/collections/{id}/users/{userId} (removes that user's selfies) |
Label detection, text detection, celebrity recognition and video are out of scope. SightRadar does face recognition only.
What changes
- Endpoint and auth.
https://api.sightradar.comwithAuthorization: Bearer frs_…instead of a regional endpoint with SigV4. No IAM users, roles or policies. - Scores. Cosine similarity 0 to 1 instead of 0 to 100. The Python shim converts both ways; on raw REST you divide.
- Bounding boxes. The same ratio convention as Rekognition (
left,top,width,heightin 0 to 1), just lower-cased keys. - Image input. URL, GCS key, multipart or raw bytes.
S3Objectbecomes a URL you make fetchable. - Photos, not faces. Results group to
photo_id; the finest delete for indexed photos is per photo. Registered selfies are deleted byselfieIdor byuserId, always immediately (deleting data).
Python: the two-line change
from sightradar_rekognition_shim import client # 1. swap the import
rek = client(api_key="frs_...") # 2. swap the constructor
rek.create_collection(CollectionId="event-2026")
rek.index_faces(CollectionId="event-2026", Image={"URL": "https://cdn.example.com/guest.jpg"}, ExternalImageId="guest-1")
res = rek.search_faces_by_image(CollectionId="event-2026", Image={"Bytes": open("selfie.jpg", "rb").read()}, FaceMatchThreshold=90, MaxFaces=5)
for m in res["FaceMatches"]:
print(m["Face"]["ExternalImageId"], m["Similarity"])The shim maps method names, argument shapes and response dictionaries (FaceRecords, FaceMatches, Similarity). Details and honest differences are on the shim page. On JavaScript, Java, Go or .NET there is no shim: call the REST endpoints (or the Node SDK) and map requests and responses yourself using the table above.
The runbook
One call against a scratch collection
Prove credentials, network path and image handling before touching your application. Costs one photo.
Point a copy of your integration at SightRadar
In a branch, not production. On Python and boto3, swap in the shim. On raw REST, budget for mapping each call.
Re-index your existing faces
The one unavoidable step. Faceprints are model-specific vectors and are not portable between engines, so no provider can import another's. Re-run indexing over the source images with batch at the batch rate.
Dual-write, then compare on live traffic
Index into both systems and send each search to both. Compare ranked photo ids, not raw scores; the scales differ. Ranking agreement is the signal.
Re-calibrate your threshold on your own data
Do not carry the Rekognition number across. Follow choosing a threshold. This is the step teams skip and then blame on accuracy.
Cut over reads, keep the old collection
Rollback stays a config change until you delete the old data.
Questions teams ask
Side-by-side before and after code is on the migration page.
Deleting data
Soft and immediate deletes, per-photo removal, selfie and user deletes, restore windows, the deletion status endpoint, and how to satisfy an erasure request.
n8n
Index event photos and email guests their photos from a selfie in n8n, with the SightRadar community node, a signed webhook trigger and two example workflows.