{"openapi":"3.1.0","info":{"title":"BizBell 공고 API","version":"1.0.0","description":"한국 정부지원·입찰 공고(창업지원·기업입찰·기업지원·R&D)를 하나의 스키마로 검색하고 즐겨찾기·키워드 알림을 관리한다. 모든 공고에는 attribution(출처·라이선스)과 source_url 이 항상 붙는다. 결과를 보여 줄 때 각 공고마다 attribution.text 와 원문 링크를 함께 표시해야 하며, 공공누리 제3유형 공고의 제목·요약은 바꾸거나 번역하지 말고 그대로 인용한다(이용약관 제8장). 공고 문장 속 휴대전화 번호와 이메일 주소는 가려서(010-****-****, h***@agency.go.kr) 내보내며, 원문은 source_url 에서 확인한다.","termsOfService":"https://bizbell.site/terms#api","contact":{"email":"support@bizbell.site","url":"https://bizbell.site/contact-sales"}},"servers":[{"url":"https://bizbell.site/api/v1"}],"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"paths":{"/notices":{"get":{"summary":"공고 검색·목록","x-required-scope":"notices:read","security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"responses":{"200":{"description":"공고 목록","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Notice"}},"next_cursor":{"type":["string","null"]},"total":{"type":"integer"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"401":{"$ref":"#/components/responses/E401"},"403":{"$ref":"#/components/responses/E403"},"422":{"$ref":"#/components/responses/E422"},"429":{"$ref":"#/components/responses/E429"},"500":{"$ref":"#/components/responses/E500"},"503":{"$ref":"#/components/responses/E503"}},"description":"기본은 모집중(status=open, 상시 포함), 최신 게시순. 반복 값은 쉼표로 잇거나 같은 이름을 반복한다. total 은 첫 페이지에만 오는 추정 건수다.","parameters":[{"name":"q","in":"query","description":"검색어(제목). 동의어를 자동으로 넓힌다","schema":{"type":"string"}},{"name":"category","in":"query","description":"분야, 쉼표 구분(startup,bid,support,rnd). 생략하면 전체","schema":{"type":"string"}},{"name":"source","in":"query","description":"원천 소스 id, 쉼표 구분(kstartup,nara,bizinfo,iris,msit …). GET /sources 참고","schema":{"type":"string"}},{"name":"status","in":"query","description":"open(기본, 상시 포함) | upcoming | closed | all. updated_since 를 주면 기본이 all","schema":{"type":"string","enum":["open","upcoming","closed","all"],"default":"open"}},{"name":"region","in":"query","description":"지역, 쉼표 구분(서울,경기 …). 전국 공고는 항상 포함하고 rnd 에는 적용하지 않는다","schema":{"type":"string"}},{"name":"organization","in":"query","description":"소관·수행 기관 부분 일치","schema":{"type":"string"}},{"name":"deadline_within","in":"query","description":"오늘부터 N일 안에 마감(KST)","schema":{"type":"integer","minimum":0,"maximum":365}},{"name":"deadline_after","in":"query","description":"N일 뒤 이후에 마감","schema":{"type":"integer","minimum":0,"maximum":365}},{"name":"always_open","in":"query","description":"상시 모집 여부","schema":{"type":"boolean"}},{"name":"budget_min","in":"query","description":"최소 금액(원). bid·rnd 만 값이 있다","schema":{"type":"integer","minimum":0}},{"name":"budget_max","in":"query","description":"최대 금액(원)","schema":{"type":"integer","minimum":0}},{"name":"published_since","in":"query","description":"ISO 8601. 이 시각 이후 게시","schema":{"type":"string"}},{"name":"updated_since","in":"query","description":"ISO 8601. 이 시각 이후 바뀐 공고(증분 동기화). 마감·비활성(취소) 공고도 오며(기본 status=all, sort=updated_desc) 한 번의 동기화는 모든 페이지가 같은 meta.as_of 를 돌려준다. 끝까지 받은 뒤 그 as_of 를 다음 updated_since 로 쓴다","schema":{"type":"string"}},{"name":"sort","in":"query","description":"정렬. updated_since 를 주면 기본이 updated_desc","schema":{"type":"string","enum":["published_desc","deadline_asc","updated_desc","budget_desc"],"default":"published_desc"}},{"name":"limit","in":"query","description":"한 번에 받을 개수(1~50, 기본 20)","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"cursor","in":"query","description":"이전 응답의 next_cursor","schema":{"type":"string"}},{"name":"fields","in":"query","description":"응답 필드 선택, 쉼표 구분(예: id,title,deadline_at). attribution·source_url 은 지정과 관계없이 항상 포함","schema":{"type":"string"}}]}},"/notices/{id}":{"get":{"summary":"공고 상세","x-required-scope":"notices:read","security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"responses":{"200":{"description":"공고","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/Notice"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"401":{"$ref":"#/components/responses/E401"},"403":{"$ref":"#/components/responses/E403"},"404":{"$ref":"#/components/responses/E404"},"422":{"$ref":"#/components/responses/E422"},"429":{"$ref":"#/components/responses/E429"},"500":{"$ref":"#/components/responses/E500"},"503":{"$ref":"#/components/responses/E503"}},"parameters":[{"name":"id","in":"path","required":true,"description":"공고 id(예: nara:R26BK01752060)","schema":{"type":"string"}},{"name":"fields","in":"query","description":"응답 필드 선택(attribution·source_url 은 항상 포함)","schema":{"type":"string"}}]}},"/notices/{id}/history":{"get":{"summary":"나라장터 정정 차수 이력·낙찰","x-required-scope":"notices:read","security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"responses":{"200":{"description":"이력","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/BidHistory"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"401":{"$ref":"#/components/responses/E401"},"403":{"$ref":"#/components/responses/E403"},"404":{"$ref":"#/components/responses/E404"},"422":{"$ref":"#/components/responses/E422"},"429":{"$ref":"#/components/responses/E429"},"500":{"$ref":"#/components/responses/E500"},"503":{"$ref":"#/components/responses/E503"}},"parameters":[{"name":"id","in":"path","required":true,"description":"nara:{공고번호}","schema":{"type":"string"}}]}},"/categories":{"get":{"summary":"분야별 모집중 건수·마지막 수집 시각","x-required-scope":"notices:read","security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"responses":{"200":{"description":"분야","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Category"}},"next_cursor":{"type":["string","null"]},"total":{"type":"integer"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"401":{"$ref":"#/components/responses/E401"},"403":{"$ref":"#/components/responses/E403"},"422":{"$ref":"#/components/responses/E422"},"429":{"$ref":"#/components/responses/E429"},"500":{"$ref":"#/components/responses/E500"},"503":{"$ref":"#/components/responses/E503"}}}},"/sources":{"get":{"summary":"소스 레지스트리","x-required-scope":"notices:read","security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"responses":{"200":{"description":"소스","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Source"}},"next_cursor":{"type":["string","null"]},"total":{"type":"integer"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"401":{"$ref":"#/components/responses/E401"},"403":{"$ref":"#/components/responses/E403"},"422":{"$ref":"#/components/responses/E422"},"429":{"$ref":"#/components/responses/E429"},"500":{"$ref":"#/components/responses/E500"},"503":{"$ref":"#/components/responses/E503"}}}},"/meta/regions":{"get":{"summary":"지역 이름 목록","x-required-scope":"notices:read","security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"responses":{"200":{"description":"지역","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"full_name":{"type":"string"}}}},"next_cursor":{"type":["string","null"]},"total":{"type":"integer"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"401":{"$ref":"#/components/responses/E401"},"403":{"$ref":"#/components/responses/E403"},"422":{"$ref":"#/components/responses/E422"},"429":{"$ref":"#/components/responses/E429"},"500":{"$ref":"#/components/responses/E500"},"503":{"$ref":"#/components/responses/E503"}}}},"/me":{"get":{"summary":"내 플랜·사용량·키","security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"responses":{"200":{"description":"계정","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/Me"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"401":{"$ref":"#/components/responses/E401"},"403":{"$ref":"#/components/responses/E403"},"422":{"$ref":"#/components/responses/E422"},"429":{"$ref":"#/components/responses/E429"},"500":{"$ref":"#/components/responses/E500"},"503":{"$ref":"#/components/responses/E503"}},"description":"모든 키로 부를 수 있고 쿼터에 세지 않는다."}},"/favorites":{"get":{"summary":"즐겨찾기 목록","x-required-scope":"favorites:write","security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"responses":{"200":{"description":"즐겨찾기","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Favorite"}},"next_cursor":{"type":["string","null"]},"total":{"type":"integer"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"401":{"$ref":"#/components/responses/E401"},"403":{"$ref":"#/components/responses/E403"},"422":{"$ref":"#/components/responses/E422"},"429":{"$ref":"#/components/responses/E429"},"500":{"$ref":"#/components/responses/E500"},"503":{"$ref":"#/components/responses/E503"}},"parameters":[{"name":"status","in":"query","description":"active(기본) | expired | all","schema":{"type":"string","enum":["active","expired","all"],"default":"active"}},{"name":"limit","in":"query","description":"한 번에 받을 개수(1~50, 기본 20)","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"cursor","in":"query","description":"이전 응답의 next_cursor","schema":{"type":"string"}}]},"post":{"summary":"즐겨찾기 추가(이미 있으면 기존 항목, 200)","x-required-scope":"favorites:write","security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"responses":{"200":{"description":"이미 있음","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/Favorite"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"201":{"description":"추가됨","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/Favorite"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"401":{"$ref":"#/components/responses/E401"},"403":{"$ref":"#/components/responses/E403"},"404":{"$ref":"#/components/responses/E404"},"422":{"$ref":"#/components/responses/E422"},"429":{"$ref":"#/components/responses/E429"},"500":{"$ref":"#/components/responses/E500"},"503":{"$ref":"#/components/responses/E503"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["notice_id"],"properties":{"notice_id":{"type":"string","description":"공고 id"},"memo":{"type":"string","description":"메모(500자 이하)"}}}}}}}},"/favorites/{id}":{"patch":{"summary":"메모 수정","x-required-scope":"favorites:write","security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"responses":{"200":{"description":"수정됨","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/Favorite"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"401":{"$ref":"#/components/responses/E401"},"403":{"$ref":"#/components/responses/E403"},"404":{"$ref":"#/components/responses/E404"},"422":{"$ref":"#/components/responses/E422"},"429":{"$ref":"#/components/responses/E429"},"500":{"$ref":"#/components/responses/E500"},"503":{"$ref":"#/components/responses/E503"}},"parameters":[{"name":"id","in":"path","required":true,"description":"즐겨찾기 id","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["memo"],"properties":{"memo":{"type":["string","null"]}}}}}}},"delete":{"summary":"즐겨찾기 삭제","x-required-scope":"favorites:write","security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"responses":{"204":{"description":"삭제됨"},"401":{"$ref":"#/components/responses/E401"},"403":{"$ref":"#/components/responses/E403"},"404":{"$ref":"#/components/responses/E404"},"422":{"$ref":"#/components/responses/E422"},"429":{"$ref":"#/components/responses/E429"},"500":{"$ref":"#/components/responses/E500"},"503":{"$ref":"#/components/responses/E503"}},"parameters":[{"name":"id","in":"path","required":true,"description":"즐겨찾기 id","schema":{"type":"string"}}]}},"/alerts":{"get":{"summary":"키워드 알림 목록","x-required-scope":"alerts:write","security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"responses":{"200":{"description":"알림","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Alert"}},"next_cursor":{"type":["string","null"]},"total":{"type":"integer"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"401":{"$ref":"#/components/responses/E401"},"403":{"$ref":"#/components/responses/E403"},"422":{"$ref":"#/components/responses/E422"},"429":{"$ref":"#/components/responses/E429"},"500":{"$ref":"#/components/responses/E500"},"503":{"$ref":"#/components/responses/E503"}}},"post":{"summary":"키워드 알림 만들기","x-required-scope":"alerts:write","security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"responses":{"201":{"description":"만들어짐","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/Alert"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"401":{"$ref":"#/components/responses/E401"},"403":{"$ref":"#/components/responses/E403"},"422":{"$ref":"#/components/responses/E422"},"429":{"$ref":"#/components/responses/E429"},"500":{"$ref":"#/components/responses/E500"},"503":{"$ref":"#/components/responses/E503"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertInput"}}}}}},"/alerts/{id}":{"patch":{"summary":"알림 수정(category 제외)","x-required-scope":"alerts:write","security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"responses":{"200":{"description":"수정됨","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/Alert"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"401":{"$ref":"#/components/responses/E401"},"403":{"$ref":"#/components/responses/E403"},"404":{"$ref":"#/components/responses/E404"},"422":{"$ref":"#/components/responses/E422"},"429":{"$ref":"#/components/responses/E429"},"500":{"$ref":"#/components/responses/E500"},"503":{"$ref":"#/components/responses/E503"}},"parameters":[{"name":"id","in":"path","required":true,"description":"알림 id","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":["string","null"]},"include":{"type":"array","items":{"type":"string"}},"exclude":{"type":"array","items":{"type":"string"}},"regions":{"type":"array","items":{"type":"string"}},"active":{"type":"boolean"}}}}}}},"delete":{"summary":"알림 삭제","x-required-scope":"alerts:write","security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"responses":{"204":{"description":"삭제됨"},"401":{"$ref":"#/components/responses/E401"},"403":{"$ref":"#/components/responses/E403"},"404":{"$ref":"#/components/responses/E404"},"422":{"$ref":"#/components/responses/E422"},"429":{"$ref":"#/components/responses/E429"},"500":{"$ref":"#/components/responses/E500"},"503":{"$ref":"#/components/responses/E503"}},"parameters":[{"name":"id","in":"path","required":true,"description":"알림 id","schema":{"type":"string"}}]}},"/alerts/{id}/test":{"post":{"summary":"최근 N일 매칭 미리보기(메일 발송 없음, 최대 50건)","x-required-scope":"alerts:write","security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"responses":{"200":{"description":"매칭 공고","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AlertMatch"}},"next_cursor":{"type":["string","null"]},"total":{"type":"integer"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"401":{"$ref":"#/components/responses/E401"},"403":{"$ref":"#/components/responses/E403"},"404":{"$ref":"#/components/responses/E404"},"422":{"$ref":"#/components/responses/E422"},"429":{"$ref":"#/components/responses/E429"},"500":{"$ref":"#/components/responses/E500"},"503":{"$ref":"#/components/responses/E503"}},"parameters":[{"name":"id","in":"path","required":true,"description":"알림 id","schema":{"type":"string"}},{"name":"days","in":"query","description":"1~30, 기본 7","schema":{"type":"integer","minimum":1,"maximum":30,"default":7}}]}},"/alerts/matches":{"get":{"summary":"모든 활성 알림의 신규 매칭(폴링)","x-required-scope":"alerts:write","security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"responses":{"200":{"description":"매칭 공고","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AlertMatch"}},"next_cursor":{"type":["string","null"]},"total":{"type":"integer"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"401":{"$ref":"#/components/responses/E401"},"403":{"$ref":"#/components/responses/E403"},"422":{"$ref":"#/components/responses/E422"},"429":{"$ref":"#/components/responses/E429"},"500":{"$ref":"#/components/responses/E500"},"503":{"$ref":"#/components/responses/E503"}},"description":"since 이후 BizBell 에 새로 보인 공고 중 알림에 맞는 것. since 기본은 24시간 전, 최대 30일 전. 다음 폴링의 since 에는 meta.as_of 를 쓰고, 같은 공고가 다시 올 수 있으니 id 로 중복을 거른다. 후보가 너무 많아 일부만 살폈으면 meta.truncated=true 다(since 를 좁혀 다시 요청).","parameters":[{"name":"since","in":"query","description":"ISO 8601 날짜나 시각","schema":{"type":"string"}},{"name":"limit","in":"query","description":"한 번에 받을 개수(1~50, 기본 20)","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"cursor","in":"query","description":"이전 응답의 next_cursor","schema":{"type":"string"}}]}},"/alerts/settings":{"get":{"summary":"일일 메일 설정","x-required-scope":"alerts:write","security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"responses":{"200":{"description":"설정","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/AlertSettings"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"401":{"$ref":"#/components/responses/E401"},"403":{"$ref":"#/components/responses/E403"},"422":{"$ref":"#/components/responses/E422"},"429":{"$ref":"#/components/responses/E429"},"500":{"$ref":"#/components/responses/E500"},"503":{"$ref":"#/components/responses/E503"}}},"patch":{"summary":"일일 메일 설정 수정","x-required-scope":"alerts:write","security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"responses":{"200":{"description":"설정","content":{"application/json":{"schema":{"type":"object","required":["data","meta"],"properties":{"data":{"$ref":"#/components/schemas/AlertSettings"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"401":{"$ref":"#/components/responses/E401"},"403":{"$ref":"#/components/responses/E403"},"422":{"$ref":"#/components/responses/E422"},"429":{"$ref":"#/components/responses/E429"},"500":{"$ref":"#/components/responses/E500"},"503":{"$ref":"#/components/responses/E503"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertSettings"}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Authorization: Bearer bb_live_…"},"apiKeyHeader":{"type":"apiKey","in":"header","name":"X-API-Key"}},"responses":{"E401":{"description":"API 키가 없거나 올바르지 않음(unauthorized)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"E403":{"description":"키에 필요한 스코프가 없음(insufficient_scope)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"E404":{"description":"없음(not_found)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"E422":{"description":"잘못된 파라미터(invalid_parameter)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"E429":{"description":"분당 한도(rate_limited) · 월 쿼터(quota_exceeded) · 개수 한도(limit_exceeded)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"E500":{"description":"서버 오류(internal)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"E503":{"description":"일시적으로 처리할 수 없음(unavailable). 잠시 뒤 다시 시도","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Meta":{"type":"object","properties":{"request_id":{"type":"string"},"as_of":{"type":"string","description":"증분 동기화·폴링 경계(ISO 8601). 다음 updated_since/since 로 쓴다"},"since":{"type":"string"},"truncated":{"type":"boolean","description":"알림 매칭 후보를 상한까지만 살폈는지"}}},"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"hint":{"type":"string"},"docs_url":{"type":"string"},"retry_after":{"type":"integer"},"reset_at":{"type":"string"}}}}},"Notice":{"type":"object","required":["source_url","attribution"],"properties":{"id":{"type":"string","description":"{source}:{원천 id}"},"category":{"type":"string","enum":["startup","bid","support","rnd"]},"source":{"type":"string"},"title":{"type":"string","description":"원문 제목(변경하지 않음)"},"organization":{"type":["string","null"],"description":"소관·공고 기관"},"executing_org":{"type":["string","null"],"description":"수행·수요 기관"},"regions":{"type":"array","items":{"type":"string"},"description":"시도 약칭 또는 전국. 비어 있으면 알 수 없음"},"status":{"type":"string","enum":["always","open","upcoming","closed"],"description":"마감일·접수 시작일로 계산"},"published_at":{"type":["string","null"]},"first_seen_at":{"type":"string","description":"BizBell 이 처음 수집한 시각"},"apply_start_at":{"type":["string","null"]},"deadline_at":{"type":["string","null"],"description":"마감 시각(UTC). 시각을 모르는 원천은 null"},"deadline_date":{"type":["string","null"],"description":"마감일(KST, YYYY-MM-DD)"},"deadline_text":{"type":["string","null"],"description":"예산 소진 시까지 등 원문"},"always_open":{"type":"boolean"},"budget_krw":{"type":["integer","null"]},"summary":{"type":["string","null"],"description":"원천 요약 원문"},"tags":{"type":"array","items":{"type":"string"}},"source_url":{"type":"string","description":"원문 공고 URL. fields 와 관계없이 항상 온다"},"apply_url":{"type":["string","null"]},"bizbell_url":{"type":["string","null"],"description":"BizBell 상세 페이지"},"attachments":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"}}}},"extra":{"type":"object","description":"분야별 추가 정보(bid_no, bid_order, bid_type …)"},"attribution":{"type":"object","required":["text","license"],"description":"출처. fields 와 관계없이 항상 온다","properties":{"text":{"type":"string","description":"출처 표시 문구. 공고마다 함께 표시한다"},"license":{"type":"string","description":"이용 조건. KOGL-3 이면 제목·요약을 원문 그대로 인용한다"}}},"is_active":{"type":"boolean"},"updated_at":{"type":"string"}}},"BidHistory":{"type":"object","properties":{"id":{"type":"string"},"orders":{"type":"array","items":{"type":"object","properties":{"bid_order":{"type":["string","null"]},"title":{"type":"string"},"notice_type":{"type":["string","null"]},"published_at":{"type":["string","null"]},"deadline_at":{"type":["string","null"]},"bizbell_url":{"type":"string"}}}},"awards":{"type":"array","items":{"type":"object","properties":{"bid_order":{"type":"string"},"rebid_no":{"type":"string"},"winner_name":{"type":["string","null"]},"amount_krw":{"type":["integer","null"]},"awarded_on":{"type":["string","null"]}}}},"source_url":{"type":["string","null"],"description":"원문 공고 링크. 이력을 보여 줄 때 함께 제공한다"},"attribution":{"type":"object","description":"출처(나라장터). 이력을 보여 줄 때 함께 표시한다","properties":{"text":{"type":"string","description":"출처 표시 문구"},"license":{"type":"string","description":"이용 조건"}}}}},"Category":{"type":"object","properties":{"id":{"type":"string","enum":["startup","bid","support","rnd"]},"name":{"type":"string"},"open_count":{"type":"integer"},"last_success_at":{"type":["string","null"]},"sources":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"last_success_at":{"type":["string","null"]}}}}}},"Source":{"type":"object","properties":{"id":{"type":"string"},"category":{"type":"string","enum":["startup","bid","support","rnd"]},"name":{"type":"string"},"provider":{"type":"string"},"access":{"type":"string"},"license":{"type":"string"},"attribution":{"type":"string"},"schedule":{"type":["string","null"]},"enabled":{"type":"boolean"},"status":{"type":"string","enum":["ok","error","disabled"]},"last_success_at":{"type":["string","null"]}}},"Me":{"type":"object","properties":{"email":{"type":["string","null"]},"plan":{"type":"string"},"quota":{"type":"object","properties":{"used":{"type":"integer"},"limit":{"type":"integer"},"reset_at":{"type":"string"}}},"rate_limit":{"type":"object","properties":{"per_minute":{"type":"integer"}}},"limits":{"type":"object","properties":{"keys":{"type":"integer"},"alerts":{"type":"integer"},"favorites":{"type":"integer"}}},"key":{"type":"object","properties":{"prefix":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}}}}}},"Favorite":{"type":"object","properties":{"id":{"type":"string"},"notice_id":{"type":"string"},"memo":{"type":["string","null"]},"title":{"type":["string","null"]},"created_at":{"type":"string"},"notice":{"oneOf":[{"$ref":"#/components/schemas/Notice"},{"type":"null"}]}}},"AlertInput":{"type":"object","required":["category","include"],"properties":{"name":{"type":"string"},"category":{"type":"string","enum":["startup","bid","support","rnd","all"]},"include":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":20,"description":"하나라도 맞으면 매칭(2~50자)"},"exclude":{"type":"array","items":{"type":"string"},"maxItems":20},"regions":{"type":"array","items":{"type":"string"},"description":"서울, 경기 …"}}},"Alert":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":["string","null"]},"category":{"type":"string","enum":["startup","bid","support","rnd","all"]},"include":{"type":"array","items":{"type":"string"}},"exclude":{"type":"array","items":{"type":"string"}},"regions":{"type":"array","items":{"type":"string"}},"use_company_region":{"type":"boolean"},"active":{"type":"boolean"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}},"AlertMatch":{"allOf":[{"$ref":"#/components/schemas/Notice"},{"type":"object","properties":{"alert_ids":{"type":"array","items":{"type":"string"}},"matched_keywords":{"type":"array","items":{"type":"string"}}}}]},"AlertSettings":{"type":"object","properties":{"enabled":{"type":"boolean"},"time":{"type":"string","description":"HH:MM(KST)"},"email":{"type":["string","null"],"description":"null 이면 계정 이메일"}}}}}}