Properties
| Name | Type | Description |
|---|---|---|
| review_id | string | |
| status | string | verifying: deep checks or citation checks are running. cancelled: you cancelled it (POST /reviews/{review_id}/cancel); only what it delivered before that is charged. |
| outcome | object | Null until terminal. clean covers the selected claims at the policy's chosen depth. issues_found with an empty issues[] means the rows are in citation_issues[]. A deep check that reads "No Public Reco |
| created_at | string | |
| completed_at | object | |
| language | string | The language the review is written in, as an ISO 639-1 code. `auto` only while a review sent with `language: "auto"` on a draft that is one URL has not read its page yet; then the detected code, or `e |
| policy | object | |
| summary | object | |
| credits | object | |
| poll_after_seconds | object | |
| issues | array | |
| failures | array | |
| citation_issues | array | Citations whose source does not say what the draft says, the most serious first; partly_supported rows are not issues and are only in citations[]. [] when the check was not asked. |
| citation_failures | array | |
| more_claims | object | Claims found past max_assessments, in the draft's order: found but not checked; send them in a later request to check them. Null until the draft is read. |
| more_claim_locations | object | Where the draft makes each of `more_claims`, in the same order: `{claim, positions}`, the shape `/extract` returns with `locate: true` (see a claim row's `positions`). Null until the draft is read. |
| more_citations | object | Citations found past the ones selected (up to 100): found but not checked; send them in a later request to check them. Null until the draft is read. |
| failure | object | |
| view | string | |
| claims | array | |
| citations | array |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/lenz-io/json-schema/lenz-io-review-full-out-schema.json",
"title": "ReviewFullOut",
"x-generated": "2026-10-30",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/lenz-io-openapi.json#/components/schemas/ReviewFullOut",
"properties": {
"review_id": {
"title": "Review Id",
"type": "string"
},
"status": {
"description": "verifying: deep checks or citation checks are running. cancelled: you cancelled it (POST /reviews/{review_id}/cancel); only what it delivered before that is charged.",
"enum": [
"queued",
"assessing",
"verifying",
"completed",
"failed",
"cancelled"
],
"title": "Status",
"type": "string"
},
"outcome": {
"anyOf": [
{
"enum": [
"clean",
"issues_found",
"incomplete",
"unchecked"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "Null until terminal. clean covers the selected claims at the policy's chosen depth. issues_found with an empty issues[] means the rows are in citation_issues[]. A deep check that reads \"No Public Record\" is an issue (not on the public record).",
"title": "Outcome"
},
"created_at": {
"title": "Created At",
"type": "string"
},
"completed_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Completed At"
},
"language": {
"description": "The language the review is written in, as an ISO 639-1 code. `auto` only while a review sent with `language: \"auto\"` on a draft that is one URL has not read its page yet; then the detected code, or `en` when the page could not be read.",
"title": "Language",
"type": "string"
},
"policy": {
"$ref": "#/$defs/ReviewPolicyOut"
},
"summary": {
"$ref": "#/$defs/ReviewSummaryOut"
},
"credits": {
"$ref": "#/$defs/ReviewCreditsOut"
},
"poll_after_seconds": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Poll After Seconds"
},
"issues": {
"items": {
"$ref": "#/$defs/ReviewIssueOut"
},
"title": "Issues",
"type": "array"
},
"failures": {
"items": {
"$ref": "#/$defs/ReviewFailedRowOut"
},
"title": "Failures",
"type": "array"
},
"citation_issues": {
"default": [],
"description": "Citations whose source does not say what the draft says, the most serious first; partly_supported rows are not issues and are only in citations[]. [] when the check was not asked.",
"items": {
"$ref": "#/$defs/ReviewCitationIssueOut"
},
"title": "Citation Issues",
"type": "array"
},
"citation_failures": {
"default": [],
"items": {
"$ref": "#/$defs/ReviewCitationFailedRowOut"
},
"title": "Citation Failures",
"type": "array"
},
"more_claims": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Claims found past max_assessments, in the draft's order: found but not checked; send them in a later request to check them. Null until the draft is read.",
"title": "More Claims"
},
"more_claim_locations": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/ClaimLocationOut"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Where the draft makes each of `more_claims`, in the same order: `{claim, positions}`, the shape `/extract` returns with `locate: true` (see a claim row's `positions`). Null until the draft is read.",
"title": "More Claim Locations"
},
"more_citations": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/ReviewMoreCitationOut"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Citations found past the ones selected (up to 100): found but not checked; send them in a later request to check them. Null until the draft is read.",
"title": "More Citations"
},
"failure": {
"anyOf": [
{
"$ref": "#/$defs/FailureOut"
},
{
"type": "null"
}
]
},
"view": {
"const": "full",
"title": "View",
"type": "string"
},
"claims": {
"items": {
"$ref": "#/$defs/ReviewClaimOut"
},
"title": "Claims",
"type": "array"
},
"citations": {
"default": [],
"items": {
"$ref": "#/$defs/ReviewCitationOut"
},
"title": "Citations",
"type": "array"
}
},
"required": [
"review_id",
"status",
"outcome",
"created_at",
"completed_at",
"language",
"policy",
"summary",
"credits",
"poll_after_seconds",
"issues",
"failures",
"failure",
"view",
"claims"
],
"type": "object",
"$defs": {
"ClaimLocationOut": {
"properties": {
"claim": {
"description": "The claim, exactly as it appears in the claim list it belongs to.",
"title": "Claim",
"type": "string"
},
"positions": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/PositionOut"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Every place the text makes the claim, in text order, at most 10. `null` only when this claim could not be placed (on /extract every returned claim was placed).",
"title": "Positions"
}
},
"required": [
"claim",
"positions"
],
"title": "ClaimLocationOut",
"type": "object"
},
"FailureOut": {
"description": "Why an item failed, and what to do next. The same block everywhere an\nitem fails: a verification, an /assess row, a review, a review's claim\nrows and citation checks.\n\n``code`` is what failed, ``detail`` one sentence on it (the same sentence\nfor the same code on every endpoint), ``hint`` what to send next (null\nwhen there is nothing to change), ``failure_class`` why, ``retryable``\nwhether sending the same request again can succeed, ``docs_url`` where\nthat class is explained.\n\nAPI version ``2026-05-13`` sends each endpoint's earlier fields instead\n(flat ``error`` / ``failure_reason`` on a verification, ``error_code`` /\n``hint`` on an /assess row, ``failure.failure_reason`` on a review).",
"properties": {
"code": {
"description": "What failed, one vocabulary everywhere: `no_checkable_claim`, `page_unreadable`, `upstream_unavailable`, `internal`, `cancelled`, `no_citations`, `insufficient_credits` (a verification only ever says the first, the third, the fourth and `cancelled`). Branch on `retryable` for whether to resend, and on the input codes for what to say; fall through on a value you do not know. `no_checkable_claim`: no claim in the input could be checked against public evidence (an opinion, a forecast, a claim about a private person, a statement whose only source is unidentified; on a review, also claims found that could not be traced back to the text); `hint` says which. `page_unreadable`: the link /review was sent could not be read. Version `2026-05-13` spells `no_checkable_claim` as `no_claim` (/assess, /review) or `not_a_claim` (/extract, a verification), and keeps the earlier causes as codes (`timeout`, `framing_failed`, `assessment_failed`, `citation_check_failed`, `invalid_input`).",
"title": "Code",
"type": "string"
},
"detail": {
"description": "The cause, in one sentence (out of time, no row could be assessed, ...); the same sentence for the same cause everywhere.",
"title": "Detail",
"type": "string"
},
"hint": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "What to send next; null when there is nothing to change.",
"title": "Hint"
},
"failure_class": {
"enum": [
"upstream_unavailable",
"invalid_input",
"cancelled",
"internal"
],
"title": "Failure Class",
"type": "string"
},
"retryable": {
"title": "Retryable",
"type": "boolean"
},
"docs_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Docs Url"
}
},
"required": [
"code",
"detail",
"failure_class",
"retryable",
"docs_url"
],
"title": "FailureOut",
"type": "object"
},
"PositionOut": {
"properties": {
"start": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Where the passage starts in `text` as you sent it, in Unicode code points (not UTF-16 units or bytes). Half-open with `end`. `null` when `text` was a URL: the page is not returned, so there is nothing to index, and `text` carries the passage instead.",
"title": "Start"
},
"end": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Where the passage ends, exclusive; `null` as for `start`.",
"title": "End"
},
"text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The passage itself, as it appears in the text. `null` on a citation position, whose row already carries the statement.",
"title": "Text"
}
},
"required": [
"start",
"end",
"text"
],
"title": "PositionOut",
"type": "object"
},
"ReviewAssessmentCountsOut": {
"properties": {
"completed": {
"title": "Completed",
"type": "integer"
},
"failed": {
"title": "Failed",
"type": "integer"
}
},
"required": [
"completed",
"failed"
],
"title": "ReviewAssessmentCountsOut",
"type": "object"
},
"ReviewAssessmentOut": {
"properties": {
"status": {
"enum": [
"pending",
"running",
"completed",
"failed"
],
"title": "Status",
"type": "string"
},
"verdict": {
"anyOf": [
{
"enum": [
"True",
"Mostly True",
"Mixed",
"Mostly False",
"False",
"No Public Record"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Verdict"
},
"confidence": {
"anyOf": [
{
"enum": [
"low",
"medium",
"high"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Confidence"
},
"rationale": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Rationale"
},
"dissent": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"deprecated": true,
"description": "Deprecated: always null.",
"title": "Dissent"
},
"searched_pages": {
"default": [],
"description": "Pages looked at while assessing this claim, as title and link.",
"items": {
"$ref": "#/$defs/SearchedPageOut"
},
"title": "Searched Pages",
"type": "array"
},
"verification_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Verification Url"
},
"suggested_rewrite": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "With `escalate.suggest_edits`: the claim with its wrong part corrected, from the quick check's reasoning, when it found the claim False or Mostly False with high confidence. Not itself verified. `null` otherwise.",
"title": "Suggested Rewrite"
},
"more_claims": {
"default": [],
"description": "Further claims found inside this one, not checked.",
"items": {
"type": "string"
},
"title": "More Claims",
"type": "array"
},
"failure": {
"anyOf": [
{
"$ref": "#/$defs/FailureOut"
},
{
"type": "null"
}
],
"description": "Set when status is failed."
},
"identified_claims": {
"description": "Sent only to callers on `2026-05-13`; use `more_claims`.",
"items": {
"type": "string"
},
"type": "array",
"deprecated": true
}
},
"required": [
"status"
],
"title": "ReviewAssessmentOut",
"type": "object"
},
"ReviewCitationCheckOut": {
"properties": {
"status": {
"enum": [
"pending",
"running",
"completed",
"failed"
],
"title": "Status",
"type": "string"
},
"page_read": {
"anyOf": [
{
"enum": [
"full",
"partial",
"not_found",
"none"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "What reading the source gave: full, partial (cut short, a teaser or an abstract alone), not_found, none.",
"title": "Page Read"
},
"page_title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Page Title"
},
"page_published_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Page Published Date"
},
"page_language": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The language of the page that was read, as an ISO 639-1 code (e.g. `en`, `uk`); null when unknown.",
"title": "Page Language"
},
"source_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Where the text was actually read from.",
"title": "Source Url"
},
"source_version": {
"anyOf": [
{
"enum": [
"published",
"accepted",
"submitted"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Source Version"
},
"support": {
"anyOf": [
{
"enum": [
"supported",
"partly_supported",
"contradicted",
"not_in_source",
"unchecked"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Support"
},
"snippet": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The passage from the source the support answer rests on, checked against the page text.",
"title": "Snippet"
},
"rationale": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The reviewer's sentence: reasoning, not a checked source.",
"title": "Rationale"
},
"quote": {
"anyOf": [
{
"enum": [
"matched",
"not_in_source",
"unchecked"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Quote"
},
"missing_quote": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The first of quotes the source does not contain; null unless quote is not_in_source.",
"title": "Missing Quote"
},
"doi_registered": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Doi Registered"
},
"metadata": {
"anyOf": [
{
"enum": [
"consistent",
"mismatch",
"unchecked"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Metadata"
},
"metadata_differences": {
"default": [],
"items": {
"$ref": "#/$defs/ReviewMetadataDifferenceOut"
},
"title": "Metadata Differences",
"type": "array"
},
"registered": {
"anyOf": [
{
"$ref": "#/$defs/ReviewRegisteredOut"
},
{
"type": "null"
}
]
},
"unchecked_reason": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Why the finding is unchecked; an extensible string.",
"title": "Unchecked Reason"
},
"hint": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Hint"
},
"failure": {
"anyOf": [
{
"$ref": "#/$defs/FailureOut"
},
{
"type": "null"
}
]
}
},
"required": [
"status"
],
"title": "ReviewCitationCheckOut",
"type": "object"
},
"ReviewCitationCountsOut": {
"description": "Three disjoint counts; once every check has ended they add up to citations_selected.",
"properties": {
"checked": {
"description": "A finding other than unchecked.",
"title": "Checked",
"type": "integer"
},
"unchecked": {
"description": "Could not be checked, for a reason of the page or the draft.",
"title": "Unchecked",
"type": "integer"
},
"failed": {
"description": "No finding, for a reason of ours.",
"title": "Failed",
"type": "integer"
}
},
"required": [
"checked",
"unchecked",
"failed"
],
"title": "ReviewCitationCountsOut",
"type": "object"
},
"ReviewCitationFailedRowOut": {
"properties": {
"citation_index": {
"title": "Citation Index",
"type": "integer"
},
"reference": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Reference"
},
"cited_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Cited Url"
},
"doi": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Doi"
},
"failure": {
"anyOf": [
{
"$ref": "#/$defs/FailureOut"
},
{
"type": "null"
}
]
}
},
"required": [
"citation_index",
"reference",
"cited_url",
"doi",
"failure"
],
"title": "ReviewCitationFailedRowOut",
"type": "object"
},
"ReviewCitationIssueOut": {
"properties": {
"citation_index": {
"title": "Citation Index",
"type": "integer"
},
"reference": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Reference"
},
"cited_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Cited Url"
},
"doi": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Doi"
},
"statement": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Statement"
},
"quotes": {
"default": [],
"items": {
"type": "string"
},
"title": "Quotes",
"type": "array"
},
"position": {
"anyOf": [
{
"$ref": "#/$defs/PositionOut"
},
{
"type": "null"
}
]
},
"finding": {
"enum": [
"doi_not_found",
"page_not_found",
"contradicted",
"quote_not_in_source",
"not_in_source",
"partly_supported",
"metadata_mismatch",
"supported",
"unchecked"
],
"title": "Finding",
"type": "string"
},
"source": {
"anyOf": [
{
"enum": [
"doi",
"page",
"support",
"quote",
"metadata"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Source"
},
"snippet": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Set only when source is support.",
"title": "Snippet"
},
"rationale": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Set only when source is support.",
"title": "Rationale"
},
"metadata_differences": {
"default": [],
"items": {
"$ref": "#/$defs/ReviewMetadataDifferenceOut"
},
"title": "Metadata Differences",
"type": "array"
},
"missing_quote": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Set only when finding is quote_not_in_source.",
"title": "Missing Quote"
},
"page_title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Page Title"
},
"failure": {
"anyOf": [
{
"$ref": "#/$defs/FailureOut"
},
{
"type": "null"
}
]
}
},
"required": [
"citation_index",
"reference",
"cited_url",
"doi",
"statement",
"position",
"finding",
"source",
"snippet",
"rationale",
"page_title",
"failure"
],
"title": "ReviewCitationIssueOut",
"type": "object"
},
"ReviewCitationOut": {
"properties": {
"index": {
"title": "Index",
"type": "integer"
},
"reference": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Reference"
},
"cited_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Cited Url"
},
"doi": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Doi"
},
"statement": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Statement"
},
"quotes": {
"default": [],
"items": {
"type": "string"
},
"title": "Quotes",
"type": "array"
},
"position": {
"anyOf": [
{
"$ref": "#/$defs/PositionOut"
},
{
"type": "null"
}
]
},
"result": {
"anyOf": [
{
"$ref": "#/$defs/ReviewCitationResultOut"
},
{
"type": "null"
}
]
},
"check": {
"$ref": "#/$defs/ReviewCitationCheckOut"
}
},
"required": [
"index",
"reference",
"cited_url",
"doi",
"statement",
"position",
"result",
"check"
],
"title": "ReviewCitationOut",
"type": "object"
},
"ReviewCitationResultOut": {
"properties": {
"finding": {
"enum": [
"doi_not_found",
"page_not_found",
"contradicted",
"quote_not_in_source",
"not_in_source",
"partly_supported",
"metadata_mismatch",
"supported",
"unchecked"
],
"title": "Finding",
"type": "string"
},
"source": {
"anyOf": [
{
"enum": [
"doi",
"page",
"support",
"quote",
"metadata"
],
"type": "string"
},
{
"type": "null"
}
],
"title": "Source"
},
"is_issue": {
"description": "True for every finding except partly_supported, supported and unchecked. partly_supported is reported, with its snippet, but is not an issue.",
"title": "Is Issue",
"type": "boolean"
}
},
"required": [
"finding",
"source",
"is_issue"
],
"title": "ReviewCitationResultOut",
"type": "object"
},
"ReviewClaimOut": {
"properties": {
"index": {
"title": "Index",
"type": "integer"
},
"claim": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Claim"
},
"positions": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/PositionOut"
},
"type": "array"
},
{
"type": "null"
}
],
"description": "Where the draft makes this claim: every place, in text order, at most 10, in the same shape as a citation's `position`: `start` / `end` in Unicode code points of `text` as you sent it, half-open, and the passage in `text`. For a URL draft `start` / `end` are `null` and `text` carries the passage. Only claims traced back to the draft are listed at all. `null` when the claim could not be placed, or once a zero-retention draft is gone.",
"title": "Positions"
},
"result": {
"anyOf": [
{
"$ref": "#/$defs/ReviewResultOut"
},
{
"type": "null"
}
]
},
"assessment": {
"$ref": "#/$defs/ReviewAssessmentOut"
},
"escalation": {
"anyOf": [
{
"$ref": "#/$defs/ReviewEscalationOut"
},
{
"type": "null"
}
]
},
"verification": {
"anyOf": [
{
"$ref": "#/$defs/ReviewVerificationOut"
},
{
"type": "null"
}
]
},
"suggested_edits": {
"anyOf": [
{
"$ref": "#/$defs/ReviewSuggestedEditsOut"
},
{
"type": "null"
}
],
"description": "Asked with `escalate.suggest_edits`. They follow the row's suggested rewrite: its completed deep check's, else its quick check's (see the issue's `source`). `null` when not asked, when the claim has no suggested rewrite, when the draft's passage is not in a supported language or could not be placed, or once a zero-retention draft is gone. Guide: https://lenz.io/docs/citations#suggested-edits"
}
},
"required": [
"index",
"claim",
"result",
"assessment",
"escalation",
"verification"
],
"title": "ReviewClaimOut",
"type": "object"
},
"ReviewCreditsOut": {
"properties": {
"charged": {
"description": "Net credits this review cost the account, read from the ledger. Authoritative once no deep check is running.",
"title": "Charged",
"type": "integer"
}
},
"required": [
"charged"
],
"title": "ReviewCreditsOut",
"type": "object"
},
"ReviewEntityOut": {
"properties": {
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
# --- truncated at 32 KB (58 KB total) ---
# Full source: https://artifacts.apis.io/lenz-io/json-schema/lenz-io-review-full-out-schema.json
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/lenz-io-review-full-out"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.