Skip to content

Create a paper

POST
/v1/papers
curl --request POST \
--url https://api.learningaide.ai/v1/papers \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: example' \
--data '{ "title": "example", "subject_id": "example", "question_paper": { "file_id": "example", "url": "https://example.com" }, "marking_scheme": { "file_id": "example", "url": "https://example.com" }, "results_release": "automatic", "grading": { "strictness": "lenient", "feedback": "none", "instructions": "example" }, "external_id": "example", "metadata": { "additionalProperty": "example" }, "test_outcome": "awaiting_review" }'
Idempotency-Key
required
string
/^[\x21-\x7e]{1,255}$/

A unique value, such as a v4 UUID, that you reuse only to retry this request.

Media typeapplication/json
object
title
required
string
>= 1 characters <= 255 characters /^[^\u0000-\u001f\u007f]*$/
subject_id
required
string
>= 1 characters <= 64 characters
question_paper
required
One of:
object
file_id
required
string
>= 1 characters <= 64 characters
url

An https:// URL.

string format: uri
<= 2048 characters /^[Hh][Tt][Tt][Pp][Ss]:///
marking_scheme
required
One of:
object
file_id
required
string
>= 1 characters <= 64 characters
url

An https:// URL.

string format: uri
<= 2048 characters /^[Hh][Tt][Tt][Pp][Ss]:///
results_release
string
Allowed values: automatic after_review
grading
object
strictness
string
Allowed values: lenient standard strict
feedback
string
Allowed values: none brief standard detailed
instructions
string
>= 1 characters <= 5000 characters
external_id
string
>= 1 characters <= 128 characters /^[^\u0000-\u001f\u007f]*$/
metadata
object
<= 20 properties
key
additional properties
string
<= 500 characters
test_outcome
string
Allowed values: awaiting_review with_warnings file_unreadable no_questions_found insufficient_credits

A new object was created. Its processing may continue in the background.

Media typeapplication/json
object
id
required
string
object
required
string
Allowed value: paper
livemode
required
boolean
title
required
string
subject_id
required
string
status
required
string
Allowed values: processing awaiting_review ready failed
failure
required
Any of:
object
code
required
string
Allowed values: file_download_failed file_unreadable unsupported_file_type file_too_large too_many_pages insufficient_credits credits_expired processing_timeout no_questions_found processing_failed
message
required
string
warnings
required
Array<string>
Allowed values: questions_may_be_incomplete answer_keys_missing scheme_instructions_not_used
question_paper
required
object
file_id
required
Any of:
string
pages
required
Any of:
integer
marking_scheme
required
object
file_id
required
Any of:
string
pages
required
Any of:
integer
question_count
required
Any of:
integer
total_marks
required
Any of:
number
results_release
required
string
Allowed values: automatic after_review
grading
required
object
strictness
required
string
Allowed values: lenient standard strict
feedback
required
string
Allowed values: none brief standard detailed
instructions
required
Any of:
string
billing
required
object
status
required
string
Allowed values: pending held charged not_charged
pages
required
Any of:
integer
credits
required
Any of:
integer
submission_counts
required
object
key
additional properties
integer
external_id
required
Any of:
string
metadata
required
object
key
additional properties
string
created_at
required
string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:Z))$/
approved_at
required
Any of:
string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:Z))$/
updated_at
required
string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:Z))$/

Example

{
"object": "paper",
"status": "processing",
"failure": {
"code": "file_download_failed"
},
"warnings": [
"questions_may_be_incomplete"
],
"results_release": "automatic",
"grading": {
"strictness": "lenient",
"feedback": "none"
},
"billing": {
"status": "pending"
}
}
X-Request-Id
required
string

This request’s ID. Quote it when you contact support.

RateLimit-Limit
integer

Requests allowed per window.

RateLimit-Remaining
integer

Requests left in the current window.

RateLimit-Reset
integer

Seconds until the window resets.

Idempotent-Replayed
string
Allowed value: true

On the saved response to an earlier request with this Idempotency-Key.

An error (client docs, “Errors”).

Media typeapplication/json
object
error
required
object
type
required
string
Allowed values: invalid_request_error authentication_error billing_error permission_error rate_limit_error api_error
code
required
string
Allowed values: parameter_missing parameter_invalid parameter_unknown invalid_json idempotency_key_missing api_key_missing api_key_invalid api_key_revoked insufficient_credits credits_expired insufficient_scope ip_not_allowed account_suspended resource_missing route_not_found idempotency_key_reused idempotency_request_in_progress external_id_taken paper_not_ready paper_not_awaiting_review paper_in_progress paper_has_empty_question review_link_unavailable file_already_attached file_purpose_mismatch file_not_uploaded file_expired submission_exists submission_not_cancelable submission_not_releasable submission_in_progress result_not_available report_not_available too_many_webhook_endpoints request_too_large unsupported_media_type rate_limit_exceeded internal_error service_unavailable
message
required
string
param
required
Any of:
string
resource_id
required
Any of:
string
request_id
required
Any of:
string

Example

{
"error": {
"type": "invalid_request_error",
"code": "parameter_missing"
}
}
X-Request-Id
required
string

This request’s ID. Quote it when you contact support.

RateLimit-Limit
integer

Requests allowed per window.

RateLimit-Remaining
integer

Requests left in the current window.

RateLimit-Reset
integer

Seconds until the window resets.

Retry-After
integer

Seconds to wait before asking again.