{"id":21385167,"url":"https://github.com/spoqa/kamispy","last_synced_at":"2025-07-13T14:31:54.300Z","repository":{"id":55666957,"uuid":"320193824","full_name":"spoqa/kamispy","owner":"spoqa","description":"KAMIS Open-API의 비공식 파이썬 클라이언트 kamispy의 저장소입니다.","archived":false,"fork":false,"pushed_at":"2020-12-14T08:36:29.000Z","size":20,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-06-29T19:51:26.699Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pypi.org/project/kamispy","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/spoqa.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-12-10T07:29:36.000Z","updated_at":"2021-01-27T13:23:56.000Z","dependencies_parsed_at":"2022-08-15T06:00:45.479Z","dependency_job_id":null,"html_url":"https://github.com/spoqa/kamispy","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/spoqa/kamispy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spoqa%2Fkamispy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spoqa%2Fkamispy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spoqa%2Fkamispy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spoqa%2Fkamispy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spoqa","download_url":"https://codeload.github.com/spoqa/kamispy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spoqa%2Fkamispy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265155776,"owners_count":23719585,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-22T11:45:25.171Z","updated_at":"2025-07-13T14:31:54.016Z","avatar_url":"https://github.com/spoqa.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Kamispy\n=======\n\nKAMIS Open-API의 비공식 파이썬 클라이언트입니다.\n\n다음의 API 문서를 읽어주세요:\n\nhttps://www.kamis.or.kr/customer/reference/openapi_list.do\n\n\n요구사항\n~~~~~~~~\n\n- Python 3.7 이상\n\n- KAMIS Open-API 인증 키\n\n  - KAMIS 홈페이지에서 발급받을 수 있습니다.\n\n    https://www.kamis.or.kr/customer/reference/openapi_write.do\n\n\n면책조항\n~~~~~~~~\n\n이 프로젝트는 스포카에서 제공하는 KAMIS Open-API의 비공식 파이썬\n클라이언트입니다.  모든 KAMIS Open-API의 API 지원과 동작을 보장하지 않습니다.\n\n\n\n지원하는 API 목록\n-----------------\n\nKamispy는 아직 정식 버전이 아니며, 내부적인 필요에 의해 지원하는 API를\n추가하고 있습니다.  2020년 12월 9일 기준 지원하는 API 목록은 다음과 같습니다.\n\n- 일별 품목별 도·소매가격정보\n\n- 최근일자 도.소매가격정보(상품 기준)\n\n또한, 아직 지원하지 않는 API 목록은 다음과 같습니다.\n\n- 일별 부류별 도.소매가격정보\n\n- 월별 도.소매가격정보\n\n- 연도별 도.소매가격정보\n\n- 친환경농산물 가격정보\n\n- 최근 가격추이 조회(상품 기준)\n\n- 월평균 가격추이 조회(상품 기준)\n\n- 연평균 가격추이 조회(상품 기준)\n\n- 최근일자 지역별 도.소매가격정보(상품 기준)\n\n- 친환경농산물 품목별 가격정보\n\n- 친환경농산물 가격정보\n\n- 친환경농산물 품목별가격정보\n\n- 지역별 품목별 도.소매가격정보\n\n\n실행 방법\n~~~~~~~~~\n\n클라이언트 초기화 방법\n----------------------\n\n클라이언트는 다음과 같이 초기화합니다.  ``cert_key`` 파리미터에는 KAMIS\nOpen-API 인증 키를 넣고, ``cert_id`` 파라미터에는 KAMIS 홈페이지 계정 아이디를\n넣습니다.\n\n.. code-block:: pycon\n\n    \u003e\u003e\u003e from kamis.client import CertificationPair, KamisOpenApi\n    \u003e\u003e\u003e client = KamisOpenApi(\n    ...     CertificationPair(cert_key='test', cert_id='test')\n    ... )\n\n\nAPI 실행 예제\n-------------\n\n다음은 '최근일자 도.소매가격정보(상품 기준) API'를 실행하는 예제를 보여줍니다.\n초기화한 클라이언트에서 ``daily_sales_list`` 함수를 실행합니다.  실행해야 하는\n함수의 이름은 각 API의 action 파라미터의 이름과 같습니다.\n\n.. code-block:: pycon\n\n    \u003e\u003e\u003e daily_sales_list = client.daily_sales_list()\n    \u003e\u003e\u003e daily_sales_list.result_code\n    \u003cResultCode.SUCCESS: '000'\u003e\n    \u003e\u003e\u003e daily_sales_list.prices[0]\n    PriceResponse(product_class=\u003cProductClass.RETAIL: '01'\u003e, category_code='100', category_name='식량작물', productno='272', latest_date=datetime.date(2020, 10, 16), product_name='쌀/일반계', item_name='쌀/일반계', unit='20kg', date_price_dict=OrderedDict([('당일', 55094), ('1일전', 55053), ('1개월전', 52723), ('1년전', 51034)]), direction_type=\u003cDirection.INCREASE: '1'\u003e, direction_value=0.1)\n    \u003e\u003e\u003e daily_sales_list.prices[1]\n    PriceResponse(product_class=\u003cProductClass.RETAIL: '01'\u003e, category_code='100', category_name='식량작물', productno='273', latest_date=datetime.date(2020, 10, 16), product_name='쌀/햇일반계', item_name='쌀/햇일반계', unit='20kg', date_price_dict=OrderedDict([('당일', 58887), ('1일전', 58939), ('1개월전', None), ('1년전', 53015)]), direction_type=\u003cDirection.DECREASE: '0'\u003e, direction_value=0.1)\n\n\n파라미터가 있는 API 실행 예제\n-----------------------------\n\n다음은 '일별 품목별 도·소매가격정보 API'를 실행하는 예제를 보여줍니다.\n\n이 API는 인증 정보 외에도 추가적인 파라미터가 필요한데, 이러한 경우 파라미터를\n담을 수 있는 ``Parameters`` 클래스가 ``kamis.models`` 하위의 해당하는 API\n모듈 내부에 정의되어 있습니다.\n\n.. code-block:: pycon\n\n    \u003e\u003e\u003e from kamis.models.period_product_list import Parameters\n    \u003e\u003e\u003e import datetime\n    \u003e\u003e\u003e params = Parameters(\n    ...     date_range=(\n    ...         datetime.date(2020, 10, 21), datetime.date(2020, 10, 22)\n    ...     ),\n    ...     product_class=None,\n    ...     item_category_code=\"100\",\n    ...     item_code=\"111\",\n    ...     kind_code\"01\",\n    ...     product_rank_code=\"04\",\n    ...     country=None,\n    ...     convert_kg=None\n    ... )\n\n파라미터를 생성하여 이전 예제와 같이 클라이언트에서 API에 해당하는 함수를\n실행합니다.\n\n.. code-block:: pycon\n\n    \u003e\u003e\u003e period_product_list = client.period_product_list(params)\n    \u003e\u003e\u003e period_product_list.data.result_code\n    \u003cResultCode.SUCCESS: '000'\u003e\n    \u003e\u003e\u003e period_product_list.data.items[0]\n    ItemResponse(item_name=None, kind_name=None, county_name='평균', market_name=None, reg_date=datetime.date(2020, 10, 21), price_=54520)\n    \u003e\u003e\u003e period_product_list.data.items[1]\n    ItemResponse(item_name=None, kind_name=None, county_name='평균', market_name=None, reg_date=datetime.date(2020, 10, 22), price_=54520)\n    \u003e\u003e\u003e period_product_list.data.items[4]\n    ItemResponse(item_name='쌀', kind_name='일반계(20kg)', county_name='서울', market_name='양곡도매', reg_date=datetime.date(2020, 10, 21), price_=53300)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspoqa%2Fkamispy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspoqa%2Fkamispy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspoqa%2Fkamispy/lists"}