CiteMe - Reference Checker

CiteMe - Reference Checker · GPT Actions

CiteMe - Reference Checker

Verify academic bibliography references against CrossRef, OpenAlex, Semantic Scholar, and Google Books. Paste a reference list and get an integrity report with per-reference verification status, flagged issues (wrong DOI, year mismatch, fabricated entries), and an overall score.

  • POST /reference-checkVerify bibliography references against academic databases

    Send raw bibliography text. Returns scored report with per-reference verification status, issues found, and overall integrity badge (PASSED/NEEDS_REVIEW/INCONCLUSIVE).

原始 API 定义
{
  "openapi": "3.1.0",
  "info": {
    "title": "CiteMe - Reference Checker",
    "version": "1.0.0",
    "description": "Verify academic bibliography references against CrossRef, OpenAlex, Semantic Scholar, and Google Books. Paste a reference list and get an integrity report with per-reference verification status, flagged issues (wrong DOI, year mismatch, fabricated entries), and an overall score."
  },
  "servers": [
    {
      "url": "https://www.citeme.app/api/v1",
      "description": "CiteMe API"
    }
  ],
  "paths": {
    "/reference-check": {
      "post": {
        "operationId": "checkReferences",
        "summary": "Verify bibliography references against academic databases",
        "description": "Send raw bibliography text. Returns scored report with per-reference verification status, issues found, and overall integrity badge (PASSED/NEEDS_REVIEW/INCONCLUSIVE).",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "text"
                ],
                "properties": {
                  "text": {
                    "type": "string",
                    "description": "Raw bibliography text to verify. Can be any citation style (APA, MLA, Chicago, Harvard, Vancouver, ABNT, etc.). Multiple references separated by newlines.",
                    "maxLength": 51200
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Verification report",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "report": {
                          "type": "object",
                          "properties": {
                            "score": {
                              "type": "integer",
                              "description": "Integrity score 0-100"
                            },
                            "badge": {
                              "type": "string",
                              "enum": [
                                "PASSED",
                                "NEEDS_REVIEW",
                                "INCONCLUSIVE"
                              ],
                              "description": "PASSED (>=80): most refs verified. NEEDS_REVIEW (>=50): some issues. INCONCLUSIVE (<50): many unverified."
                            },
                            "summary": {
                              "type": "object",
                              "properties": {
                                "total": {
                                  "type": "integer"
                                },
                                "verified": {
                                  "type": "integer"
                                },
                                "partialMatch": {
                                  "type": "integer"
                                },
                                "unverified": {
                                  "type": "integer"
                                }
                              }
                            },
                            "references": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "rawText": {
                                    "type": "string",
                                    "description": "Original reference text"
                                  },
                                  "status": {
                                    "type": "string",
                                    "enum": [
                                      "verified",
                                      "partial_match",
                                      "unverified"
                                    ]
                                  },
                                  "parsed": {
                                    "type": "object",
                                    "description": "Metadata extracted from the reference text",
                                    "properties": {
                                      "title": {
                                        "type": "string",
                                        "nullable": true
                                      },
                                      "authors": {
                                        "type": "string",
                                        "nullable": true
                                      },
                                      "year": {
                                        "type": "integer",
                                        "nullable": true
                                      },
                                      "doi": {
                                        "type": "string",
                                        "nullable": true
                                      }
                                    }
                                  },
                                  "found": {
                                    "type": "object",
                                    "nullable": true,
                                    "description": "Metadata from academic database (null if unverified)",
                                    "properties": {
                                      "title": {
                                        "type": "string",
                                        "nullable": true
                                      },
                                      "authors": {
                                        "type": "string",
                                        "nullable": true
                                      },
                                      "year": {
                                        "type": "integer",
                                        "nullable": true
                                      },
                                      "doi": {
                                        "type": "string",
                                        "nullable": true
                                      },
                                      "source": {
                                        "type": "string",
                                        "nullable": true
                                      }
                                    }
                                  },
                                  "issues": {
                                    "type": "array",
                                    "items": {
                                      "type": "string"
                                    },
                                    "description": "List of issues found (e.g. \"Year mismatch: cited 2019, found 2020\")"
                                  }
                                }
                              }
                            },
                            "gatedAt": {
                              "type": "integer",
                              "nullable": true,
                              "description": "Index after which reference details are hidden (free tier gate). null = all visible."
                            }
                          }
                        },
                        "tier": {
                          "type": "string",
                          "enum": [
                            "anonymous",
                            "free",
                            "pro"
                          ]
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request — empty or missing text field"
          },
          "413": {
            "description": "Text too large (>50KB)"
          },
          "429": {
            "description": "Rate limit exceeded. Anonymous: 3/day, Free: 10/day, Pro: 100/day. Upgrade at citeme.app/pricing"
          }
        }
      }
    }
  }
}