QAPage schema markup is used on pages where a single question has been asked and answered by the community — such as Stack Overflow questions, Quora answers, or forum threads. Unlike FAQPage (which lists multiple Q&A pairs), QAPage is for a single question with one or more community answers. Valid QAPage structured data can generate Q&A rich results showing the top answer directly in search.
| Property | Type | Description |
|---|---|---|
mainEntityrich result | Question | The question being answered. Must be a Question with name (question text) and at least one answer. |
Missing recommended properties generate warnings. They won't block validation, but rich result-tagged properties are needed for full Google rich result eligibility.
| Property | Type | Description |
|---|---|---|
name | string | The page title. |
description | string | A brief description of the page. |
url | URL | The canonical URL of the Q&A page. |
Rich result type: Q&A rich result with question and top answer
Requirements: Required: mainEntity as a Question with name (question text) and acceptedAnswer or suggestedAnswer with text.
{
"@context": "https://schema.org",
"@type": "QAPage",
"mainEntity": {
"@type": "Question",
"name": "How do I validate Schema.org JSON-LD structured data?",
"text": "I need to check if my structured data is valid and eligible for Google rich results.",
"answerCount": 2,
"acceptedAnswer": {
"@type": "Answer",
"text": "Use the SchemaCheck API to validate your JSON-LD. Send a POST request with your schema and receive a detailed validation report including required properties, rich result eligibility, and fix suggestions.",
"upvoteCount": 42,
"url": "https://example.com/questions/validate-schema#answer-1"
},
"suggestedAnswer": [
{
"@type": "Answer",
"text": "You can also use Google's Rich Results Test tool at search.google.com/test/rich-results for a visual preview.",
"upvoteCount": 28
}
]
}
}Validate this schema against Google's requirements in one API call:
curl "https://schemacheck.dev/api/v1/validate" \
-H "x-api-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonld":{"@context":"https://schema.org","@type":"QAPage","mainEntity":{"@type":"Question","name":"How do I validate Schema.org JSON-LD structured data?","text":"I need to check if my structured data is valid and eligible for Google rich results.","answerCount":2,"acceptedAnswer":{"@type":"Answer","text":"Use the SchemaCheck API to validate your JSON-LD. Send a POST request with your schema and receive a detailed validation report including required properties, rich result eligibility, and fix suggestions.","upvoteCount":42,"url":"https://example.com/questions/validate-schema#answer-1"},"suggestedAnswer":[{"@type":"Answer","text":"You can also use Google's Rich Results Test tool at search.google.com/test/rich-results for a visual preview.","upvoteCount":28}]}}}'100 free validations/month. No credit card required.