{"openapi":"3.1.0","info":{"title":"Nobami for AI","version":"1.0.1","description":"Read, search, create and update the user's Nobami documents. / 노바미 문서를 읽고 검색하고 만들고 고칩니다."},"servers":[{"url":"https://api.nobami.com"}],"paths":{"/v1/tools/drive_search":{"post":{"operationId":"drive_search","summary":"Search Nobami Drive","description":"Search the user's Nobami documents (personal, shared and team workspaces) by title and text. Returns ids for doc_read. / 노바미 드라이브에서 문서를 제목·본문으로 검색합니다.","x-openai-isConsequential":false,"security":[{"oauth2":["docs.read"]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":100,"description":"Words to find in titles and text (all must match). / 제목·본문에서 찾을 단어"},"kind":{"default":"any","description":"doc | sheet | slide | pdf | any","type":"string","enum":["doc","sheet","slide","pdf","any"]},"limit":{"default":10,"type":"integer","minimum":1,"maximum":50}},"required":["query"]}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/v1/tools/drive_list":{"post":{"operationId":"drive_list","summary":"List Drive documents","description":"List recent documents, a folder or a team workspace, plus folders and workspaces. / 최근 문서, 폴더, 팀 워크스페이스의 문서 목록을 보여줍니다.","x-openai-isConsequential":false,"security":[{"oauth2":["docs.read"]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"folder_id":{"description":"List one folder. / 특정 폴더만","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"workspace_id":{"description":"List one team workspace. / 특정 팀 워크스페이스만","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"limit":{"default":50,"type":"integer","minimum":1,"maximum":200}}}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/v1/tools/doc_read":{"post":{"operationId":"doc_read","summary":"Read a document","description":"Read a document as Markdown (docs: headings/lists/tables/links; sheets: one table per sheet; slides: titles and text per slide), plain text/CSV, or raw JSON. / 문서를 마크다운·텍스트·JSON으로 읽습니다.","x-openai-isConsequential":false,"security":[{"oauth2":["docs.read"]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"Document id (from drive_search / drive_list). / 문서 ID"},"format":{"default":"markdown","description":"markdown (default), text (plain / CSV for sheets) or json (raw editor content)","type":"string","enum":["markdown","text","json"]},"max_chars":{"default":100000,"type":"integer","minimum":100,"maximum":500000}},"required":["id"]}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/v1/tools/doc_create":{"post":{"operationId":"doc_create","summary":"Create a document","description":"Create a document (Markdown), spreadsheet (CSV) or presentation (outline) in the user's Nobami Drive and return its link. / 문서·시트·슬라이드를 만들어 드라이브에 저장합니다.","x-openai-isConsequential":true,"security":[{"oauth2":["docs.write"]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["doc","sheet","slide"],"description":"doc = word document, sheet = spreadsheet, slide = presentation"},"title":{"type":"string","minLength":1,"maxLength":300},"markdown":{"description":"doc: Markdown body (headings, lists, tables, links, bold/italic/code, quotes). sheet: a Markdown table also works.","type":"string","maxLength":500000},"csv":{"description":"sheet: CSV (first row = header). Cells starting with \"=\" are formulas.","type":"string","maxLength":1500000},"outline":{"description":"slide: \"# Deck title\" then \"## Slide title\" per slide with \"- bullet\" lines; \"Notes: …\" for speaker notes.","type":"string","maxLength":500000},"template_id":{"description":"Template id from templates_list (returns a link that opens the template in the app).","type":"string","maxLength":64},"folder_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"workspace_id":{"description":"Create inside a team workspace (editor role needed). / 팀 워크스페이스에 만들기","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["kind","title"]}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/v1/tools/doc_update":{"post":{"operationId":"doc_update","summary":"Update a document","description":"Append to or replace the body of a doc (Markdown), sheet (CSV) or presentation (outline). The previous state stays in version history; base_version prevents overwriting concurrent edits. / 문서 내용을 추가하거나 바꿉니다 (이전 버전은 기록에 남아요).","x-openai-isConsequential":true,"security":[{"oauth2":["docs.write"]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"mode":{"type":"string","enum":["append","replace"],"description":"append adds to the end; replace overwrites the body (a version is kept in history)."},"markdown":{"description":"doc: Markdown. slide: outline (\"## Slide\" + bullets).","type":"string","maxLength":500000},"csv":{"description":"sheet: CSV rows (append adds below the last row of the active sheet).","type":"string","maxLength":1500000},"base_version":{"description":"Fail with version_conflict if the document changed since this version.","type":"integer","minimum":1,"maximum":9007199254740991}},"required":["id","mode"]}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/v1/tools/templates_list":{"post":{"operationId":"templates_list","summary":"List templates","description":"Browse Nobami's Korean/English templates (official letters, reports, invoices, resumes, pitch decks…). / 노바미 서식(공문, 보고서, 견적서, 이력서, 피치덱 등) 목록.","x-openai-isConsequential":false,"security":[{"oauth2":["docs.read"]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"category":{"type":"string","enum":["business","official","hr","finance","marketing","education","student","personal","design"]},"query":{"type":"string","maxLength":100},"kind":{"type":"string","enum":["doc","sheet","slide"]}}}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/v1/tools/share_link_create":{"post":{"operationId":"share_link_create","summary":"Create a share link","description":"Create a read-only share link for a document (optional expiry and password). Anyone with the link can view it. / 문서의 보기 전용 공유 링크를 만듭니다.","x-openai-isConsequential":true,"security":[{"oauth2":["share"]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"expires_days":{"type":"integer","minimum":1,"maximum":365},"password":{"type":"string","minLength":4,"maxLength":128}},"required":["id"]}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/v1/tools/esign_request":{"post":{"operationId":"esign_request","summary":"Request signatures","description":"Send a PDF from Drive for electronic signature: each signer gets a signature box at the bottom of the last page and an email with a personal signing link. / 드라이브의 PDF로 전자서명을 요청합니다 (서명자에게 이메일 발송).","x-openai-isConsequential":true,"security":[{"oauth2":["esign"]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$","description":"A PDF document in Nobami Drive. / 드라이브의 PDF 문서"},"signers":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"email":{"type":"string","maxLength":254}},"required":["name","email"]}},"message":{"type":"string","maxLength":2000}},"required":["id","signers"]}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}},"/v1/tools/account_usage":{"post":{"operationId":"account_usage","summary":"Account usage","description":"Plan, cloud storage used, AI credits and e-signature quota of the user. / 요금제, 저장 공간, AI 크레딧, 전자서명 한도.","x-openai-isConsequential":false,"security":[{"oauth2":["docs.read"]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Tool result","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"$ref":"#/components/responses/Error"},"401":{"$ref":"#/components/responses/Error"},"403":{"$ref":"#/components/responses/Error"},"404":{"$ref":"#/components/responses/Error"},"409":{"$ref":"#/components/responses/Error"},"429":{"$ref":"#/components/responses/Error"}}}}},"components":{"securitySchemes":{"oauth2":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://api.nobami.com/oauth/authorize","tokenUrl":"https://api.nobami.com/oauth/token","refreshUrl":"https://api.nobami.com/oauth/token","scopes":{"docs.read":"Read and search your documents","docs.write":"Create and edit documents","share":"Create share links","esign":"Send signature requests"}}}},"apiKey":{"type":"http","scheme":"bearer","description":"Personal API key (nbk_…) from Nobami → Settings → AI connections"}},"responses":{"Error":{"description":"Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"}},"required":["error"]}}}}}}}