Test and live modes
Every key works in one mode. The mode decides whether marking is real and which balance pays for it.
| Test mode | Live mode | |
|---|---|---|
| Key prefix | aide_sk_test_ |
aide_sk_live_ |
| Base URL | https://api.learningaide.ai |
https://api.learningaide.ai |
| Marking | Simulated: no AI runs, and you get realistic sample results within seconds | Real AI marking |
| Credits | Charged from a separate test balance that we top up automatically. Test credits have no value. | Charged from your balance, as described in Credits and billing |
| Data | Visible only to test keys | Visible only to live keys |
| Review links | Open a sample paper, so you can try the review flow | Open your paper |
| Webhooks | Sent to endpoints created with a test key | Sent to endpoints created with a live key |
Test and live data never mix. A test key cannot read a live object, and a live key cannot read a test object; both get 404 resource_missing.
Simulating outcomes in test mode
Section titled “Simulating outcomes in test mode”To exercise your error handling, add test_outcome to a create request. The field is accepted only with a test key; a live key gets 400 parameter_unknown.
| Request | test_outcome |
What happens |
|---|---|---|
POST /v1/papers |
awaiting_review (default) |
The paper becomes awaiting_review with sample questions. |
POST /v1/papers |
with_warnings |
The paper becomes awaiting_review with every paper warning set. |
POST /v1/papers |
file_unreadable |
The paper becomes failed with file_unreadable. |
POST /v1/papers |
no_questions_found |
The paper becomes failed with no_questions_found. |
POST /v1/papers |
insufficient_credits |
The paper becomes failed with insufficient_credits. |
POST /v1/submissions |
graded (default) |
The submission is marked with sample marks, and sample feedback at the paper’s grading.feedback level, then released unless the paper uses after_review. |
POST /v1/submissions |
no_readable_answers |
The submission is marked 0 and stays graded with no_readable_answers: true. |
POST /v1/submissions |
file_unreadable |
The submission becomes failed with file_unreadable. |
POST /v1/submissions |
insufficient_credits |
The submission becomes failed with insufficient_credits. |
POST /v1/submissions |
grading_failed |
The submission becomes failed with grading_failed. |