Centering Lab Standards API

The Standards API from Centering Lab — 1 operation(s) for standards.

Operations 1

GET /api/v1/standards Get centering standards and sources #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/centeringlab-com:centeringlab-com-standards-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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.

OpenAPI Specification

centeringlab-com-standards-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Centering Lab Standards API
  version: 1.3.0
  description: 'Card centering measurement and published grading thresholds. Free public access with no API key; optional bearer authentication selects partner quotas and reserved lanes. Public REST endpoints allow cross-origin browser fetch without credentials (Access-Control-Allow-Origin: *); IP quotas still apply. Images are processed only in memory. This is a ceiling from centering alone, not a prediction of the final grade.'
servers:
- url: https://centeringlab.com
security:
- {}
- partnerBearer: []
tags:
- name: Standards
paths:
  /api/v1/standards:
    get:
      operationId: get_centering_standards
      summary: Get centering standards and sources
      description: '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.'
      parameters:
      - name: house
        in: query
        required: false
        schema:
          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
      - name: face
        in: query
        required: false
        schema:
          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
      responses:
        '200':
          description: Centering result. Always distinguish a centering ceiling from a grade prediction.
          headers:
            RateLimit-Limit:
              schema:
                type: integer
              description: 'Partner only: limiting quota window limit.'
            RateLimit-Remaining:
              schema:
                type: integer
              description: 'Partner only: remaining calls in that window.'
            RateLimit-Reset:
              schema:
                type: integer
              description: 'Partner only: delta seconds until that window resets.'
            X-Request-Id:
              schema:
                type: string
                maxLength: 128
              description: 'Partner only: supplied visible ASCII request ID, echoed without storage.'
          content:
            application/json:
              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
                additionalProperties: false
        '400':
          description: Invalid input, unsafe image URL or unsupported image.
          headers:
            RateLimit-Limit:
              schema:
                type: integer
              description: 'Partner only: limiting quota window limit.'
            RateLimit-Remaining:
              schema:
                type: integer
              description: 'Partner only: remaining calls in that window.'
            RateLimit-Reset:
              schema:
                type: integer
              description: 'Partner only: delta seconds until that window resets.'
            X-Request-Id:
              schema:
                type: string
                maxLength: 128
              description: 'Partner only: supplied visible ASCII request ID, echoed without storage.'
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - code
                - message
                - disclaimer
                properties:
                  status:
                    const: failed
                    type: string
                  code:
                    type: string
                    description: Includes INVALID_GEOMETRY, INVALID_ARGUMENTS, INVALID_API_KEY, INVALID_REQUEST_ID and existing errors.
                  message:
                    type: string
                  reason:
                    type: string
                  unknown_key:
                    type: string
                  field:
                    type: string
                  hint:
                    type: string
                  example:
                    type: object
                  disclaimer:
                    type: string
        '401':
          description: 'INVALID_API_KEY: unknown, inactive or malformed partner key.'
          headers:
            RateLimit-Limit:
              schema:
                type: integer
              description: 'Partner only: limiting quota window limit.'
            RateLimit-Remaining:
              schema:
                type: integer
              description: 'Partner only: remaining calls in that window.'
            RateLimit-Reset:
              schema:
                type: integer
              description: 'Partner only: delta seconds until that window resets.'
            X-Request-Id:
              schema:
                type: string
                maxLength: 128
              description: 'Partner only: supplied visible ASCII request ID, echoed without storage.'
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - code
                - message
                - disclaimer
                properties:
                  status:
                    const: failed
                    type: string
                  code:
                    type: string
                    description: Includes INVALID_GEOMETRY, INVALID_ARGUMENTS, INVALID_API_KEY, INVALID_REQUEST_ID and existing errors.
                  message:
                    type: string
                  reason:
                    type: string
                  unknown_key:
                    type: string
                  field:
                    type: string
                  hint:
                    type: string
                  example:
                    type: object
                  disclaimer:
                    type: string
        '403':
          description: Unrecognized Host header.
          headers:
            RateLimit-Limit:
              schema:
                type: integer
              description: 'Partner only: limiting quota window limit.'
            RateLimit-Remaining:
              schema:
                type: integer
              description: 'Partner only: remaining calls in that window.'
            RateLimit-Reset:
              schema:
                type: integer
              description: 'Partner only: delta seconds until that window resets.'
            X-Request-Id:
              schema:
                type: string
                maxLength: 128
              description: 'Partner only: supplied visible ASCII request ID, echoed without storage.'
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - code
                - message
                - disclaimer
                properties:
                  status:
                    const: failed
                    type: string
                  code:
                    type: string
                    description: Includes INVALID_GEOMETRY, INVALID_ARGUMENTS, INVALID_API_KEY, INVALID_REQUEST_ID and existing errors.
                  message:
                    type: string
                  reason:
                    type: string
                  unknown_key:
                    type: string
                  field:
                    type: string
                  hint:
                    type: string
                  example:
                    type: object
                  disclaimer:
                    type: string
        '405':
          description: Use the documented HTTP method.
          headers:
            RateLimit-Limit:
              schema:
                type: integer
              description: 'Partner only: limiting quota window limit.'
            RateLimit-Remaining:
              schema:
                type: integer
              description: 'Partner only: remaining calls in that window.'
            RateLimit-Reset:
              schema:
                type: integer
              description: 'Partner only: delta seconds until that window resets.'
            X-Request-Id:
              schema:
                type: string
                maxLength: 128
              description: 'Partner only: supplied visible ASCII request ID, echoed without storage.'
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - code
                - message
                - disclaimer
                properties:
                  status:
                    const: failed
                    type: string
                  code:
                    type: string
                    description: Includes INVALID_GEOMETRY, INVALID_ARGUMENTS, INVALID_API_KEY, INVALID_REQUEST_ID and existing errors.
                  message:
                    type: string
                  reason:
                    type: string
                  unknown_key:
                    type: string
                  field:
                    type: string
                  hint:
                    type: string
                  example:
                    type: object
                  disclaimer:
                    type: string
        '413':
          description: Request/image byte limit or decoded pixel limit exceeded.
          headers:
            RateLimit-Limit:
              schema:
                type: integer
              description: 'Partner only: limiting quota window limit.'
            RateLimit-Remaining:
              schema:
                type: integer
              description: 'Partner only: remaining calls in that window.'
            RateLimit-Reset:
              schema:
                type: integer
              description: 'Partner only: delta seconds until that window resets.'
            X-Request-Id:
              schema:
                type: string
                maxLength: 128
              description: 'Partner only: supplied visible ASCII request ID, echoed without storage.'
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - code
                - message
                - disclaimer
                properties:
                  status:
                    const: failed
                    type: string
                  code:
                    type: string
                    description: Includes INVALID_GEOMETRY, INVALID_ARGUMENTS, INVALID_API_KEY, INVALID_REQUEST_ID and existing errors.
                  message:
                    type: string
                  reason:
                    type: string
                  unknown_key:
                    type: string
                  field:
                    type: string
                  hint:
                    type: string
                  example:
                    type: object
                  disclaimer:
                    type: string
        '415':
          description: Send uncompressed application/json.
          headers:
            RateLimit-Limit:
              schema:
                type: integer
              description: 'Partner only: limiting quota window limit.'
            RateLimit-Remaining:
              schema:
                type: integer
              description: 'Partner only: remaining calls in that window.'
            RateLimit-Reset:
              schema:
                type: integer
              description: 'Partner only: delta seconds until that window resets.'
            X-Request-Id:
              schema:
                type: string
                maxLength: 128
              description: 'Partner only: supplied visible ASCII request ID, echoed without storage.'
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - code
                - message
                - disclaimer
                properties:
                  status:
                    const: failed
                    type: string
                  code:
                    type: string
                    description: Includes INVALID_GEOMETRY, INVALID_ARGUMENTS, INVALID_API_KEY, INVALID_REQUEST_ID and existing errors.
                  message:
                    type: string
                  reason:
                    type: string
                  unknown_key:
                    type: string
                  field:
                    type: string
                  hint:
                    type: string
                  example:
                    type: object
                  disclaimer:
                    type: string
        '429':
          description: Rate limit reached. Respect Retry-After.
          headers:
            RateLimit-Limit:
              schema:
                type: integer
              description: 'Partner only: limiting quota window limit.'
            RateLimit-Remaining:
              schema:
                type: integer
              description: 'Partner only: remaining calls in that window.'
            RateLimit-Reset:
              schema:
                type: integer
              description: 'Partner only: delta seconds until that window resets.'
            X-Request-Id:
              schema:
                type: string
                maxLength: 128
              description: 'Partner only: supplied visible ASCII request ID, echoed without storage.'
            Retry-After:
              schema:
                type: integer
              description: Seconds until retry.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - code
                - message
                - disclaimer
                properties:
                  status:
                    const: failed
                    type: string
                  code:
                    type: string
                    description: Includes INVALID_GEOMETRY, INVALID_ARGUMENTS, INVALID_API_KEY, INVALID_REQUEST_ID and existing errors.
                  message:
                    type: string
                  reason:
                    type: string
                  unknown_key:
                    type: string
                  field:
                    type: string
                  hint:
                    type: string
                  example:
                    type: object
                  disclaimer:
                    type: string
        '500':
          description: Internal error; retry or direct the user to the website.
          headers:
            RateLimit-Limit:
              schema:
                type: integer
              description: 'Partner only: limiting quota window limit.'
            RateLimit-Remaining:
              schema:
                type: integer
              description: 'Partner only: remaining calls in that window.'
            RateLimit-Reset:
              schema:
                type: integer
              description: 'Partner only: delta seconds until that window resets.'
            X-Request-Id:
              schema:
                type: string
                maxLength: 128
              description: 'Partner only: supplied visible ASCII request ID, echoed without storage.'
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - code
                - message
                - disclaimer
                properties:
                  status:
                    const: failed
                    type: string
                  code:
                    type: string
                    description: Includes INVALID_GEOMETRY, INVALID_ARGUMENTS, INVALID_API_KEY, INVALID_REQUEST_ID and existing errors.
                  message:
                    type: string
                  reason:
                    type: string
                  unknown_key:
                    type: string
                  field:
                    type: string
                  hint:
                    type: string
                  example:
                    type: object
                  disclaimer:
                    type: string
        '503':
          description: Measurement queue or request capacity full. Respect Retry-After.
          headers:
            RateLimit-Limit:
              schema:
                type: integer
              description: 'Partner only: limiting quota window limit.'
            RateLimit-Remaining:
              schema:
                type: integer
              description: 'Partner only: remaining calls in that window.'
            RateLimit-Reset:
              schema:
                type: integer
              description: 'Partner only: delta seconds until that window resets.'
            X-Request-Id:
              schema:
                type: string
                maxLength: 128
              description: 'Partner only: supplied visible ASCII request ID, echoed without storage.'
            Retry-After:
              schema:
                type: integer
              description: Seconds until retry.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - code
                - message
                - disclaimer
                properties:
                  status:
                    const: failed
                    type: string
                  code:
                    type: string
                    description: Includes INVALID_GEOMETRY, INVALID_ARGUMENTS, INVALID_API_KEY, INVALID_REQUEST_ID and existing errors.
                  message:
                    type: string
                  reason:
                    type: string
                  unknown_key:
                    type: string
                  field:
                    type: string
                  hint:
                    type: string
                  example:
                    type: object
                  disclaimer:
                    type: string
        '504':
          description: Image download or measurement timed out.
          headers:
            RateLimit-Limit:
              schema:
                type: integer
              description: 'Partner only: limiting quota window limit.'
            RateLimit-Remaining:
              schema:
                type: integer
              description: 'Partner only: remaining calls in that window.'
            RateLimit-Reset:
              schema:
                type: integer
              description: 'Partner only: delta seconds until that window resets.'
            X-Request-Id:
              schema:
                type: string
                maxLength: 128
              description: 'Partner only: supplied visible ASCII request ID, echoed without storage.'
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - code
                - message
                - disclaimer
                properties:
                  status:
                    const: failed
                    type: string
                  code:
                    type: string
                    description: Includes INVALID_GEOMETRY, INVALID_ARGUMENTS, INVALID_API_KEY, INVALID_REQUEST_ID and existing errors.
                  message:
                    type: string
                  reason:
                    type: string
                  unknown_key:
                    type: string
                  field:
                    type: string
                  hint:
                    type: string
                  example:
                    type: object
                  disclaimer:
                    type: string
      tags:
      - Standards
components:
  securitySchemes:
    partnerBearer:
      type: http
      scheme: bearer
      bearerFormat: Centering Lab partner key
      description: Optional. Without a partner key, existing public IP quotas apply. Partner keys (prefix clp_) that are unknown, revoked or malformed return 401 INVALID_API_KEY; other Authorization values are ignored.