This guide shows the fastest path from credentials to a submitted order.
Prerequisites
You need:
- An ArchiveOrder API key.
- The
orders:write scope to create orders.
- The
orders:read scope to read the created order.
- A client that can make HTTPS requests.
1. Choose an environment
Use the development environment while integrating:
export ARCHIVE_ORDER_BASE_URL="https://api-dev.archiveorder.com"
export ARCHIVE_ORDER_API_KEY="ao_test_your_key"
Use production only after GenealogyDirect enables your production API client:
export ARCHIVE_ORDER_BASE_URL="https://api.archiveorder.com"
export ARCHIVE_ORDER_API_KEY="ao_live_your_key"
2. Create an order
curl -X POST "$ARCHIVE_ORDER_BASE_URL/orders" \
-H "Authorization: Bearer $ARCHIVE_ORDER_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"repositoryName": "Archives de Paris",
"archiveRepositoryId": "FR-AD75",
"countryISOA3": "FRA",
"documentType": "Birth record",
"location": "Paris, France",
"pricingMode": "OPEN_FOR_BIDS",
"personsOfInterest": [
{
"firstname": "Marie",
"lastname": "Dupont"
}
],
"instructions": "Please retrieve a full-page scan if available.",
"externalOrderRef": "case-2026-001"
}'
The response contains the public order ID and current status:
{
"id": "order_123",
"status": "submitted",
"order": {
"repositoryName": "Archives de Paris",
"documentType": "Birth record",
"location": "Paris, France"
}
}
3. Read the order
curl "$ARCHIVE_ORDER_BASE_URL/orders/order_123" \
-H "Authorization: Bearer $ARCHIVE_ORDER_API_KEY"
4. Poll for offers
curl "$ARCHIVE_ORDER_BASE_URL/orders/order_123/offers" \
-H "Authorization: Bearer $ARCHIVE_ORDER_API_KEY"
When offers are available, select one and continue with payment:
curl -X POST "$ARCHIVE_ORDER_BASE_URL/orders/order_123/offers/offer_123/select" \
-H "Authorization: Bearer $ARCHIVE_ORDER_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"
5. Register webhooks
Polling works for early integration. Production integrations should register a webhook endpoint:
curl -X POST "$ARCHIVE_ORDER_BASE_URL/webhook-endpoints" \
-H "Authorization: Bearer $ARCHIVE_ORDER_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"url": "https://example.com/archive-order/webhook"
}'
Store the returned signingSecret. You need it to verify webhook signatures.
Use a stable Idempotency-Key when retrying the same mutating request after a timeout or network failure.