KO

korean-public-data-api

Retrieves and parses API documentation from data.go.kr into a structured JSON schema.

Install

mkdir -p .claude/skills/korean-public-data-api && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/291" && unzip -o skill.zip -d .claude/skills/korean-public-data-api && rm skill.zip

Installs to .claude/skills/korean-public-data-api

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Extract API request/response schema from Korean Public Data Portal (data.go.kr) documentation pages and generate structured JSON representation
143 charsno explicit “when” trigger
Intermediate

Key capabilities

  • Fetches documentation via URL
  • Extracts field name/type/description from HTML tables
  • Infers data types from sample data
  • Handles nested objects and arrays recursively
  • Outputs structured JSON schemas

How it works

Uses a scraping utility to parse HTML table structures and recursively maps the field data into a JSON hierarchy.

Inputs & outputs

You give it
URL of the data.go.kr documentation page
You get back
Structured JSON schema

When to use korean-public-data-api

  • Converting API documentation to JSON schemas
  • Parsing response messages from public APIs
  • Mapping public data fields for integration

About this skill

Korean Public Data Portal API Schema Extractor

Extract API data structure from Korean Public Data Portal (data.go.kr) documentation pages and generate JSON schema.

Purpose

Parse HTML from Korean Public Data Portal API documentation pages to extract field specifications (field name, data type, description) and generate a structured JSON representation.

Input

User provides a URL to a Korean Public Data Portal API documentation page.

Example: https://www.data.go.kr/data/15058782/openapi.do

Task

  1. Fetch HTML Content

    • Use WebFetch tool with the provided URL
    • Prompt WebFetch to extract API field specifications from sections like:
      • "출력 메시지 명세" (Output Message Specification)
      • "응답 메시지" (Response Message)
      • "요청 메시지" (Request Message)
      • Field tables with columns: 항목명, 항목설명, 샘플데이터, etc.
  2. Parse Field Information

    • Extract for each field:
      • name: Field name (technical identifier)
      • type: Data type (string, number, integer, boolean, object, array)
      • description: Korean description
  3. Infer Data Types

    • Use field names, descriptions, and sample data to infer types:
      • String: Text, codes, names, dates in string format
      • Number/Integer: Numeric values, counts, IDs that are numeric
      • Boolean: true/false indicators
      • Object: Nested structures (e.g., header, body)
      • Array: Lists of items
  4. Handle Nested Structures

    • Common public data portal response structure:
      response
        └─ header (object)
            ├─ resultCode (string)
            └─ resultMsg (string)
        └─ body (object)
            ├─ items (array of objects)
            ├─ numOfRows (integer)
            ├─ pageNo (integer)
            └─ totalCount (integer)
      
    • For nested objects, create recursive field definitions
    • For arrays, specify itemType and nested fields
  5. Generate JSON Schema

Output format:

{
  "apiName": "API 이름",
  "url": "원본 URL",
  "extractedAt": "ISO 8601 timestamp",
  "requestParams": [
    {
      "name": "param_name",
      "type": "string",
      "required": true,
      "description": "파라미터 설명"
    }
  ],
  "responseSchema": {
    "type": "object",
    "fields": [
      {
        "name": "header",
        "type": "object",
        "description": "응답 헤더",
        "fields": [
          {
            "name": "resultCode",
            "type": "string",
            "description": "결과 코드"
          },
          {
            "name": "resultMsg",
            "type": "string",
            "description": "결과 메시지"
          }
        ]
      },
      {
        "name": "body",
        "type": "object",
        "description": "응답 본문",
        "fields": [
          {
            "name": "items",
            "type": "array",
            "description": "데이터 목록",
            "itemType": "object",
            "fields": [
              {
                "name": "fieldName",
                "type": "string",
                "description": "필드 설명"
              }
            ]
          },
          {
            "name": "numOfRows",
            "type": "integer",
            "description": "한 페이지 결과 수"
          },
          {
            "name": "pageNo",
            "type": "integer",
            "description": "페이지 번호"
          },
          {
            "name": "totalCount",
            "type": "integer",
            "description": "전체 결과 수"
          }
        ]
      }
    ]
  }
}

