Cubesphere Companies API

발행사 단위 통합 타임라인.

GitHub OpenAPI

Operations 2

GET /v1/companies/{ticker}/insider-flow 인사이더 플로우 롤링 집계 — 매수 OPEN_MARKET_BUY 한정, 무료 티어(known_at 24시간 지연) #
GET /v1/companies/{ticker}/timeline 발행사 통합 타임라인 — Form4 + 13D/G + 144, 무료 티어(known_at 24시간 지연) #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cubesphere-xyz:cubesphere-xyz-companies-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cubesphere-xyz-companies-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: public-api Companies API
  description: 'SEC 공시(Form 4 · Form 144 · Schedule 13D/13G) API. 무인증(free) 또는 `X-API-Key`(basic/pro)로 쓴다. free 는 `known_at` 기준 24시간 지연된 데이터만 노출한다.


    ### 인증

    `X-API-Key` 헤더 없음 = free 티어(기본값). 유효한 키 = 24시간 게이트 우회 + tenant 가 소유한 basic/pro 한도. 키가 있는데 무효·폐기면 401(조용히 free 로 강등하지 않는다).


    ### 레이트리밋

    free: IP 당 분당 60 · 일당 2,000. basic: 키 당 분당 120 · 일당 10,000. pro: 키 당 분당 300 · 일당 50,000(IP 가 아니라 키 버킷). 초과하면 429 와 함께 `X-RateLimit-*` 헤더가 돌아온다(한도는 티어별로 다른 값을 반영).


    ### 라이선스

    가격(yfinance)에서 파생된 값은 티어와 무관하게 이 API 에 없다 — DB role 권한 자체가 그 테이블을 못 본다.'
  version: 0.1.0
tags:
- name: Companies
  description: 발행사 단위 통합 타임라인.
