Authentication
All API requests require a vendor API key passed in the Authorization header as a Bearer token:
Authorization: Bearer amino_your_key_here
Send an Invitation
Send a review invitation email to a customer.
Endpoint
POST https://amino.reviews/api/v1/invitations
Request Body
Send a JSON object with the following fields:
{
"email": "customer@example.com",
"name": "John Doe",
"order_ref": "ORD-12345"
}
email(required) — The customer's email address.name(required) — The customer's name, used to personalize the invitation email.order_ref(optional) — An order reference ID from your system. Helps prevent duplicate invitations and provides context.
Success Response (200)
{
"ok": true,
"review_url": "https://amino.reviews/review/abc123..."
}
The review_url is the direct link the customer will use to submit their review. This is the same link included in the invitation email.
Error Responses
400 Bad Request— Missing required fields (emailorname). The response body will indicate which fields are missing.401 Unauthorized— Invalid or missing API key. Check that yourAuthorizationheader is formatted correctly.429 Too Many Requests— Rate limit exceeded. You can send up to 100 invitations per hour per vendor.
Example: curl
curl -X POST https://amino.reviews/api/v1/invitations \
-H "Authorization: Bearer amino_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"email": "customer@example.com",
"name": "John Doe",
"order_ref": "ORD-12345"
}'
Get Invitation Statistics
Retrieve aggregate statistics about your invitation performance.
Endpoint
GET https://amino.reviews/api/v1/invitations/stats
Response (200)
{
"ok": true,
"stats": {
"sent": 142,
"opened": 98,
"completed": 67,
"expired": 12
}
}
sent— Total invitations sent.opened— Invitations where the customer clicked the review link.completed— Invitations that resulted in a submitted review.expired— Invitations that passed the expiration window without a review.
Rate Limits
The invitation API is rate limited to 100 invitations per hour per vendor. If you exceed this limit, you will receive a 429 response. The rate limit resets on a rolling one-hour window.
Tip: If you are integrating with a high-volume store, space out your API calls rather than sending them in bulk. The rate limit is generous for normal use but will throttle batch imports.