Implementation Steps

  1. Use WebFetch to retrieve HTML and extract field information

    • Prompt should ask for field tables, request/response specifications
  2. Process the extracted data

    • Organize fields into logical groups (request params, response fields)
    • Infer data types based on:
      • Field naming conventions (e.g., "Cnt" → integer, "Name" → string, "No" → string)
      • Korean descriptions (e.g., "코드" → string, "개수" → integer, "여부" → boolean)
      • Sample data if available
  3. Build nested structure

    • Default assumption: Public data portal APIs use header/body structure
    • Items are typically in body.items as array
    • Pagination fields (numOfRows, pageNo, totalCount) in body
  4. Format as JSON

    • Use proper indentation
    • Include metadata (API name, URL, extraction timestamp)
    • Present the complete schema to the user
  5. Error Handling

    • If WebFetch fails or no fields found, return error:
      {
        "success": false,
        "error": "Unable to extract field specifications",
        "url": "provided URL"
      }
      

Type Inference Rules

  • String: Default type, names, codes, dates (YYYYMMDD format), times
  • Integer: Counts (Cnt suffix), numbers (No suffix when numeric), page numbers, totals
  • Number: Decimals, rates, percentages
  • Boolean: 여부 (yes/no indicators), flags
  • Object: header, body, nested structures
  • Array: items, lists (명단, 목록)

Example Workflow

User: "Extract schema from https://www.data.go.kr/data/15058782/openapi.do"

Agent:

  1. Fetches HTML with WebFetch
  2. Extracts fields: hrName (horse name), hrNo (horse number), trDate (training date), etc.
  3. Infers types: all are strings based on field descriptions
  4. Constructs JSON schema with:
    • Request params section
    • Response schema with assumed header/body structure
    • Items array containing the extracted fields
  5. Returns formatted JSON to user

Notes

  • Always include extraction timestamp
  • Preserve Korean descriptions exactly as found
  • If uncertain about nesting, default to flat structure under body.items
  • Common patterns in public data APIs:
    • Pagination: numOfRows, pageNo, totalCount
    • Response codes: resultCode, resultMsg
    • Date formats: YYYYMMDD, YYYYMMDDhhmmss

When not to use it

  • Dynamic content that requires browser interaction
  • PDF-based API documentation
  • Non-public internal APIs

Prerequisites

Access to WebFetch tool

Limitations

  • Dependent on data.go.kr structure consistency
  • Cannot infer complex logic beyond schema definitions
  • Manual verification of inferred types is recommended

How it compares

It transforms unstructured visual table data into machine-ready schemas specifically for public sector API formats.

Compared to similar skills

korean-public-data-api side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
korean-public-data-api (this skill)59moNo flagsIntermediate
apollo-data-handling125dCautionIntermediate
azure-ai-contentunderstanding-py127dReviewIntermediate
azure-ai-document-intelligence-dotnet03moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

apollo-data-handling

jeremylongshore

Apollo.io data management and compliance. Use when handling contact data, implementing GDPR compliance, or managing data exports and retention. Trigger with phrases like "apollo data", "apollo gdpr", "apollo compliance", "apollo data export", "apollo data retention", "apollo pii".

12

azure-ai-contentunderstanding-py

microsoft

Azure AI Content Understanding SDK for Python. Use for multimodal content extraction from documents, images, audio, and video. Triggers: "azure-ai-contentunderstanding", "ContentUnderstandingClient", "multimodal analysis", "document extraction", "video analysis", "audio transcription".

12

azure-ai-document-intelligence-dotnet

microsoft

Azure AI Document Intelligence SDK for .NET. Extract text, tables, and structured data from documents using prebuilt and custom models. Use for invoice processing, receipt extraction, ID document analysis, and custom document models. Triggers: "Document Intelligence", "DocumentIntelligenceClient", "form recognizer", "invoice extraction", "receipt OCR", "document analysis .NET".

03

fireflies-core-workflow-a

jeremylongshore

Execute Fireflies.ai primary workflow: Core Workflow A. Use when implementing primary use case, building main features, or core integration tasks. Trigger with phrases like "fireflies main workflow", "primary task with fireflies".

12

fireflies-cost-tuning

jeremylongshore

Optimize Fireflies.ai costs through tier selection, sampling, and usage monitoring. Use when analyzing Fireflies.ai billing, reducing API costs, or implementing usage monitoring and budget alerts. Trigger with phrases like "fireflies cost", "fireflies billing", "reduce fireflies costs", "fireflies pricing", "fireflies expensive", "fireflies budget".

12

openrouter-model-catalog

jeremylongshore

Build explore and query the OpenRouter model catalog programmatically. Use when selecting models or checking availability. Trigger with phrases like 'openrouter models', 'list openrouter models', 'openrouter model catalog', 'available models openrouter'.

03

Search skills

Search the agent skills registry