# OGQ Market > AI Native IP Market & Clearing House > Buy Once, Use Everywhere > 약관 v2026.06.01 시행 — 2026-06-01 ## Overview OGQ is a global IP marketplace for stickers, music, webtoons, VRM avatars, and more. 17M+ users, 59M+ assets, 191 countries. 12 languages supported (ko/en/zh-CN/pt/fr/de/ar/hi/zh-TW/ja/es/ru). ## Core Pages - /market — Main IP marketplace (primary entry) - /grafolio — Grafolio content hub (banners, categories, creators, projects, backgrounds, notices) - /grafolio/projects — Grafolio projects index (paginated) - /grafolio/projects/{id} — Grafolio project detail (RSC, dynamic OG/Twitter card, JSON-LD CreativeWork) - /studio — Creator Studio (IP creation, AI generation, megaplan-hub) - /clearing — Settlement / payouts - /partner-portal — Partner guide: share rates by sale type, payout schedule and links to partner statements (the link-based partner portal is not in service) - /about — Service overview - /developers — Developer hub (API/SDK/Quickstart) ## Policy Pages (Terms v2026.06.01, effective 2026-06-01) - /policies — Terms index - /policies/integrated-account-terms — OGQ Integrated Account Terms (5 chapters / 18 articles) - /policies/market-terms — OGQ Market Service Terms (13 chapters) - /policies/privacy-policy — Privacy Policy. Section 9 states the rights of EU residents: to be informed, to access/rectify/erase/port personal data, to object to or restrict processing, to object to automated decision-making, and to lodge a complaint with a supervisory authority. The policy commits to acting "without delay"; no separate response deadline (SLA) is published, and the policy text cites no GDPR article numbers. Requests go to privacy@ogq.me — the online form at /gdpr/dsr-request is not yet connected to an intake backend - /policies/marketing-consent — Marketing consent - /policies/overseas-transfer-consent — Overseas data transfer consent - /policies/license — License terms - /policies/revenue-split — Revenue split policy ## API Base URL: https://stg.nova.ogq.me/api/v1 Authentication: send the partner API key in the X-OGQ-API-KEY header. The partner identity is read from the stored key row, never from the request, so a key cannot be used to act as another partner. - GET /ip — List IP content (proxy to the market search service; no taxonomy or consent filtering) - GET /ip/{id} — Get IP detail - GET /catalog?kind=&genre=&theme=&purpose=&cursor=&limit= — Partner catalogue with creator consent state. `kind` is required (it is the leading index column). With `purpose=aiTraining`, content whose creator denied AI-training consent is not returned at all, and items needing approval come back with `eligible:false, ineligibleReason:"requires_approval"`. Omit `purpose` and nothing is filtered out, but `eligible` is still judged against AI training (the response says so in `evaluatedPurpose`), so content nobody consented to is never reported as eligible. Paging is a keyset cursor, so pages never repeat or skip an item — a page can hold fewer rows than `limit` because consent is applied after the page is read, so treat `nextCursor: null` as the only end-of-list signal, never a short page. - GET /catalog/summary?purpose=aiTraining[&kind=] — Counts per kind and genre of what may be bundled (`eligible` / `requiresApproval` / `denied`). Use this to choose a category before ordering. - GET /offers — The bundle contracts addressed to your partner DID. OGQ admin writes the terms; you read them and order against them. Each offer carries its scope (`bundle`), licence model, pricing and term. The response also lists, per destination jurisdiction, the legal acknowledgements an order must send and the duties that come with a release. - POST /orders — Order a bundle: `{offerId, selection:{kind, genres, themes, contentIds?}, destCountry, acks, purpose}`. The selection must stay inside the offer's `bundle` on all three axes — a kind, genre or theme the offer does not cover is a 400 (`kind_outside_offer`, `genre_outside_offer`, `theme_outside_offer`), not a silent narrowing. Every item then runs the six export-gate checks. A blocked item does not fail the order — it comes back in `excluded[]` with a reason code, using the same words as the catalogue (`ai_training_denied`, `requires_approval`, `synth_id_missing`, `identity_loa_short`, `legal_ack_missing`, `outside_offer_scope`, `content_not_available`, …). A contract that cannot ground the export says what is wrong with it, so you can tell whose problem it is: `contract_missing` / `contract_not_found` (the order's contract reference is wrong), `contract_not_active`, `contract_term_not_started` / `contract_term_ended` (the contract's own dates — ask OGQ to renew), `contract_odrl_missing` / `contract_content_mismatch` (OGQ has to fix the contract; its dates and status will look fine to you), `contract_unavailable` (we could not read the contract just now — retry). Every id you name in `contentIds` comes back in `accepted[]` or `excluded[]` — never neither. Send `Idempotency-Key`: resending it returns the same order rather than a second one — use a fresh key for every distinct order, because the key is matched on its own and the body is not compared, so reusing a key with a different selection silently returns the first order (`replayed: true`) instead of accepting the new one. Keys longer than 100 characters are truncated before matching. One call fills at most 200 items. - POST /orders/{id}/expand — Fill the next 200 items, continuing from a keyset cursor so pages never repeat or skip an item. The item count is the invoice line count. - GET /orders/{id} — Totals plus how many items were excluded for each reason. Another partner's order answers 404, not 403. - POST /orders/{id}/release — Send the accepted items out, 200 at a time. Each item runs the same release procedure as a single transfer, so the transfer credential, OGQ Synth ID, UCI and the ODRL copy follow a bundle as well. The export gate runs again on each item at this moment, not only at order time — consent withdrawn or a contract ended in between stops the item here, and the reason appears in `failed[]`. Items already released are replayed, not re-issued, and one failure does not stop the rest. Call again while `remaining > 0`; call it one page at a time rather than in parallel. Parallel calls are safe but wasteful: an item is claimed before its credential is issued, so a second call fetching the same item gets `transfer_release_in_progress` in `failed[]` rather than a second credential. One transfer is only ever released once, and only one transfer credential is ever issued for it. - GET /orders/{id}/manifest?cursor=&limit=&format=json|jsonl — What to fetch, per released item: a signed data URL (one hour), the transfer credential (VC 2.0 id + SD-JWT), the identifiers (UCI, OGQ Synth ID, content hash), the AI label credential id and the conditions (licence model, duties, report due date). URLs are signed again on every call rather than stored — if one expires while you fetch, request the same page again. A signed URL is a bearer token: anyone holding it can download for its hour. Do not log, forward or redistribute it. - POST /orders/{id}/usage — Report usage for many items of an order in one request (`{periodStart, periodEnd, usageType, items:[{contentId|transferId, usageCount}]}`). Each item runs the same validation and recording as the per-transfer endpoint; anything that is not an accepted item of this order comes back in `notFound[]`. Re-sending the same body is deduplicated. For a flat-period bundle these counts are what the period fee is split by, in proportion: an item you report nothing for takes no share of that period's fee while any other item in the bundle was reported. Only when nothing at all was reported for the period is the fee split equally. Reporting is therefore what decides each creator's royalty — report every item. - GET /synthid/* — OGQ Synth ID generate / verify / similar / usage / batch / watermark / extract - OpenAPI 3.1 spec: https://stg.nova.ogq.me/openapi.json (served at site root, not under /api/v1) Consent is the rule, not a filter option. A creator's `aiTraining` / `commercialize` consent that was never stated counts as refused. Content that was not consented to is neither bundled nor transferred: the catalogue leaves it out, and the transfer gate refuses it again before anything is released. Billing follows the shape of the contract. A per-item bundle is charged once per item, in the month it was released. A flat-period bundle is charged once per contract per period and that one fee is split across the items in proportion to the usage you reported — never once per item, which for a thousand-item bundle would be a thousand period fees. The split always sums back to the fee. Not available yet (do not call): purchase, search and webhook-registration endpoints are not implemented. Buying a single item is an order of one item on the transfer rail (`POST /orders` with `selection.contentIds` of length one), not a `purchase` endpoint. ## Grafolio API (HQ) Base URL: https://stg.nova.ogq.me/api/graf - GET /ping — Health check - GET /proj/v1/banners — Active banners - GET /proj/v1/categories — 9 grafolio categories - GET /proj/v1/projects?page=&pageSize= — Latest projects (SliceDto, default pageSize=20) - GET /proj/v1/projects/{id} — Project detail - GET /proj/v1/best-creators — Curated best creators - GET /proj/v1/top-creators — Top score creators - GET /proj/v1/rookie-creators — New creators - GET /proj/v1/backgrounds — Free downloadable backgrounds - GET /notice/v1/notices — HQ notices ## DAM Public OAPI Base URL: https://stg.nova.ogq.me/api/dam - GET /v1/my-content?providers=ogq,naver,soop — Unified external partner content (BFF stub) ## Data Space (International Standards) Public page: /dataspace — OGQ Data Space aligned with IDS-RAM 4.0 / Dataspace Protocol (DSP 2024-1) / W3C (DID Core, VC 1.1, ODRL 2.2, DCAT 3, PROV-O) / Eclipse EDC / DCP / GAIA-X. 12-step conformance: the current per-step status is published on the /dataspace page itself; steps 7–10 (Compute-to-Data) are simulation and still in development. Treat that page, not this file, as the source of truth for the step counts. Verifiable artifacts (JSON-LD export endpoints): - GET /api/dataspace/catalog — DCAT-AP federated catalog - GET /api/dataspace/content/{id}/self-description — Self-description (DCAT+ODRL+VC+DID) - GET /api/dataspace/provenance/{contentId}/prov — W3C PROV-O provenance - GET /api/dataspace/did/{did} — W3C DID Document - GET /api/dataspace/policy/{contentId} — W3C ODRL 2.2 policy - GET /api/dataspace/stats — Live counts (DID/VC/UCI/PROV) ## Embed (Widget) ## Authentication OID 통합 로그인 (OAuth 2.0 + OIDC): - 한국: 구글 / 애플 / 네이버 / 카카오 - 글로벌: 구글 / 애플 - 중국: WeChat / 구글 / 애플 ## Payment - OGQ Pay 단일 레일. 카카오페이 / 네이버페이 / 신용카드 / 토스 / PayPal 이 그 안에 포함된다. - 외부 결제 플러그인(Lemon Squeezy · PortOne 등)은 사용하지 않는다(2026-05-10 결정). - 유료 구독 결제는 준비 중이며, 개시 시점은 별도 고지한다. ## License Tiers (Creator) OGQ 수수료 = Human 창작 콘텐츠의 플랫폼 몫(100% − 크리에이터 몫), 정산기준액 기준 (통합 수수료 정책 2026-10-05 §2.2) - general — OGQ 50% / discount 0% - pro — OGQ 40% / discount 30% - star — OGQ 30% / discount 50% - partner — OGQ 20% (원본 콘텐츠) / discount 50% / 개별 계약 ## Revenue Split (after fees) | 창작 유형 | Star | Pro | General | |---|---|---|---| | Human 창작 | 70% | 60% | 50% | | AI 보조 (hybrid) | 60% | 50% | 30% | | AI 단독 | 40% | 30% | 20% | 정산기준액 = 결제금액 − 제반수수료(결제수수료 — 실제 청구액 연동 전 평균 5% 갈음 · 유통파트너 수수료 · AI 2차 창작은 AI API 원가와 크레딧 보너스 비용) 상한: 70% (Partner 원본 콘텐츠만 80%) / 2차 창작: 원작자 60% + 2차창작자 10% + OGQ 30% 팬 결제(후원 · Live 선물·팁 등): 등급 무관 정산기준액의 70% / 정산: 크리에이터 익월 15일(최소 10,000원 · 출금 수수료 0%) · 파트너 익월 25일(월 100,000원 미만 이월) 크레딧: 1크레딧 = 100원 · 유상 크레딧 먼저 차감 · 무상(무료 지급) 크레딧으로 쓴 몫은 배분하지 않음(공통 마케팅 비용) 요금제: Free 0원(가입 때 1회 무료 체험 10크레딧 · 매달 지급 없음) · Starter 9,900원(월 99크레딧) · Pro 29,900원(월 299크레딧) · Max 79,900원(월 799크레딧) 크레딧 충전 팩(웹 · 앱 공통, 부가세 포함): 25크레딧 2,500원 · 59크레딧 5,900원 · 120크레딧 12,900원 · 250크레딧 25,900원. 1크레딧 = 100원, 충전 팩 구매에는 마진 규칙이 없다 AI 생성 과금(누진 구간제): 생성 한 번의 AI 원가 가운데 첫 5,000원까지는 ×10(마진 90%), 5,000원을 넘는 부분만 ×2(마진 50%). 판매가 = min(원가, 5,000) × 10 + max(원가 − 5,000, 0) × 2, 크레딧 = 판매가 ÷ 100원 올림. 크레딧 충전 팩 구매와 크레딧으로 하는 콘텐츠 구매에는 적용하지 않는다 클리어링 수수료: 마켓 안 거래 +0원 · 외부 반출·AI 학습·API 판매만 정산기준액의 3% 상세: /policies/revenue-split ## Key Features - OGQ Synth ID 콘텐츠 표식 (OGQ 자체 구현). 워터마크 신호 삽입은 이미지·이미지 시퀀스·오디오·비디오에 지원되고, 3D·VRM·텍스트 등은 식별자 + 컨테이너 메타데이터로 대체된다. 또한 삽입은 AI·하이브리드로 등록된 콘텐츠에 한한다(Human 원작은 식별자만). 매체·원작유형에 따라 적용 범위가 다르므로 '모든 콘텐츠에 워터마크'로 서술하지 말 것 - INSERT-ONLY 원장. DB 트리거로 UPDATE/DELETE 가 실제로 차단되는 것은 clearing 의 transaction_log 와 creator_revenue_ledger 다. market 쪽 나머지 원장은 애플리케이션 규약으로만 지켜지며 DB 강제는 준비 중이다 - W3C Verifiable Credentials (DID 발급) - 데이터 스페이스 (EDC 0.17.0 connector) - GDPR — 개인정보처리방침 제9조에 EU 거주자 권리 5항목(정보 제공 · 열람/수정/삭제/이전 · 처리 거부·제한 · 자동화 의사결정 거부 · 감독기관 불만 제기)이 적혀 있다. 접수 창구는 privacy@ogq.me 이며, 온라인 신청 화면(/gdpr/dsr-request)은 접수 백엔드 미연결이라 아직 접수되지 않는다. 회신 기한(SLA)은 고지된 것이 없다 — 방침은 «지체 없이 조치»만 정한다 - 원천세 자동 처리 (한국 3.3%) - 환불 6분기 (cooling_off_full / after_cooling_off_partial / remaining_balance / system_error_full / leave_full / admin_manual) ## V3 통합 (본사 엔드포인트 직접 호출 + 신규 기능, 2026-05-06 ~) 본사 OGQ 백엔드(oid / pit / market)는 nova 로 옮기지 않고, nova BFF 가 본사 엔드포인트를 직접 부른다(2026-10 흡수 계획 폐기). 본사 상류가 아직 없는 기능은 가짜 빈 목록 대신 503 + `X-OGQ-Degraded: ` + `{available:false, code, message, retryable:false, error:{code,message}}` 로 «준비 중»을 알린다. 재시도해도 결과가 같다. ### V2 endpoint (일부 준비 중 — 준비 중인 경로는 그 줄에 503 코드를 적었다) - `POST /api/v2/auth/oid/exchange` — OID OAuth 후 매핑 (ogqId → marketUserId) - `GET /api/v2/social/me/likes?source=all|chtp|soop|graf|ocp|native` — 통합 좋아요 (2026-10 준비 중: 항상 503 `SOCIAL_FEED_UNAVAILABLE`) - `GET /api/v2/social/me/comments` — 통합 댓글 (2026-10 준비 중: 항상 503 `SOCIAL_FEED_UNAVAILABLE`) - `GET /api/v2/social/me/fanships` — 팬한 크리에이터 목록 (2026-10 준비 중: 항상 503 `SOCIAL_FEED_UNAVAILABLE`) - `GET /api/funding/*` — 후원 / 생일선물 / Live Super Chat / Diamond 답장 / 후원자 모임 (v2 아님) - `GET /api/v2/secondary/*` — 2차 창작 정책 / 제안 / 승인 - `GET /api/v2/dataspace/*` — 위탁 동의 / 보상 통계 - `GET /api/v2/did-vc/*` — DID 발급 / VC 검증 / 키 회전 ### Studio 신규 페이지 - `/studio/secondary` — 2차 창작 분배 (원작 60% / 2차창작 10% / OGQ 30%) - `/studio/did-vc` — DID + VC 8가지 + 자동 임베딩 토글 - `/studio/dataspace` — 5가지 동의 + 보상 통계 ### 결제 — OGQ Pay 단일 (PortOne 미사용) OGQ Pay 안에 카카오페이/네이버페이/신용카드/PayPal 모두 포함. 외부 결제 플러그인 X.