paths:
  /v1/companies/{ticker}/insider-flow:
    get:
      tags:
      - Companies
      summary: 인사이더 플로우 롤링 집계 — 매수 OPEN_MARKET_BUY 한정, 무료 티어(known_at 24시간 지연)
      operationId: company_insider_flow_v1_companies__ticker__insider_flow_get
      parameters:
      - name: ticker
        in: path
        required: true
        schema:
          type: string
          description: 발행사 티커(대소문자 무관).
          title: Ticker
        description: 발행사 티커(대소문자 무관).
      - name: window
        in: query
        required: false
        schema:
          type: integer
          description: 롤링 윈도우(일). (7, 30) 중 하나.
          default: 30
          title: Window
        description: 롤링 윈도우(일). (7, 30) 중 하나.
      - name: since
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: 이 날짜(as_of_date) 이상만.
          title: Since
        description: 이 날짜(as_of_date) 이상만.
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 365
          minimum: 1
          description: 돌려줄 최근 행 수 상한.
          default: 60
          title: Limit
        description: 돌려줄 최근 행 수 상한.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InsiderFlowResponse'
        '422':
          description: window 이 (7, 30) 밖이다.
        '503':
          description: DB 에 붙지 못했다.
  /v1/companies/{ticker}/timeline:
    get:
      tags:
      - Companies
      summary: 발행사 통합 타임라인 — Form4 + 13D/G + 144, 무료 티어(known_at 24시간 지연)
      operationId: company_timeline_v1_companies__ticker__timeline_get
      parameters:
      - name: ticker
        in: path
        required: true
        schema:
          type: string
          description: 발행사 티커(대소문자 무관).
          title: Ticker
        description: 발행사 티커(대소문자 무관).
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 300
          minimum: 1
          description: 출처별 상한 — 세 출처를 합친 뒤 이 값으로 다시 자른다.
          default: 100
          title: Limit
        description: 출처별 상한 — 세 출처를 합친 뒤 이 값으로 다시 자른다.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimelineResponse'
        '404':
          description: 인식하지 못하는 티커.
        '503':
          description: DB 에 붙지 못했다.
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    InsiderFlowItem:
      properties:
        issuer_cik:
          anyOf:
          - type: string
          - type: 'null'
          title: Issuer Cik
        ticker:
          type: string
          title: Ticker
        as_of_date:
          type: string
          format: date
          title: As Of Date
        window_days:
          type: integer
          title: Window Days
        buy_count:
          type: integer
          title: Buy Count
        buy_shares:
          anyOf:
          - type: number
          - type: 'null'
          title: Buy Shares
        buy_value:
          anyOf:
          - type: number
          - type: 'null'
          title: Buy Value
        distinct_buyers:
          type: integer
          title: Distinct Buyers
        sell_count_discretionary:
          type: integer
          title: Sell Count Discretionary
        sell_value_discretionary:
          anyOf:
          - type: number
          - type: 'null'
          title: Sell Value Discretionary
        sell_count_planned:
          type: integer
          title: Sell Count Planned
        sell_value_planned:
          anyOf:
          - type: number
          - type: 'null'
          title: Sell Value Planned
        distinct_sellers:
          type: integer
          title: Distinct Sellers
        known_at_cut:
          type: string
          format: date-time
          title: Known At Cut
          description: PIT 컷 — 이 행이 계산될 때 본 세상의 시각. PIT 재현의 근거.
        computed_at:
          type: string
          format: date-time
          title: Computed At
          description: 이 행이 실제로 계산·저장된 시각(known_at_cut 과 다를 수 있다).
      additionalProperties: false
      type: object
      required:
      - ticker
      - as_of_date
      - window_days
      - buy_count
      - distinct_buyers
      - sell_count_discretionary
      - sell_count_planned
      - distinct_sellers
      - known_at_cut
      - computed_at
      title: InsiderFlowItem
      description: '`GET /v1/companies/{ticker}/insider-flow` 행 1건 — `sec.insider_flow_daily` 그대로.


        **매수는 `OPEN_MARKET_BUY` 한정.** 계획 매도(`sell_count_planned`)는

        `rule_10b5_1_status=''REPORTED_TRUE''` 기준(#312 문서 레벨 파싱 이후 사실 등급) —

        공동제출(joint filing) 184건은 아직 `NOT_REPORTED` 로 남아 재량 매도로 세어진다

        (`#318` 로 추적 중, `limitations.insider_flow_sell_grading` 참조).'
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    InsiderFlowResponse:
      properties:
        ticker:
          type: string
          title: Ticker
        window_days:
          type: integer
          title: Window Days
        items:
          items:
            $ref: '#/components/schemas/InsiderFlowItem'
          type: array
          title: Items
        items_truncated:
          type: boolean
          title: Items Truncated
          description: '`limit` 을 넘는 행이 더 있었는가.'
        limitations:
          additionalProperties:
            type: string
          type: object
          title: Limitations
      additionalProperties: false
      type: object
      required:
      - ticker
      - window_days
      - items
      - items_truncated
      - limitations
      title: InsiderFlowResponse
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    TimelineItem:
      properties:
        source_form:
          type: string
          enum:
          - form4
          - sc13
          - form144
          title: Source Form
        accession_no:
          type: string
          title: Accession No
        known_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Known At
        event_revision:
          anyOf:
          - type: integer
          - type: 'null'
          title: Event Revision
      additionalProperties: true
      type: object
      required:
      - source_form
      - accession_no
      title: TimelineItem
      description: '`GET /v1/companies/{ticker}/timeline` 행 1건 — Form4 · 13D/G · 144 통합.


        출처마다 그 다음 필드가 다르다(`extra="allow"`) — 공통 계약은 `source_form`·

        `accession_no`·`known_at`·`event_revision` 뿐이다. **13D/G·144 는 revision

        개념이 없어 `event_revision` 이 항상 null** — 결측이 아니라 그 폼의 사실이다

        (`product/timeline.py` 참조).'
    TimelineResponse:
      properties:
        ticker:
          type: string
          title: Ticker
        issuer_cik:
          type: string
          title: Issuer Cik
        items:
          items:
            $ref: '#/components/schemas/TimelineItem'
          type: array
          title: Items
        limitations:
          additionalProperties:
            type: string
          type: object
          title: Limitations
      additionalProperties: false
      type: object
      required:
      - ticker
      - issuer_cik
      - items
      - limitations
      title: TimelineResponse