Source code for dart_fss.api.filings.search_filings

# -*- coding: utf-8 -*-
from typing import Union, List

from dart_fss.auth import get_api_key
from dart_fss.utils import request, str_upper
from dart_fss.errors import check_status

str_or_list = Union[str, List[str]]


[docs] def search_filings(corp_code: str = None, bgn_de: str = None, end_de: str = None, last_reprt_at: str = 'N', pblntf_ty: str_or_list = None, pblntf_detail_ty: str_or_list = None, corp_cls: str = None, sort: str = 'date', sort_mth: str = 'desc', page_no: int = 1, page_count: int = 10): """ 공시보고서 검색 Parameters ---------- corp_code: str, optional 공시대상회사의 고유번호(8자리), 고유번호(corp_code)가 없는 경우 검색기간은 3개월로 제한 bgn_de: str, optional 검색시작 접수일자(YYYYMMDD), 없으면 종료일(end_de) end_de: str, optional 검색종료 접수일자(YYYYMMDD), 없으면 당일 last_reprt_at: str, optional 최종보고서만 검색여부(Y or N), default : N pblntf_ty: str, optional 공시유형 pblntf_detail_ty: str, optional 공시상세유형 corp_cls: str, optional 법인구분 : Y(유가), K(코스닥), N(코넥스), E(기타), 없으면 전체조회 sort: str, optional 정렬, {접수일자: date, 회사명: crp, 고서명: rpt} sort_mth: str, optional 오름차순(asc), 내림차순(desc), default : desc page_no: int, optional 페이지 번호(1~n) default : 1 page_count: int, optional 페이지당 건수(1~100) 기본값 : 10, default : 100 Returns ------- dict Response data """ url = 'https://opendart.fss.or.kr/api/list.json' api_key = get_api_key() last_reprt_at = str_upper(last_reprt_at) pblntf_ty = str_upper(pblntf_ty) pblntf_detail_ty = str_upper(pblntf_detail_ty) payload = { 'crtfc_key': api_key, 'corp_code': corp_code, 'bgn_de': bgn_de, 'end_de': end_de, 'last_reprt_at': last_reprt_at, 'pblntf_ty': pblntf_ty, 'pblntf_detail_ty': pblntf_detail_ty, 'corp_cls': corp_cls, 'sort': sort, 'sort_mth': sort_mth, 'page_no': page_no, 'page_count': page_count } resp = request.get(url=url, payload=payload) dataset = resp.json() # Check Error check_status(**dataset) return dataset