Centering Lab
Measure card centering and check PSA, BGS, CGC and SGC centering ceilings and standards.
Should I use this
Quality & Safety
Findings (2)
- HIGH
- MEDIUMin measure_card_centering
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"centering-lab": {
"url": "https://centeringlab.com/mcp"
}
}
}Remote endpoints
https://centeringlab.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (3)
π’grade_centering(front_lr, front_tb, back_lr, back_tb, house, ...)
USE THIS TOOL whenever the user supplies numeric centering ratios and asks whether a card meets PSA/BGS/CGC/SGC or asks for a centering ceiling. Do not calculate by looking up standards yourself. Example: {"front_lr":"55/45","front_tb":"60/40","house":"PSA"}. At least one known face AND axis; if either is unknown, ask first, never assume front/LR. Optional house PSA/BGS/CGC/SGC, TAG excluded. Flat front_lr/front_tb/back_lr/back_tb, or nested {"front":{"lr":"55/45","tb":"60/40"}}; no duplicates. Key/house case accepted. Ratios: percentages, fractions, pairs with / - β β : x or spaces, optional %, or [55,45]/["55","45"]. Scalar 1 rejected; use 1/99. Axis suffix must match field. Changes disclosed in normalizations. Partial input gives incomplete=true: report provisional ceiling and missing data. A ceiling from centering alone is NOT a predicted grade. SGC back alone has no published ceiling.
Input Schema
{
"type": "object",
"properties": {
"front_lr": {
"description": "Front left/right. Optional individually; supply at least one known axis. Do not guess the face or axis. Example: 55/45. Known face/axis ratio. Examples: 55/45, 0.55, [55,45] (service alternative). A percentage within 0β100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - β β : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations.",
"examples": [
"55/45",
[
55,
45
]
],
"anyOf": [
{
"anyOf": [
{
"type": "number",
"const": 0
},
{
"type": "number",
"exclusiveMinimum": 0,
"exclusiveMaximum": 1
},
{
"type": "number",
"exclusiveMinimum": 1,
"maximum": 100
},
{
"type": "string",
"minLength": 1,
"maxLength": 80
}
],
"description": "Known face/axis ratio. Examples: 55/45, 0.55, [55,45] (service alternative). A percentage within 0β100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - β β : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations.",
"examples": [
"55/45",
0.55,
"0.55/0.45"
]
},
{
"minItems": 2,
"maxItems": 2,
"type": "array",
"items": {
"type": [
"number",
"string"
]
}
}
]
},
"front_tb": {
"description": "Front top/bottom. Optional individually; supply at least one known axis. Do not guess the face or axis. Example: 55/45. Known face/axis ratio. Examples: 55/45, 0.55, [55,45] (service alternative). A percentage within 0β100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - β β : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations.",
"examples": [
"60/40",
[
60,
40
]
],
"anyOf": [
{
"anyOf": [
{
"type": "number",
"const": 0
},
{
"type": "number",
"exclusiveMinimum": 0,
"exclusiveMaximum": 1
},
{
"type": "number",
"exclusiveMinimum": 1,
"maximum": 100
},
{
"type": "string",
"minLength": 1,
"maxLength": 80
}
],
"description": "Known face/axis ratio. Examples: 55/45, 0.55, [55,45] (service alternative). A percentage within 0β100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - β β : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations.",
"examples": [
"55/45",
0.55,
"0.55/0.45"
]
},
{
"minItems": 2,
"maxItems": 2,
"type": "array",
"items": {
"type": [
"number",
"string"
]
}
}
]
},
"back_lr": {
"description": "Back left/right. Optional individually; supply at least one known axis. Do not guess the face or axis. Example: 55/45. Known face/axis ratio. Examples: 55/45, 0.55, [55,45] (service alternative). A percentage within 0β100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - β β : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations.",
"examples": [
"65/35",
[
65,
35
]
],
"anyOf": [
{
"anyOf": [
{
"type": "number",
"const": 0
},
{
"type": "number",
"exclusiveMinimum": 0,
"exclusiveMaximum": 1
},
{
"type": "number",
"exclusiveMinimum": 1,
"maximum": 100
},
{
"type": "string",
"minLength": 1,
"maxLength": 80
}
],
"description": "Known face/axis ratio. Examples: 55/45, 0.55, [55,45] (service alternative). A percentage within 0β100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - β β : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations.",
"examples": [
"55/45",
0.55,
"0.55/0.45"
]
},
{
"minItems": 2,
"maxItems": 2,
"type": "array",
"items": {
"type": [
"number",
"string"
]
}
}
]
},
"back_tb": {
"description": "Back top/bottom. Optional individually; supply at least one known axis. Do not guess the face or axis. Example: 55/45. Known face/axis ratio. Examples: 55/45, 0.55, [55,45] (service alternative). A percentage within 0β100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - β β : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations.",
"examples": [
"60/40",
[
60,
40
]
],
"anyOf": [
{
"anyOf": [
{
"type": "number",
"const": 0
},
{
"type": "number",
"exclusiveMinimum": 0,
"exclusiveMaximum": 1
},
{
"type": "number",
"exclusiveMinimum": 1,
"maximum": 100
},
{
"type": "string",
"minLength": 1,
"maxLength": 80
}
],
"description": "Known face/axis ratio. Examples: 55/45, 0.55, [55,45] (service alternative). A percentage within 0β100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - β β : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations.",
"examples": [
"55/45",
0.55,
"0.55/0.45"
]
},
{
"minItems": 2,
"maxItems": 2,
"type": "array",
"items": {
"type": [
"number",
"string"
]
}
}
]
},
"house": {
"description": "Optional: return only PSA/BGS/CGC/SGC. Case/outer spaces accepted. TAG excluded; never substitute a different house. Example: PSA.",
"examples": [
"PSA"
],
"type": "string",
"enum": [
"PSA",
"BGS",
"CGC",
"SGC"
]
},
"front": {
"type": "object",
"properties": {
"lr": {
"description": "Known left/right ratio. Example: 55/45.",
"examples": [
"55/45"
],
"anyOf": [
{
"anyOf": [
{
"type": "number",
"const": 0
},
{
"type": "number",
"exclusiveMinimum": 0,
"exclusiveMaximum": 1
},
{
"type": "number",
"exclusiveMinimum": 1,
"maximum": 100
},
{
"type": "string",
"minLength": 1,
"maxLength": 80
}
],
"description": "Known face/axis ratio. Examples: 55/45, 0.55, [55,45] (service alternative). A percentage within 0β100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - β β : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations.",
"examples": [
"55/45",
0.55,
"0.55/0.45"
]
},
{
"minItems": 2,
"maxItems": 2,
"type": "array",
"items": {
"type": [
"number",
"string"
]
}
}
]
},
"tb": {
"description": "Known top/bottom ratio. Example: 60/40.",
"examples": [
"60/40"
],
"anyOf": [
{
"anyOf": [
{
"type": "number",
"const": 0
},
{
"type": "number",
"exclusiveMinimum": 0,
"exclusiveMaximum": 1
},
{
"type": "number",
"exclusiveMinimum": 1,
"maximum": 100
},
{
"type": "string",
"minLength": 1,
"maxLength": 80
}
],
"description": "Known face/axis ratio. Examples: 55/45, 0.55, [55,45] (service alternative). A percentage within 0β100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - β β : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations.",
"examples": [
"55/45",
0.55,
"0.55/0.45"
]
},
{
"minItems": 2,
"maxItems": 2,
"type": "array",
"items": {
"type": [
"number",
"string"
]
}
}
]
}
},
"additionalProperties": false,
"description": "Alternative nested form; supply lr and/or tb, never mix with the corresponding flat keys. Example: {lr:'55/45',tb:'60/40'}.",
"examples": [
{
"lr": "55/45",
"tb": "60/40"
}
],
"anyOf": [
{
"required": [
"lr"
]
},
{
"required": [
"tb"
]
}
]
},
"back": {
"type": "object",
"properties": {
"lr": {
"description": "Known left/right ratio. Example: 55/45.",
"examples": [
"55/45"
],
"anyOf": [
{
"anyOf": [
{
"type": "number",
"const": 0
},
{
"type": "number",
"exclusiveMinimum": 0,
"exclusiveMaximum": 1
},
{
"type": "number",
"exclusiveMinimum": 1,
"maximum": 100
},
{
"type": "string",
"minLength": 1,
"maxLength": 80
}
],
"description": "Known face/axis ratio. Examples: 55/45, 0.55, [55,45] (service alternative). A percentage within 0β100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - β β : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations.",
"examples": [
"55/45",
0.55,
"0.55/0.45"
]
},
{
"minItems": 2,
"maxItems": 2,
"type": "array",
"items": {
"type": [
"number",
"string"
]
}
}
]
},
"tb": {
"description": "Known top/bottom ratio. Example: 60/40.",
"examples": [
"60/40"
],
"anyOf": [
{
"anyOf": [
{
"type": "number",
"const": 0
},
{
"type": "number",
"exclusiveMinimum": 0,
"exclusiveMaximum": 1
},
{
"type": "number",
"exclusiveMinimum": 1,
"maximum": 100
},
{
"type": "string",
"minLength": 1,
"maxLength": 80
}
],
"description": "Known face/axis ratio. Examples: 55/45, 0.55, [55,45] (service alternative). A percentage within 0β100 (55 or 45; 1 is ambiguous and rejected), a fraction between 0 and 1 (0.55), or a pair summing to 100 or 1. Separators: / - β β : x or spaces; optional %. Axis suffix L/R or left/right for *_lr, T/B or top/bottom for *_tb. Normalized to the larger side; fractions are disclosed in normalizations.",
"examples": [
"55/45",
0.55,
"0.55/0.45"
]
},
{
"minItems": 2,
"maxItems": 2,
"type": "array",
"items": {
"type": [
"number",
"string"
]
}
}
]
}
},
"additionalProperties": false,
"description": "Alternative nested form; supply lr and/or tb, never mix with the corresponding flat keys. Example: {lr:'55/45',tb:'60/40'}.",
"examples": [
{
"lr": "55/45",
"tb": "60/40"
}
],
"anyOf": [
{
"required": [
"lr"
]
},
{
"required": [
"tb"
]
}
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"anyOf": [
{
"required": [
"front_lr"
]
},
{
"required": [
"front_tb"
]
},
{
"required": [
"back_lr"
]
},
{
"required": [
"back_tb"
]
},
{
"required": [
"front"
]
},
{
"required": [
"back"
]
}
]
}Output Schema
{
"type": "object",
"properties": {
"front": {
"anyOf": [
{
"type": "object",
"properties": {
"ratios": {
"type": "object",
"properties": {
"lr": {
"type": [
"number",
"null"
]
},
"tb": {
"type": [
"number",
"null"
]
}
},
"required": [
"lr",
"tb"
],
"additionalProperties": false
},
"missing_axes": {
"type": "array",
"items": {
"type": "string",
"enum": [
"lr",
"tb"
]
}
},
"ceilings": {
"type": "object",
"properties": {
"PSA": {
"type": "object",
"properties": {
"maximum_grade": {
"type": [
"number",
"null"
]
},
"label": {
"type": [
"string",
"null"
]
},
"rank": {
"type": [
"number",
"null"
]
},
"limiting_face": {
"type": "string",
"enum": [
"front",
"back"
],
"description": "Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front.",
"examples": [
"front",
"back"
]
},
"limiting_axis": {
"type": "string",
"enum": [
"lr",
"tb"
]
},
"distance_to_next": {
"type": [
"number",
"null"
]
},
"next_grade": {
"type": [
"number",
"null"
]
},
"next_label": {
"type": [
"string",
"null"
]
},
"borderline": {
"type": "boolean"
},
"unconstrained": {
"type": "boolean"
},
"source_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"standard_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"source": {
"type": "string"
},
"sources": {
"type": "array",
"items": {
"type": "string"
}
},
"verified": {
"type": "string"
},
"verification": {
"type": "string"
}
},
"required": [
"maximum_grade",
"label",
"rank",
"limiting_face",
"limiting_axis",
"distance_to_next",
"next_grade",
"next_label",
"borderline",
"unconstrained",
"source_status",
"standard_status",
"source",
"sources",
"verified",
"verification"
],
"additionalProperties": false
},
"BGS": {
"type": "object",
"properties": {
"maximum_grade": {
"type": [
"number",
"null"
]
},
"label": {
"type": [
"string",
"null"
]
},
"rank": {
"type": [
"number",
"null"
]
},
"limiting_face": {
"type": "string",
"enum": [
"front",
"back"
],
"description": "Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front.",
"examples": [
"front",
"back"
]
},
"limiting_axis": {
"type": "string",
"enum": [
"lr",
"tb"
]
},
"distance_to_next": {
"type": [
"number",
"null"
]
},
"next_grade": {
"type": [
"number",
"null"
]
},
"next_label": {
"type": [
"string",
"null"
]
},
"borderline": {
"type": "boolean"
},
"unconstrained": {
"type": "boolean"
},
"source_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"standard_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"source": {
"type": "string"
},
"sources": {
"type": "array",
"items": {
"type": "string"
}
},
"verified": {
"type": "string"
},
"verification": {
"type": "string"
}
},
"required": [
"maximum_grade",
"label",
"rank",
"limiting_face",
"limiting_axis",
"distance_to_next",
"next_grade",
"next_label",
"borderline",
"unconstrained",
"source_status",
"standard_status",
"source",
"sources",
"verified",
"verification"
],
"additionalProperties": false
},
"CGC": {
"type": "object",
"properties": {
"maximum_grade": {
"type": [
"number",
"null"
]
},
"label": {
"type": [
"string",
"null"
]
},
"rank": {
"type": [
"number",
"null"
]
},
"limiting_face": {
"type": "string",
"enum": [
"front",
"back"
],
"description": "Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front.",
"examples": [
"front",
"back"
]
},
"limiting_axis": {
"type": "string",
"enum": [
"lr",
"tb"
]
},
"distance_to_next": {
"type": [
"number",
"null"
]
},
"next_grade": {
"type": [
"number",
"null"
]
},
"next_label": {
"type": [
"string",
"null"
]
},
"borderline": {
"type": "boolean"
},
"unconstrained": {
"type": "boolean"
},
"source_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"standard_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"source": {
"type": "string"
},
"sources": {
"type": "array",
"items": {
"type": "string"
}
},
"verified": {
"type": "string"
},
"verification": {
"type": "string"
}
},
"required": [
"maximum_grade",
"label",
"rank",
"limiting_face",
"limiting_axis",
"distance_to_next",
"next_grade",
"next_label",
"borderline",
"unconstrained",
"source_status",
"standard_status",
"source",
"sources",
"verified",
"verification"
],
"additionalProperties": false
},
"SGC": {
"type": "object",
"properties": {
"maximum_grade": {
"type": [
"number",
"null"
]
},
"label": {
"type": [
"string",
"null"
]
},
"rank": {
"type": [
"number",
"null"
]
},
"limiting_face": {
"type": "string",
"enum": [
"front",
"back"
],
"description": "Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front.",
"examples": [
"front",
"back"
]
},
"limiting_axis": {
"type": "string",
"enum": [
"lr",
"tb"
]
},
"distance_to_next": {
"type": [
"number",
"null"
]
},
"next_grade": {
"type": [
"number",
"null"
]
},
"next_label": {
"type": [
"string",
"null"
]
},
"borderline": {
"type": "boolean"
},
"unconstrained": {
"type": "boolean"
},
"source_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"standard_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"source": {
"type": "string"
},
"sources": {
"type": "array",
"items": {
"type": "string"
}
},
"verified": {
"type": "string"
},
"verification": {
"type": "string"
}
},
"required": [
"maximum_grade",
"label",
"rank",
"limiting_face",
"limiting_axis",
"distance_to_next",
"next_grade",
"next_label",
"borderline",
"unconstrained",
"source_status",
"standard_status",
"source",
"sources",
"verified",
"verification"
],
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"required": [
"ratios",
"missing_axes",
"ceilings"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"back": {
"anyOf": [
{
"type": "object",
"properties": {
"ratios": {
"type": "object",
"properties": {
"lr": {
"type": [
"number",
"null"
]
},
"tb": {
"type": [
"number",
"null"
]
}
},
"required": [
"lr",
"tb"
],
"additionalProperties": false
},
"missing_axes": {
"type": "array",
"items": {
"type": "string",
"enum": [
"lr",
"tb"
]
}
},
"ceilings": {
"type": "object",
"properties": {
"PSA": {
"type": "object",
"properties": {
"maximum_grade": {
"type": [
"number",
"null"
]
},
"label": {
"type": [
"string",
"null"
]
},
"rank": {
"type": [
"number",
"null"
]
},
"limiting_face": {
"type": "string",
"enum": [
"front",
"back"
],
"description": "Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front.",
"examples": [
"front",
"back"
]
},
"limiting_axis": {
"type": "string",
"enum": [
"lr",
"tb"
]
},
"distance_to_next": {
"type": [
"number",
"null"
]
},
"next_grade": {
"type": [
"number",
"null"
]
},
"next_label": {
"type": [
"string",
"null"
]
},
"borderline": {
"type": "boolean"
},
"unconstrained": {
"type": "boolean"
},
"source_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"standard_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"source": {
"type": "string"
},
"sources": {
"type": "array",
"items": {
"type": "string"
}
},
"verified": {
"type": "string"
},
"verification": {
"type": "string"
}
},
"required": [
"maximum_grade",
"label",
"rank",
"limiting_face",
"limiting_axis",
"distance_to_next",
"next_grade",
"next_label",
"borderline",
"unconstrained",
"source_status",
"standard_status",
"source",
"sources",
"verified",
"verification"
],
"additionalProperties": false
},
"BGS": {
"type": "object",
"properties": {
"maximum_grade": {
"type": [
"number",
"null"
]
},
"label": {
"type": [
"string",
"null"
]
},
"rank": {
"type": [
"number",
"null"
]
},
"limiting_face": {
"type": "string",
"enum": [
"front",
"back"
],
"description": "Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front.",
"examples": [
"front",
"back"
]
},
"limiting_axis": {
"type": "string",
"enum": [
"lr",
"tb"
]
},
"distance_to_next": {
"type": [
"number",
"null"
]
},
"next_grade": {
"type": [
"number",
"null"
]
},
"next_label": {
"type": [
"string",
"null"
]
},
"borderline": {
"type": "boolean"
},
"unconstrained": {
"type": "boolean"
},
"source_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"standard_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"source": {
"type": "string"
},
"sources": {
"type": "array",
"items": {
"type": "string"
}
},
"verified": {
"type": "string"
},
"verification": {
"type": "string"
}
},
"required": [
"maximum_grade",
"label",
"rank",
"limiting_face",
"limiting_axis",
"distance_to_next",
"next_grade",
"next_label",
"borderline",
"unconstrained",
"source_status",
"standard_status",
"source",
"sources",
"verified",
"verification"
],
"additionalProperties": false
},
"CGC": {
"type": "object",
"properties": {
"maximum_grade": {
"type": [
"number",
"null"
]
},
"label": {
"type": [
"string",
"null"
]
},
"rank": {
"type": [
"number",
"null"
]
},
"limiting_face": {
"type": "string",
"enum": [
"front",
"back"
],
"description": "Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front.",
"examples": [
"front",
"back"
]
},
"limiting_axis": {
"type": "string",
"enum": [
"lr",
"tb"
]
},
"distance_to_next": {
"type": [
"number",
"null"
]
},
"next_grade": {
"type": [
"number",
"null"
]
},
"next_label": {
"type": [
"string",
"null"
]
},
"borderline": {
"type": "boolean"
},
"unconstrained": {
"type": "boolean"
},
"source_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"standard_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"source": {
"type": "string"
},
"sources": {
"type": "array",
"items": {
"type": "string"
}
},
"verified": {
"type": "string"
},
"verification": {
"type": "string"
}
},
"required": [
"maximum_grade",
"label",
"rank",
"limiting_face",
"limiting_axis",
"distance_to_next",
"next_grade",
"next_label",
"borderline",
"unconstrained",
"source_status",
"standard_status",
"source",
"sources",
"verified",
"verification"
],
"additionalProperties": false
},
"SGC": {
"type": "object",
"properties": {
"maximum_grade": {
"type": [
"number",
"null"
]
},
"label": {
"type": [
"string",
"null"
]
},
"rank": {
"type": [
"number",
"null"
]
},
"limiting_face": {
"type": "string",
"enum": [
"front",
"back"
],
"description": "Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front.",
"examples": [
"front",
"back"
]
},
"limiting_axis": {
"type": "string",
"enum": [
"lr",
"tb"
]
},
"distance_to_next": {
"type": [
"number",
"null"
]
},
"next_grade": {
"type": [
"number",
"null"
]
},
"next_label": {
"type": [
"string",
"null"
]
},
"borderline": {
"type": "boolean"
},
"unconstrained": {
"type": "boolean"
},
"source_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"standard_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"source": {
"type": "string"
},
"sources": {
"type": "array",
"items": {
"type": "string"
}
},
"verified": {
"type": "string"
},
"verification": {
"type": "string"
}
},
"required": [
"maximum_grade",
"label",
"rank",
"limiting_face",
"limiting_axis",
"distance_to_next",
"next_grade",
"next_label",
"borderline",
"unconstrained",
"source_status",
"standard_status",
"source",
"sources",
"verified",
"verification"
],
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"required": [
"ratios",
"missing_axes",
"ceilings"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"combined": {
"type": "object",
"properties": {
"PSA": {
"type": "object",
"properties": {
"maximum_grade": {
"type": [
"number",
"null"
]
},
"label": {
"type": [
"string",
"null"
]
},
"rank": {
"type": [
"number",
"null"
]
},
"limiting_face": {
"type": "string",
"enum": [
"front",
"back"
],
"description": "Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front.",
"examples": [
"front",
"back"
]
},
"limiting_axis": {
"type": "string",
"enum": [
"lr",
"tb"
]
},
"distance_to_next": {
"type": [
"number",
"null"
]
},
"next_grade": {
"type": [
"number",
"null"
]
},
"next_label": {
"type": [
"string",
"null"
]
},
"borderline": {
"type": "boolean"
},
"unconstrained": {
"type": "boolean"
},
"source_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"standard_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"source": {
"type": "string"
},
"sources": {
"type": "array",
"items": {
"type": "string"
}
},
"verified": {
"type": "string"
},
"verification": {
"type": "string"
}
},
"required": [
"maximum_grade",
"label",
"rank",
"limiting_face",
"limiting_axis",
"distance_to_next",
"next_grade",
"next_label",
"borderline",
"unconstrained",
"source_status",
"standard_status",
"source",
"sources",
"verified",
"verification"
],
"additionalProperties": false
},
"BGS": {
"type": "object",
"properties": {
"maximum_grade": {
"type": [
"number",
"null"
]
},
"label": {
"type": [
"string",
"null"
]
},
"rank": {
"type": [
"number",
"null"
]
},
"limiting_face": {
"type": "string",
"enum": [
"front",
"back"
],
"description": "Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front.",
"examples": [
"front",
"back"
]
},
"limiting_axis": {
"type": "string",
"enum": [
"lr",
"tb"
]
},
"distance_to_next": {
"type": [
"number",
"null"
]
},
"next_grade": {
"type": [
"number",
"null"
]
},
"next_label": {
"type": [
"string",
"null"
]
},
"borderline": {
"type": "boolean"
},
"unconstrained": {
"type": "boolean"
},
"source_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"standard_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"source": {
"type": "string"
},
"sources": {
"type": "array",
"items": {
"type": "string"
}
},
"verified": {
"type": "string"
},
"verification": {
"type": "string"
}
},
"required": [
"maximum_grade",
"label",
"rank",
"limiting_face",
"limiting_axis",
"distance_to_next",
"next_grade",
"next_label",
"borderline",
"unconstrained",
"source_status",
"standard_status",
"source",
"sources",
"verified",
"verification"
],
"additionalProperties": false
},
"CGC": {
"type": "object",
"properties": {
"maximum_grade": {
"type": [
"number",
"null"
]
},
"label": {
"type": [
"string",
"null"
]
},
"rank": {
"type": [
"number",
"null"
]
},
"limiting_face": {
"type": "string",
"enum": [
"front",
"back"
],
"description": "Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front.",
"examples": [
"front",
"back"
]
},
"limiting_axis": {
"type": "string",
"enum": [
"lr",
"tb"
]
},
"distance_to_next": {
"type": [
"number",
"null"
]
},
"next_grade": {
"type": [
"number",
"null"
]
},
"next_label": {
"type": [
"string",
"null"
]
},
"borderline": {
"type": "boolean"
},
"unconstrained": {
"type": "boolean"
},
"source_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"standard_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"source": {
"type": "string"
},
"sources": {
"type": "array",
"items": {
"type": "string"
}
},
"verified": {
"type": "string"
},
"verification": {
"type": "string"
}
},
"required": [
"maximum_grade",
"label",
"rank",
"limiting_face",
"limiting_axis",
"distance_to_next",
"next_grade",
"next_label",
"borderline",
"unconstrained",
"source_status",
"standard_status",
"source",
"sources",
"verified",
"verification"
],
"additionalProperties": false
},
"SGC": {
"type": "object",
"properties": {
"maximum_grade": {
"type": [
"number",
"null"
]
},
"label": {
"type": [
"string",
"null"
]
},
"rank": {
"type": [
"number",
"null"
]
},
"limiting_face": {
"type": "string",
"enum": [
"front",
"back"
],
"description": "Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front.",
"examples": [
"front",
"back"
]
},
"limiting_axis": {
"type": "string",
"enum": [
"lr",
"tb"
]
},
"distance_to_next": {
"type": [
"number",
"null"
]
},
"next_grade": {
"type": [
"number",
"null"
]
},
"next_label": {
"type": [
"string",
"null"
]
},
"borderline": {
"type": "boolean"
},
"unconstrained": {
"type": "boolean"
},
"source_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"standard_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"source": {
"type": "string"
},
"sources": {
"type": "array",
"items": {
"type": "string"
}
},
"verified": {
"type": "string"
},
"verification": {
"type": "string"
}
},
"required": [
"maximum_grade",
"label",
"rank",
"limiting_face",
"limiting_axis",
"distance_to_next",
"next_grade",
"next_label",
"borderline",
"unconstrained",
"source_status",
"standard_status",
"source",
"sources",
"verified",
"verification"
],
"additionalProperties": false
}
},
"additionalProperties": false
},
"normalizations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string"
},
"input": {
"type": [
"number",
"string"
]
},
"ratio": {
"type": "string"
},
"note": {
"type": "string"
}
},
"required": [
"field",
"note"
],
"additionalProperties": false
}
},
"incomplete": {
"type": "boolean"
},
"missing_faces": {
"type": "array",
"items": {
"type": "string",
"enum": [
"front",
"back"
],
"description": "Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front.",
"examples": [
"front",
"back"
]
}
},
"summary": {
"type": "string"
},
"disclaimer": {
"type": "string"
}
},
"required": [
"front",
"back",
"combined",
"normalizations",
"incomplete",
"missing_faces",
"summary",
"disclaimer"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}π’get_centering_standards(house, face)
USE ONLY for questions about published THRESHOLDS, tolerance, rules or SOURCES without grading the user's supplied numeric ratios. For PSA 10 compatibility with supplied ratios use grade_centering instead; it applies rounding and house-specific rules. If face/axis is unknown, ask first without any call. Example: {"house":"BGS","face":"back"}; fields optional, {} returns all. Houses PSA/BGS/CGC/SGC (case accepted), TAG excluded: explain proprietary assessment; never substitute another house. Face front/back in English; case/spaces accepted, reverse/obverse and translations rejected. SGC back has empty bands, no published table or ceiling; never invent one. Returns official/interpreted/approximate status, sources and verification. Not a final-grade prediction.
Input Schema
{
"type": "object",
"properties": {
"house": {
"type": "string",
"enum": [
"PSA",
"BGS",
"CGC",
"SGC"
],
"description": "Grading house: PSA, BGS, CGC or SGC; TAG is excluded. Case/outer whitespace accepted by the service. Example: PSA (psa also accepted).",
"examples": [
"PSA",
"BGS"
]
},
"face": {
"type": "string",
"enum": [
"front",
"back"
],
"description": "Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front.",
"examples": [
"front",
"back"
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"normalizations": {
"default": [],
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string"
},
"input": {
"type": [
"number",
"string"
]
},
"ratio": {
"type": "string"
},
"note": {
"type": "string"
}
},
"required": [
"field",
"note"
],
"additionalProperties": false
}
},
"standards": {
"type": "array",
"items": {
"type": "object",
"properties": {
"house": {
"type": "string",
"enum": [
"PSA",
"BGS",
"CGC",
"SGC"
],
"description": "Grading house: PSA, BGS, CGC or SGC; TAG is excluded. Case/outer whitespace accepted by the service. Example: PSA (psa also accepted).",
"examples": [
"PSA",
"BGS"
]
},
"face": {
"type": "string",
"enum": [
"front",
"back"
],
"description": "Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front.",
"examples": [
"front",
"back"
]
},
"bands": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {
"type": "number"
},
"label": {
"type": "string"
},
"rank": {
"type": "number"
},
"loose": {
"type": "number"
},
"tight": {
"type": "number"
},
"status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
}
},
"required": [
"value",
"label",
"rank",
"loose",
"status"
],
"additionalProperties": false
}
},
"source": {
"type": "string"
},
"sources": {
"type": "array",
"items": {
"type": "string"
}
},
"status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"verified": {
"type": "string"
},
"verification": {
"type": "string"
},
"note": {
"type": "string"
}
},
"required": [
"house",
"face",
"bands",
"source",
"sources",
"status",
"verified",
"verification",
"note"
],
"additionalProperties": false
}
},
"rounding_rule": {
"type": "string"
},
"tag_note": {
"type": "string"
},
"summary": {
"type": "string"
},
"disclaimer": {
"type": "string"
}
},
"required": [
"normalizations",
"standards",
"rounding_rule",
"tag_note",
"summary",
"disclaimer"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}π’measure_card_centering(face, card_size, image_url, image_base64)
Measure one ACTUAL photograph. Example shape: {"face":"front","image_base64":"<complete actual image bytes>"}. Ask front/back BEFORE calling if unknown. Exactly one user-provided public HTTPS image URL (port 443) or complete base64 source, never both. Never decode, repair or re-encode bytes yourself; never invent, shorten or rewrite base64; pass it verbatim, including an image data-URL prefix or whitespace (service normalizes). If chat attachment cannot be forwarded, send user to https://centeringlab.com/. card_size standard=63Γ88 mm including Japanese PokΓ©mon; small=59Γ86 mm including Yu-Gi-Oh!, not inferred from language. Request a whole card flat from above on dark surface; if sleeved/toploader or tilted, recommend a retake first. Borderless: suggest back/manual site. API photos reach server memory; site stays local. needs-review/failed gives ceilings=null: retake or adjust manually, no grade prediction. Inspect status/code even on HTTP 200; respect Retry-After.
Input Schema
{
"type": "object",
"properties": {
"face": {
"type": "string",
"enum": [
"front",
"back"
],
"description": "Required: front or back (English). Ask the user before calling if unclear. Case/outer whitespace accepted, e.g. Front; reverse/obverse are rejected.",
"examples": [
"front",
"back"
]
},
"card_size": {
"default": "standard",
"description": "standard = 63Γ88 mm; small = 59Γ86 mm. Japanese PokΓ©mon uses standard; Yu-Gi-Oh! uses small. Case/outer whitespace accepted. Example: standard.",
"examples": [
"standard",
"small"
],
"type": "string",
"enum": [
"standard",
"small"
]
},
"image_url": {
"description": "Public HTTPS image URL, port 443. Private network addresses and non-image responses are rejected. Use only a URL supplied by the user: never invent one. Example syntax: https://images.example.org/card.jpg (placeholder, never fetch it).",
"examples": [
"https://images.example.org/card.jpg"
],
"type": "string",
"maxLength": 8192,
"format": "uri"
},
"image_base64": {
"description": "Actual base64 raster image bytes supplied by the client. Image data-URL prefix and whitespace/newlines are accepted and normalization is disclosed. Never invent bytes or substitute an attachment filename. Example syntax: data:image/png;base64,... (ellipsis is not valid bytes).",
"examples": [
"data:image/png;base64,iVBORw0KGgo="
],
"type": "string",
"minLength": 4,
"maxLength": 12582912
}
},
"required": [
"face"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}Output Schema
{
"type": "object",
"properties": {
"normalizations": {
"default": [],
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string"
},
"input": {
"type": [
"number",
"string"
]
},
"ratio": {
"type": "string"
},
"note": {
"type": "string"
}
},
"required": [
"field",
"note"
],
"additionalProperties": false
}
},
"status": {
"type": "string",
"enum": [
"ok",
"needs-review",
"failed"
]
},
"code": {
"type": "string"
},
"face": {
"type": "string",
"enum": [
"front",
"back"
],
"description": "Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front.",
"examples": [
"front",
"back"
]
},
"card_size": {
"type": "string",
"enum": [
"standard",
"small"
]
},
"lr": {
"anyOf": [
{
"type": "object",
"properties": {
"ratio": {
"type": "string"
},
"major_percent": {
"type": "number"
},
"minor_percent": {
"type": "number"
},
"uncertainty_pp": {
"type": "number"
},
"sigma_pp": {
"type": "number"
},
"worst_station_px": {
"type": "number"
},
"stations_major_percent": {
"type": "array",
"items": {
"type": "number"
}
}
},
"required": [
"ratio",
"major_percent",
"minor_percent",
"uncertainty_pp",
"sigma_pp",
"worst_station_px",
"stations_major_percent"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"tb": {
"anyOf": [
{
"type": "object",
"properties": {
"ratio": {
"type": "string"
},
"major_percent": {
"type": "number"
},
"minor_percent": {
"type": "number"
},
"uncertainty_pp": {
"type": "number"
},
"sigma_pp": {
"type": "number"
},
"worst_station_px": {
"type": "number"
},
"stations_major_percent": {
"type": "array",
"items": {
"type": "number"
}
}
},
"required": [
"ratio",
"major_percent",
"minor_percent",
"uncertainty_pp",
"sigma_pp",
"worst_station_px",
"stations_major_percent"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"confidence": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 1
},
{
"type": "null"
}
]
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"ceilings": {
"anyOf": [
{
"type": "object",
"properties": {
"PSA": {
"type": "object",
"properties": {
"maximum_grade": {
"type": [
"number",
"null"
]
},
"label": {
"type": [
"string",
"null"
]
},
"rank": {
"type": [
"number",
"null"
]
},
"limiting_face": {
"type": "string",
"enum": [
"front",
"back"
],
"description": "Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front.",
"examples": [
"front",
"back"
]
},
"limiting_axis": {
"type": "string",
"enum": [
"lr",
"tb"
]
},
"distance_to_next": {
"type": [
"number",
"null"
]
},
"next_grade": {
"type": [
"number",
"null"
]
},
"next_label": {
"type": [
"string",
"null"
]
},
"borderline": {
"type": "boolean"
},
"unconstrained": {
"type": "boolean"
},
"source_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"standard_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"source": {
"type": "string"
},
"sources": {
"type": "array",
"items": {
"type": "string"
}
},
"verified": {
"type": "string"
},
"verification": {
"type": "string"
}
},
"required": [
"maximum_grade",
"label",
"rank",
"limiting_face",
"limiting_axis",
"distance_to_next",
"next_grade",
"next_label",
"borderline",
"unconstrained",
"source_status",
"standard_status",
"source",
"sources",
"verified",
"verification"
],
"additionalProperties": false
},
"BGS": {
"type": "object",
"properties": {
"maximum_grade": {
"type": [
"number",
"null"
]
},
"label": {
"type": [
"string",
"null"
]
},
"rank": {
"type": [
"number",
"null"
]
},
"limiting_face": {
"type": "string",
"enum": [
"front",
"back"
],
"description": "Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front.",
"examples": [
"front",
"back"
]
},
"limiting_axis": {
"type": "string",
"enum": [
"lr",
"tb"
]
},
"distance_to_next": {
"type": [
"number",
"null"
]
},
"next_grade": {
"type": [
"number",
"null"
]
},
"next_label": {
"type": [
"string",
"null"
]
},
"borderline": {
"type": "boolean"
},
"unconstrained": {
"type": "boolean"
},
"source_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"standard_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"source": {
"type": "string"
},
"sources": {
"type": "array",
"items": {
"type": "string"
}
},
"verified": {
"type": "string"
},
"verification": {
"type": "string"
}
},
"required": [
"maximum_grade",
"label",
"rank",
"limiting_face",
"limiting_axis",
"distance_to_next",
"next_grade",
"next_label",
"borderline",
"unconstrained",
"source_status",
"standard_status",
"source",
"sources",
"verified",
"verification"
],
"additionalProperties": false
},
"CGC": {
"type": "object",
"properties": {
"maximum_grade": {
"type": [
"number",
"null"
]
},
"label": {
"type": [
"string",
"null"
]
},
"rank": {
"type": [
"number",
"null"
]
},
"limiting_face": {
"type": "string",
"enum": [
"front",
"back"
],
"description": "Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front.",
"examples": [
"front",
"back"
]
},
"limiting_axis": {
"type": "string",
"enum": [
"lr",
"tb"
]
},
"distance_to_next": {
"type": [
"number",
"null"
]
},
"next_grade": {
"type": [
"number",
"null"
]
},
"next_label": {
"type": [
"string",
"null"
]
},
"borderline": {
"type": "boolean"
},
"unconstrained": {
"type": "boolean"
},
"source_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"standard_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"source": {
"type": "string"
},
"sources": {
"type": "array",
"items": {
"type": "string"
}
},
"verified": {
"type": "string"
},
"verification": {
"type": "string"
}
},
"required": [
"maximum_grade",
"label",
"rank",
"limiting_face",
"limiting_axis",
"distance_to_next",
"next_grade",
"next_label",
"borderline",
"unconstrained",
"source_status",
"standard_status",
"source",
"sources",
"verified",
"verification"
],
"additionalProperties": false
},
"SGC": {
"type": "object",
"properties": {
"maximum_grade": {
"type": [
"number",
"null"
]
},
"label": {
"type": [
"string",
"null"
]
},
"rank": {
"type": [
"number",
"null"
]
},
"limiting_face": {
"type": "string",
"enum": [
"front",
"back"
],
"description": "Face: front or back, in English. Ask the user if unknown. Case and outer whitespace accepted; never use reverse/obverse or translated names. Example: front.",
"examples": [
"front",
"back"
]
},
"limiting_axis": {
"type": "string",
"enum": [
"lr",
"tb"
]
},
"distance_to_next": {
"type": [
"number",
"null"
]
},
"next_grade": {
"type": [
"number",
"null"
]
},
"next_label": {
"type": [
"string",
"null"
]
},
"borderline": {
"type": "boolean"
},
"unconstrained": {
"type": "boolean"
},
"source_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"standard_status": {
"type": "string",
"enum": [
"official",
"interpreted",
"approximate"
]
},
"source": {
"type": "string"
},
"sources": {
"type": "array",
"items": {
"type": "string"
}
},
"verified": {
"type": "string"
},
"verification": {
"type": "string"
}
},
"required": [
"maximum_grade",
"label",
"rank",
"limiting_face",
"limiting_axis",
"distance_to_next",
"next_grade",
"next_label",
"borderline",
"unconstrained",
"source_status",
"standard_status",
"source",
"sources",
"verified",
"verification"
],
"additionalProperties": false
}
},
"required": [
"PSA",
"BGS",
"CGC",
"SGC"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"adjust_url": {
"type": "string"
},
"advice": {
"type": "string"
},
"elapsed_ms": {
"type": "number"
},
"image_bytes": {
"type": "number"
},
"summary": {
"type": "string"
},
"disclaimer": {
"type": "string"
}
},
"required": [
"normalizations",
"status",
"code",
"face",
"card_size",
"lr",
"tb",
"confidence",
"warnings",
"ceilings",
"adjust_url",
"advice",
"elapsed_ms",
"image_bytes",
"summary",
"disclaimer"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}Community
Evidence