* This report was auto-generated by graphql-http
- 60 audits in total
- ✅ 29 pass
- 💡 18 notices (suggestions)
- ❗️ 13 warnings (optional)
4655MUST accept application/json and match the content-type47DESHOULD accept */* and use application/json for the content-type80D8SHOULD assume application/json content-type when accept is missing82A3MUST use utf-8 encoding when respondingBF61MUST accept utf-8 encoded request78D5MUST assume utf-8 in request if encoding is unspecified2C94MUST accept POST requests5A70MAY accept application/x-www-form-urlencoded formatted GET requests9C48MAY NOT allow executing mutations on GET requests9ABEMAY respond with 4xx status code if content-type is not supplied on POST requests03D4MUST accept application/json POST requestsA5BFMAY use 400 status code when request body is missing on POST13EEMUST allow string {query} parameter when accepting application/jsonB8B3MUST allow string {operationName} parameter when accepting application/json0220MUST allow null {variables} parameter when accepting application/json0221MUST allow null {operationName} parameter when accepting application/json0222MUST allow null {extensions} parameter when accepting application/json4760MAY use 400 status code on string {variables} parameter4761MAY use 400 status code on number {variables} parameter4762MAY use 400 status code on boolean {variables} parameter28B9MUST allow map {variables} parameter when accepting application/json1B7AMUST allow map {extensions} parameter when accepting application/jsonB6DCMAY use 4xx or 5xx status codes on JSON parsing failureBCF8MAY use 400 status code on JSON parsing failure572BSHOULD use 200 status code on document parsing failure when accepting application/jsonFDE2SHOULD use 200 status code on document validation failure when accepting application/json7B9BSHOULD use a status code of 200 on variable coercion failure when accepting application/json865DSHOULD use 4xx or 5xx status codes on document parsing failure when accepting application/graphql-response+json51FESHOULD use 4xx or 5xx status codes on document validation failure when accepting application/graphql-response+json
423LMAY use 400 status code on missing {query} parameterResponse status code is not 400
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }LKJ0MAY use 400 status code on object {query} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "45", "content-encoding": "gzip" }, "body": { "errors": [ {} ] } }LKJ1MAY use 400 status code on number {query} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "45", "content-encoding": "gzip" }, "body": { "errors": [ {} ] } }LKJ2MAY use 400 status code on boolean {query} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "45", "content-encoding": "gzip" }, "body": { "errors": [ {} ] } }LKJ3MAY use 400 status code on array {query} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "45", "content-encoding": "gzip" }, "body": { "errors": [ {} ] } }6C00MAY use 400 status code on object {operationName} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "105", "content-encoding": "gzip" }, "body": { "errors": [ { "message": "Unknown operation named \"[object Object]\"." } ] } }6C01MAY use 400 status code on number {operationName} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "95", "content-encoding": "gzip" }, "body": { "errors": [ { "message": "Unknown operation named \"0\"." } ] } }6C02MAY use 400 status code on boolean {operationName} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "98", "content-encoding": "gzip" }, "body": { "errors": [ { "message": "Unknown operation named \"false\"." } ] } }6C03MAY use 400 status code on array {operationName} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "98", "content-encoding": "gzip" }, "body": { "errors": [ { "message": "Unknown operation named \"array\"." } ] } }4763MAY use 400 status code on array {variables} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "59", "content-encoding": "gzip" }, "body": { "data": { "__typename": "Query" } } }D6D5MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/graphql-response+jsonResponse status code is not 200
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }6A70MAY allow URL-encoded JSON string {variables} parameter in GETs when accepting application/jsonResponse body execution result has a property "errors"
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "163", "content-encoding": "gzip" }, "body": { "errors": [ { "message": "Variable \"$name\" of required type \"String!\" was not provided.", "locations": [ { "line": 1, "column": 12 } ] } ] } }58B0MAY use 400 status code on string {extensions} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "59", "content-encoding": "gzip" }, "body": { "data": { "__typename": "Query" } } }58B1MAY use 400 status code on number {extensions} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "59", "content-encoding": "gzip" }, "body": { "data": { "__typename": "Query" } } }58B2MAY use 400 status code on boolean {extensions} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "59", "content-encoding": "gzip" }, "body": { "data": { "__typename": "Query" } } }58B3MAY use 400 status code on array {extensions} parameterResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "59", "content-encoding": "gzip" }, "body": { "data": { "__typename": "Query" } } }8764MAY use 4xx or 5xx status codes if parameters are invalidResponse status is not between 400 and 599
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "45", "content-encoding": "gzip" }, "body": { "errors": [ {} ] } }3E3AMAY use 400 status code if parameters are invalidResponse status code is not 400
{ "statusText": "OK", "status": 200, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "application/json", "content-length": "45", "content-encoding": "gzip" }, "body": { "errors": [ {} ] } }
22EBSHOULD accept application/graphql-response+json and match the content-typeResponse status code is not 200
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }34A2SHOULD allow string {query} parameter when accepting application/graphql-response+jsonResponse status code is not 200
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }8161SHOULD allow string {operationName} parameter when accepting application/graphql-response+jsonResponse status code is not 200
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }94B0SHOULD allow null {variables} parameter when accepting application/graphql-response+jsonResponse status code is not 200
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }94B1SHOULD allow null {operationName} parameter when accepting application/graphql-response+jsonResponse status code is not 200
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }94B2SHOULD allow null {extensions} parameter when accepting application/graphql-response+jsonResponse status code is not 200
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }2EA1SHOULD allow map {variables} parameter when accepting application/graphql-response+jsonResponse status code is not 200
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }428FSHOULD allow map {extensions} parameter when accepting application/graphql-response+jsonResponse status code is not 200
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }556ASHOULD use 400 status code on document parsing failure when accepting application/graphql-response+jsonResponse status code is not 400
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }D586SHOULD not contain the data entry on document parsing failure when accepting application/graphql-response+jsonResponse body is not valid JSON
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": null }74FFSHOULD use 400 status code on document validation failure when accepting application/graphql-response+jsonResponse status code is not 400
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }5E5BSHOULD not contain the data entry on document validation failure when accepting application/graphql-response+jsonResponse body is not valid JSON
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": null }86EESHOULD use a status code of 400 on variable coercion failure when accepting application/graphql-response+jsonResponse status code is not 400
{ "statusText": "Not Acceptable", "status": 406, "headers": { "vary": "Accept-Encoding", "date": "", "content-type": "text/plain;charset=UTF-8", "content-length": "14" }, "body": "Not Acceptable" }