{
  "schemaVersion": "1.0",
  "item": {
    "slug": "prepspsc-pyq",
    "name": "PrepSPSC PYQ API",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/himyeticapital/prepspsc-pyq",
    "canonicalUrl": "https://clawhub.ai/himyeticapital/prepspsc-pyq",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/prepspsc-pyq",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=prepspsc-pyq",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/prepspsc-pyq"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/prepspsc-pyq",
    "agentPageUrl": "https://openagent3.xyz/skills/prepspsc-pyq/agent",
    "manifestUrl": "https://openagent3.xyz/skills/prepspsc-pyq/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/prepspsc-pyq/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "PrepSPSC PYQ API",
        "body": "Search 7,400+ real previous year questions from Sikkim PSC (SPSC) exams and generate mock tests across 64 exam patterns. Returns MCQ questions with options, correct answers, explanations, topics, cognitive levels, and difficulty metadata."
      },
      {
        "title": "Quick Reference",
        "body": "DetailValueBase URLhttps://qqqditxzghqzodvauxth.supabase.co/functions/v1/pyq-apiAuthAuthorization: Bearer sk_live_YOUR_KEYQuestions7,442 across 27 subjectsExam Patterns64 (Civil Services, Police, Medical, Engineering, Education, IT, and more)Get API Keyprepspsc.com/developers"
      },
      {
        "title": "Authentication",
        "body": "All requests require a Bearer token in the Authorization header. API keys start with sk_live_."
      },
      {
        "title": "Check Existing Setup First",
        "body": "Before guiding the user through setup, check if the API key is already available:\n\nif [ -n \"$PREPSPSC_API_KEY\" ]; then\n  echo \"Configured\"\nelse\n  echo \"No API key found. Get one at https://prepspsc.com/developers\"\nfi\n\nIf no key is found, direct the user to https://prepspsc.com/developers to generate a free API key."
      },
      {
        "title": "Making Requests",
        "body": "curl -X POST \"https://qqqditxzghqzodvauxth.supabase.co/functions/v1/pyq-api\" \\\n  -H \"Authorization: Bearer $PREPSPSC_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"query\": \"fundamental rights\", \"subject\": \"Indian Polity\", \"limit\": 5}'"
      },
      {
        "title": "1. List Available Subjects",
        "body": "GET /pyq-api — Returns all subjects with question counts. Call this first to see what's available.\n\ncurl \"https://qqqditxzghqzodvauxth.supabase.co/functions/v1/pyq-api\" \\\n  -H \"Authorization: Bearer $PREPSPSC_API_KEY\"\n\nResponse:\n\n{\n  \"subjects\": [\n    { \"subject\": \"Indian Polity\", \"count\": 842 },\n    { \"subject\": \"History\", \"count\": 756 },\n    { \"subject\": \"General Knowledge\", \"count\": 698 }\n  ],\n  \"total_questions\": 7442\n}\n\nAvailable subjects: General English, General Knowledge, Indian Polity, History, Geography, Science, Environment, Indian Economy, Arithmetic and Logical Reasoning, Agriculture, Botany, Zoology, Nepali Literature, Current Affairs, and more (27 total)."
      },
      {
        "title": "2. Search Questions (Semantic Search)",
        "body": "POST /pyq-api — Search PYQs using natural language. Uses vector similarity + keyword hybrid matching.\n\ncurl -X POST \"https://qqqditxzghqzodvauxth.supabase.co/functions/v1/pyq-api\" \\\n  -H \"Authorization: Bearer $PREPSPSC_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"query\": \"Fundamental Rights Article 21\",\n    \"subject\": \"Indian Polity\",\n    \"limit\": 5,\n    \"threshold\": 0.3\n  }'\n\nFieldTypeRequiredDescriptionquerystringYesNatural language search (min 3 chars)subjectstringYesSubject to search withinlimitintegerNoMax results, 1-20 (default: 5)thresholdnumberNoMin similarity 0-1 (default: 0.3, lower = more results)year_minintegerNoExclude time-sensitive questions older than this yearexclude_idsstring[]NoQuestion UUIDs to exclude (for pagination)\n\nResponse:\n\n{\n  \"questions\": [\n    {\n      \"id\": \"uuid\",\n      \"question\": \"Which Article of the Indian Constitution guarantees the Right to Life?\",\n      \"options\": [\n        { \"id\": \"a\", \"text\": \"Article 14\" },\n        { \"id\": \"b\", \"text\": \"Article 19\" },\n        { \"id\": \"c\", \"text\": \"Article 21\" },\n        { \"id\": \"d\", \"text\": \"Article 32\" }\n      ],\n      \"correct_option_id\": \"c\",\n      \"explanation\": \"Article 21 states that no person shall be deprived of his life or personal liberty...\",\n      \"subject\": \"Indian Polity\",\n      \"topics\": [\"Fundamental Rights\", \"Article 21\", \"Right to Life\"],\n      \"difficulty\": \"easy\",\n      \"cognitive_level\": \"remember\",\n      \"is_time_sensitive\": false,\n      \"high_yield\": true,\n      \"similarity\": 0.89\n    }\n  ],\n  \"count\": 5\n}"
      },
      {
        "title": "3. Generate Mock Test",
        "body": "POST /pyq-api/mock-test — Generate a complete mock test following real SPSC exam patterns with difficulty balancing.\n\ncurl -X POST \"https://qqqditxzghqzodvauxth.supabase.co/functions/v1/pyq-api/mock-test\" \\\n  -H \"Authorization: Bearer $PREPSPSC_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"pattern\": \"undersecretary-prelims\",\n    \"difficulty_mix\": { \"easy\": 30, \"medium\": 50, \"hard\": 20 }\n  }'\n\nFieldTypeRequiredDescriptionpatternstringYesExam pattern ID (64 available, see below)difficulty_mixobjectNoCustom difficulty % (default: 30/50/20)year_minintegerNoExclude stale current affairsexclude_idsstring[]NoSkip questions from previous tests\n\nResponse includes: test metadata (name, total questions, duration, marking scheme) + sections with difficulty-balanced questions.\n\nAvailable Exam Patterns (64 Total)\n\nCore / General: undersecretary-prelims, general-prelims, spsc-mains-gs1, spsc-mains-gs2, quick-practice-30\n\nCivil Services: sscs-prelims, combined-mains-gs3, combined-mains-english\n\nPolice / Law: si-police-prelims, si-police-mains, si-excise, sub-jailer\n\nFire Service: sub-fire-officer\n\nEngineering: junior-engineer-prelims, assistant-engineer-civil, assistant-engineer-electrical, assistant-engineer-mechanical, assistant-engineer-agriculture\n\nMedical / Health: gdmo, veterinary-officer, dental-surgeon, specialist-sr-grade, staff-nurse, paramedical, health-educator, mphw, drug-inspector, food-safety-officer, pharmacist-ayush, yoga-instructor-ayush, scientific-officer-ayush, tutor-clinical-instructor\n\nAdministrative: ldc-prelims, accounts-clerk, stenographer, cooperative-inspector, statistical-inspector, revenue-inspector, revenue-surveyor, commercial-tax-inspector\n\nForestry / Fisheries: forest-ranger-prelims, fisheries-officer, assistant-director-fisheries, livestock-assistant\n\nEducation: lecturer-diet, iti-instructor, principal-iti, assistant-professor-sheda\n\nOther Specialized: assistant-town-planner, assistant-architect, assistant-geologist, digital-analyst, assistant-programmer, assistant-director-it, lab-assistant, field-assistant, ado-wdo-hdo, senior-information-assistant, sub-editor, inspector-legal-metrology, photographer, script-writer, feed-mill-operator, printing-stationery\n\nUse GET /pyq-api/patterns to get full details with subject distribution, duration, and marking scheme for each pattern."
      },
      {
        "title": "4. List Exam Patterns",
        "body": "GET /pyq-api/patterns — Returns all 64 exam patterns with subject distribution, question counts, duration, and marking scheme.\n\ncurl \"https://qqqditxzghqzodvauxth.supabase.co/functions/v1/pyq-api/patterns\" \\\n  -H \"Authorization: Bearer $PREPSPSC_API_KEY\""
      },
      {
        "title": "5. Record Progress",
        "body": "POST /pyq-api/progress — Record a user's answer to a question.\n\ncurl -X POST \"https://qqqditxzghqzodvauxth.supabase.co/functions/v1/pyq-api/progress\" \\\n  -H \"Authorization: Bearer $PREPSPSC_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"external_user_id\": \"user123\",\n    \"question_id\": \"uuid-here\",\n    \"selected_option\": \"c\",\n    \"is_correct\": true,\n    \"time_spent_seconds\": 45\n  }'"
      },
      {
        "title": "6. Get User Progress",
        "body": "GET /pyq-api/progress?user_id=user123 — Retrieve a user's complete answer history.\n\ncurl \"https://qqqditxzghqzodvauxth.supabase.co/functions/v1/pyq-api/progress?user_id=user123\" \\\n  -H \"Authorization: Bearer $PREPSPSC_API_KEY\""
      },
      {
        "title": "7. Performance Analytics",
        "body": "GET /pyq-api/analytics?user_id=user123 — Get accuracy by subject, difficulty breakdown, and recent activity.\n\ncurl \"https://qqqditxzghqzodvauxth.supabase.co/functions/v1/pyq-api/analytics?user_id=user123\" \\\n  -H \"Authorization: Bearer $PREPSPSC_API_KEY\""
      },
      {
        "title": "8. Leaderboard",
        "body": "GET /pyq-api/leaderboard — Rankings by correct answers and accuracy.\n\ncurl \"https://qqqditxzghqzodvauxth.supabase.co/functions/v1/pyq-api/leaderboard?limit=20&time_range=all_time\" \\\n  -H \"Authorization: Bearer $PREPSPSC_API_KEY\"\n\nParameterTypeDefaultDescriptionlimitinteger20Max entries (1-100)time_rangestringall_timeweek, month, or all_time"
      },
      {
        "title": "9. Bookmarks",
        "body": "Add bookmark:\n\ncurl -X POST \"https://qqqditxzghqzodvauxth.supabase.co/functions/v1/pyq-api/bookmarks\" \\\n  -H \"Authorization: Bearer $PREPSPSC_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"external_user_id\": \"user123\", \"question_id\": \"uuid-here\", \"note\": \"Review later\"}'\n\nList bookmarks:\n\ncurl \"https://qqqditxzghqzodvauxth.supabase.co/functions/v1/pyq-api/bookmarks?user_id=user123\" \\\n  -H \"Authorization: Bearer $PREPSPSC_API_KEY\"\n\nRemove bookmark:\n\ncurl -X DELETE \"https://qqqditxzghqzodvauxth.supabase.co/functions/v1/pyq-api/bookmarks\" \\\n  -H \"Authorization: Bearer $PREPSPSC_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"external_user_id\": \"user123\", \"question_id\": \"uuid-here\"}'"
      },
      {
        "title": "Quick Practice Session",
        "body": "GET /pyq-api — Check available subjects\nPOST /pyq-api/mock-test with \"pattern\": \"quick-practice-30\" — Get a 30-question test\nPresent questions to user one at a time\nPOST /pyq-api/progress — Record each answer\nGET /pyq-api/analytics?user_id=xxx — Show performance summary"
      },
      {
        "title": "Subject-Specific Study",
        "body": "POST /pyq-api — Search for questions on a specific topic (e.g., \"query\": \"Fundamental Rights\", \"subject\": \"Indian Polity\")\nPresent questions as flashcards or quiz\nTrack progress with POST /pyq-api/progress"
      },
      {
        "title": "Full Mock Exam",
        "body": "GET /pyq-api/patterns — Show available exam patterns\nUser picks a pattern (e.g., undersecretary-prelims)\nPOST /pyq-api/mock-test — Generate the test\nTime the user (duration from response metadata)\nRecord all answers via POST /pyq-api/progress\nShow analytics via GET /pyq-api/analytics"
      },
      {
        "title": "AI Question Generation Reference",
        "body": "POST /pyq-api — Fetch real PYQs as few-shot examples\nAnalyze returned topics, cognitive_level, difficulty\nUse as reference to generate new questions matching real exam standards"
      },
      {
        "title": "Error Handling",
        "body": "HTTP StatusError CodeMeaning400INVALID_QUERYQuery too short or missing required fields401INVALID_API_KEYAPI key missing, invalid, or revoked404INVALID_PATTERNUnknown exam pattern ID429RATE_LIMITEDToo many requests (free: 10/min, paid: 60/min)500INTERNAL_ERRORServer error"
      },
      {
        "title": "Rate Limits",
        "body": "TierRequests/minRequests/monthFree101,000Paid6050,000Enterprise500Unlimited\n\nGet your free API key at https://prepspsc.com/developers"
      }
    ],
    "body": "PrepSPSC PYQ API\n\nSearch 7,400+ real previous year questions from Sikkim PSC (SPSC) exams and generate mock tests across 64 exam patterns. Returns MCQ questions with options, correct answers, explanations, topics, cognitive levels, and difficulty metadata.\n\nQuick Reference\nDetail\tValue\nBase URL\thttps://qqqditxzghqzodvauxth.supabase.co/functions/v1/pyq-api\nAuth\tAuthorization: Bearer sk_live_YOUR_KEY\nQuestions\t7,442 across 27 subjects\nExam Patterns\t64 (Civil Services, Police, Medical, Engineering, Education, IT, and more)\nGet API Key\tprepspsc.com/developers\nAuthentication\n\nAll requests require a Bearer token in the Authorization header. API keys start with sk_live_.\n\nCheck Existing Setup First\n\nBefore guiding the user through setup, check if the API key is already available:\n\nif [ -n \"$PREPSPSC_API_KEY\" ]; then\n  echo \"Configured\"\nelse\n  echo \"No API key found. Get one at https://prepspsc.com/developers\"\nfi\n\n\nIf no key is found, direct the user to https://prepspsc.com/developers to generate a free API key.\n\nMaking Requests\ncurl -X POST \"https://qqqditxzghqzodvauxth.supabase.co/functions/v1/pyq-api\" \\\n  -H \"Authorization: Bearer $PREPSPSC_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"query\": \"fundamental rights\", \"subject\": \"Indian Polity\", \"limit\": 5}'\n\nEndpoints\n1. List Available Subjects\n\nGET /pyq-api — Returns all subjects with question counts. Call this first to see what's available.\n\ncurl \"https://qqqditxzghqzodvauxth.supabase.co/functions/v1/pyq-api\" \\\n  -H \"Authorization: Bearer $PREPSPSC_API_KEY\"\n\n\nResponse:\n\n{\n  \"subjects\": [\n    { \"subject\": \"Indian Polity\", \"count\": 842 },\n    { \"subject\": \"History\", \"count\": 756 },\n    { \"subject\": \"General Knowledge\", \"count\": 698 }\n  ],\n  \"total_questions\": 7442\n}\n\n\nAvailable subjects: General English, General Knowledge, Indian Polity, History, Geography, Science, Environment, Indian Economy, Arithmetic and Logical Reasoning, Agriculture, Botany, Zoology, Nepali Literature, Current Affairs, and more (27 total).\n\n2. Search Questions (Semantic Search)\n\nPOST /pyq-api — Search PYQs using natural language. Uses vector similarity + keyword hybrid matching.\n\ncurl -X POST \"https://qqqditxzghqzodvauxth.supabase.co/functions/v1/pyq-api\" \\\n  -H \"Authorization: Bearer $PREPSPSC_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"query\": \"Fundamental Rights Article 21\",\n    \"subject\": \"Indian Polity\",\n    \"limit\": 5,\n    \"threshold\": 0.3\n  }'\n\nField\tType\tRequired\tDescription\nquery\tstring\tYes\tNatural language search (min 3 chars)\nsubject\tstring\tYes\tSubject to search within\nlimit\tinteger\tNo\tMax results, 1-20 (default: 5)\nthreshold\tnumber\tNo\tMin similarity 0-1 (default: 0.3, lower = more results)\nyear_min\tinteger\tNo\tExclude time-sensitive questions older than this year\nexclude_ids\tstring[]\tNo\tQuestion UUIDs to exclude (for pagination)\n\nResponse:\n\n{\n  \"questions\": [\n    {\n      \"id\": \"uuid\",\n      \"question\": \"Which Article of the Indian Constitution guarantees the Right to Life?\",\n      \"options\": [\n        { \"id\": \"a\", \"text\": \"Article 14\" },\n        { \"id\": \"b\", \"text\": \"Article 19\" },\n        { \"id\": \"c\", \"text\": \"Article 21\" },\n        { \"id\": \"d\", \"text\": \"Article 32\" }\n      ],\n      \"correct_option_id\": \"c\",\n      \"explanation\": \"Article 21 states that no person shall be deprived of his life or personal liberty...\",\n      \"subject\": \"Indian Polity\",\n      \"topics\": [\"Fundamental Rights\", \"Article 21\", \"Right to Life\"],\n      \"difficulty\": \"easy\",\n      \"cognitive_level\": \"remember\",\n      \"is_time_sensitive\": false,\n      \"high_yield\": true,\n      \"similarity\": 0.89\n    }\n  ],\n  \"count\": 5\n}\n\n3. Generate Mock Test\n\nPOST /pyq-api/mock-test — Generate a complete mock test following real SPSC exam patterns with difficulty balancing.\n\ncurl -X POST \"https://qqqditxzghqzodvauxth.supabase.co/functions/v1/pyq-api/mock-test\" \\\n  -H \"Authorization: Bearer $PREPSPSC_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"pattern\": \"undersecretary-prelims\",\n    \"difficulty_mix\": { \"easy\": 30, \"medium\": 50, \"hard\": 20 }\n  }'\n\nField\tType\tRequired\tDescription\npattern\tstring\tYes\tExam pattern ID (64 available, see below)\ndifficulty_mix\tobject\tNo\tCustom difficulty % (default: 30/50/20)\nyear_min\tinteger\tNo\tExclude stale current affairs\nexclude_ids\tstring[]\tNo\tSkip questions from previous tests\n\nResponse includes: test metadata (name, total questions, duration, marking scheme) + sections with difficulty-balanced questions.\n\nAvailable Exam Patterns (64 Total)\n\nCore / General: undersecretary-prelims, general-prelims, spsc-mains-gs1, spsc-mains-gs2, quick-practice-30\n\nCivil Services: sscs-prelims, combined-mains-gs3, combined-mains-english\n\nPolice / Law: si-police-prelims, si-police-mains, si-excise, sub-jailer\n\nFire Service: sub-fire-officer\n\nEngineering: junior-engineer-prelims, assistant-engineer-civil, assistant-engineer-electrical, assistant-engineer-mechanical, assistant-engineer-agriculture\n\nMedical / Health: gdmo, veterinary-officer, dental-surgeon, specialist-sr-grade, staff-nurse, paramedical, health-educator, mphw, drug-inspector, food-safety-officer, pharmacist-ayush, yoga-instructor-ayush, scientific-officer-ayush, tutor-clinical-instructor\n\nAdministrative: ldc-prelims, accounts-clerk, stenographer, cooperative-inspector, statistical-inspector, revenue-inspector, revenue-surveyor, commercial-tax-inspector\n\nForestry / Fisheries: forest-ranger-prelims, fisheries-officer, assistant-director-fisheries, livestock-assistant\n\nEducation: lecturer-diet, iti-instructor, principal-iti, assistant-professor-sheda\n\nOther Specialized: assistant-town-planner, assistant-architect, assistant-geologist, digital-analyst, assistant-programmer, assistant-director-it, lab-assistant, field-assistant, ado-wdo-hdo, senior-information-assistant, sub-editor, inspector-legal-metrology, photographer, script-writer, feed-mill-operator, printing-stationery\n\nUse GET /pyq-api/patterns to get full details with subject distribution, duration, and marking scheme for each pattern.\n\n4. List Exam Patterns\n\nGET /pyq-api/patterns — Returns all 64 exam patterns with subject distribution, question counts, duration, and marking scheme.\n\ncurl \"https://qqqditxzghqzodvauxth.supabase.co/functions/v1/pyq-api/patterns\" \\\n  -H \"Authorization: Bearer $PREPSPSC_API_KEY\"\n\n5. Record Progress\n\nPOST /pyq-api/progress — Record a user's answer to a question.\n\ncurl -X POST \"https://qqqditxzghqzodvauxth.supabase.co/functions/v1/pyq-api/progress\" \\\n  -H \"Authorization: Bearer $PREPSPSC_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"external_user_id\": \"user123\",\n    \"question_id\": \"uuid-here\",\n    \"selected_option\": \"c\",\n    \"is_correct\": true,\n    \"time_spent_seconds\": 45\n  }'\n\n6. Get User Progress\n\nGET /pyq-api/progress?user_id=user123 — Retrieve a user's complete answer history.\n\ncurl \"https://qqqditxzghqzodvauxth.supabase.co/functions/v1/pyq-api/progress?user_id=user123\" \\\n  -H \"Authorization: Bearer $PREPSPSC_API_KEY\"\n\n7. Performance Analytics\n\nGET /pyq-api/analytics?user_id=user123 — Get accuracy by subject, difficulty breakdown, and recent activity.\n\ncurl \"https://qqqditxzghqzodvauxth.supabase.co/functions/v1/pyq-api/analytics?user_id=user123\" \\\n  -H \"Authorization: Bearer $PREPSPSC_API_KEY\"\n\n8. Leaderboard\n\nGET /pyq-api/leaderboard — Rankings by correct answers and accuracy.\n\ncurl \"https://qqqditxzghqzodvauxth.supabase.co/functions/v1/pyq-api/leaderboard?limit=20&time_range=all_time\" \\\n  -H \"Authorization: Bearer $PREPSPSC_API_KEY\"\n\nParameter\tType\tDefault\tDescription\nlimit\tinteger\t20\tMax entries (1-100)\ntime_range\tstring\tall_time\tweek, month, or all_time\n9. Bookmarks\n\nAdd bookmark:\n\ncurl -X POST \"https://qqqditxzghqzodvauxth.supabase.co/functions/v1/pyq-api/bookmarks\" \\\n  -H \"Authorization: Bearer $PREPSPSC_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"external_user_id\": \"user123\", \"question_id\": \"uuid-here\", \"note\": \"Review later\"}'\n\n\nList bookmarks:\n\ncurl \"https://qqqditxzghqzodvauxth.supabase.co/functions/v1/pyq-api/bookmarks?user_id=user123\" \\\n  -H \"Authorization: Bearer $PREPSPSC_API_KEY\"\n\n\nRemove bookmark:\n\ncurl -X DELETE \"https://qqqditxzghqzodvauxth.supabase.co/functions/v1/pyq-api/bookmarks\" \\\n  -H \"Authorization: Bearer $PREPSPSC_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"external_user_id\": \"user123\", \"question_id\": \"uuid-here\"}'\n\nCommon Workflows\nQuick Practice Session\nGET /pyq-api — Check available subjects\nPOST /pyq-api/mock-test with \"pattern\": \"quick-practice-30\" — Get a 30-question test\nPresent questions to user one at a time\nPOST /pyq-api/progress — Record each answer\nGET /pyq-api/analytics?user_id=xxx — Show performance summary\nSubject-Specific Study\nPOST /pyq-api — Search for questions on a specific topic (e.g., \"query\": \"Fundamental Rights\", \"subject\": \"Indian Polity\")\nPresent questions as flashcards or quiz\nTrack progress with POST /pyq-api/progress\nFull Mock Exam\nGET /pyq-api/patterns — Show available exam patterns\nUser picks a pattern (e.g., undersecretary-prelims)\nPOST /pyq-api/mock-test — Generate the test\nTime the user (duration from response metadata)\nRecord all answers via POST /pyq-api/progress\nShow analytics via GET /pyq-api/analytics\nAI Question Generation Reference\nPOST /pyq-api — Fetch real PYQs as few-shot examples\nAnalyze returned topics, cognitive_level, difficulty\nUse as reference to generate new questions matching real exam standards\nError Handling\nHTTP Status\tError Code\tMeaning\n400\tINVALID_QUERY\tQuery too short or missing required fields\n401\tINVALID_API_KEY\tAPI key missing, invalid, or revoked\n404\tINVALID_PATTERN\tUnknown exam pattern ID\n429\tRATE_LIMITED\tToo many requests (free: 10/min, paid: 60/min)\n500\tINTERNAL_ERROR\tServer error\nRate Limits\nTier\tRequests/min\tRequests/month\nFree\t10\t1,000\nPaid\t60\t50,000\nEnterprise\t500\tUnlimited\n\nGet your free API key at https://prepspsc.com/developers"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/himyeticapital/prepspsc-pyq",
    "publisherUrl": "https://clawhub.ai/himyeticapital/prepspsc-pyq",
    "owner": "himyeticapital",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/prepspsc-pyq",
    "downloadUrl": "https://openagent3.xyz/downloads/prepspsc-pyq",
    "agentUrl": "https://openagent3.xyz/skills/prepspsc-pyq/agent",
    "manifestUrl": "https://openagent3.xyz/skills/prepspsc-pyq/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/prepspsc-pyq/agent.md"
  }
}