> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usecroma.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Courts of Japan Ruling

> Retrieve one ruling of the courts of Japan by its `id` from a search result (e.g. `93117`) or its `official_url`: its full text, the case number and name, the court, the date, the outcome, the court's summary and the statutes cited, the court's document as published, and the link to its page at the courts. The text comes back a character range at a time (`offset`, `limit`); follow `next_offset` until `has_more` is false.

**Dataset endpoint**: answers from the whole source in milliseconds and carries `as_of`.



## OpenAPI

````yaml /api-reference/openapi.json post /jp/courts-jp/ruling/v1
openapi: 3.1.0
info:
  title: Croma Marketplace API
  version: 1.0.0
  description: >-
    Government-data APIs for Colombia, Peru, Mexico, United States, Brazil, El
    Salvador, Bolivia, and Japan, plus global web search. Croma normalizes
    public-sector data into structured JSON for product teams and AI agents.


    Every operation is a POST with a JSON body and an organization API key as a
    bearer token; every operation is an idempotent lookup and accepts an
    optional `Idempotency-Key` header. Paths carry their major version (`/v1`);
    the versioning and deprecation policy, including the `Deprecation` and
    `Sunset` headers a retiring endpoint sends, is at
    https://docs.usecroma.com/versioning. Rate limits are per organization and
    reported on every response (`RateLimit-Policy`, `X-RateLimit-*`):
    https://docs.usecroma.com/rate-limits.
  termsOfService: https://usecroma.com/en/terms
  contact:
    name: Croma support
    url: https://usecroma.com/en/support
    email: support@usecroma.com
servers:
  - url: https://api.croma.run
security: []
paths:
  /jp/courts-jp/ruling/v1:
    post:
      tags:
        - Japan
        - Courts of Japan
      summary: Courts of Japan Ruling
      description: >-
        Retrieve one ruling of the courts of Japan by its `id` from a search
        result (e.g. `93117`) or its `official_url`: its full text, the case
        number and name, the court, the date, the outcome, the court's summary
        and the statutes cited, the court's document as published, and the link
        to its page at the courts. The text comes back a character range at a
        time (`offset`, `limit`); follow `next_offset` until `has_more` is
        false.


        **Dataset endpoint**: answers from the whole source in milliseconds and
        carries `as_of`.
      operationId: courts_jp_ruling
      parameters:
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - ruling_id
              properties:
                ruling_id:
                  type: string
                  minLength: 1
                  maxLength: 600
                  description: >-
                    The ruling's `id` from a search result, e.g. `93117`. Its
                    `official_url` or `source_document_url` works too.
                offset:
                  type: integer
                  minimum: 0
                  maximum: 10000000
                  default: 0
                  description: >-
                    First character of the range to return. Pass the previous
                    response's `next_offset` to continue reading.
                limit:
                  type: integer
                  minimum: 1000
                  maximum: 1000000
                  default: 200000
                  description: Maximum characters to return (1000-1000000).
              additionalProperties: false
            example:
              ruling_id: '93117'
      responses:
        '200':
          description: Successful response
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Deprecation:
              $ref: '#/components/headers/Deprecation'
            Sunset:
              $ref: '#/components/headers/Sunset'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
            X-Cache:
              $ref: '#/components/headers/X-Cache'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CourtsJpRulingResponse'
        '400':
          description: Invalid request body
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Deprecation:
              $ref: '#/components/headers/Deprecation'
            Sunset:
              $ref: '#/components/headers/Sunset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Missing or invalid API key
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Deprecation:
              $ref: '#/components/headers/Deprecation'
            Sunset:
              $ref: '#/components/headers/Sunset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: Rate limit exceeded
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Deprecation:
              $ref: '#/components/headers/Deprecation'
            Sunset:
              $ref: '#/components/headers/Sunset'
            X-RateLimit-Limit:
              $ref: '#/components/headers/X-RateLimit-Limit'
            X-RateLimit-Remaining:
              $ref: '#/components/headers/X-RateLimit-Remaining'
            X-RateLimit-Reset:
              $ref: '#/components/headers/X-RateLimit-Reset'
            Retry-After:
              $ref: '#/components/headers/Retry-After'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal error
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Deprecation:
              $ref: '#/components/headers/Deprecation'
            Sunset:
              $ref: '#/components/headers/Sunset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '502':
          description: Upstream source returned an error
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            RateLimit-Policy:
              $ref: '#/components/headers/RateLimit-Policy'
            Idempotency-Key:
              $ref: '#/components/headers/Idempotency-Key'
            Deprecation:
              $ref: '#/components/headers/Deprecation'
            Sunset:
              $ref: '#/components/headers/Sunset'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      security:
        - bearerAuth: []
      externalDocs:
        description: Interactive documentation and examples
        url: https://docs.usecroma.com/guides/japan/courts
components:
  parameters:
    IdempotencyKey:
      name: Idempotency-Key
      in: header
      required: false
      description: >-
        Optional client-chosen key for this request (any string up to 255
        characters, e.g. a UUID). Every Croma operation is an idempotent lookup:
        repeating a request with the same body returns the same result and
        creates nothing, so retrying after a timeout or network failure is
        always safe. The key is echoed back in the `Idempotency-Key` response
        header so you can correlate a retry with its first attempt. Each attempt
        that reaches the API counts against the rate limit.
      schema:
        type: string
        maxLength: 255
        example: 0f8e9a42-6b7c-4d1e-9a3f-2c5d7e8f9a0b
  headers:
    X-Request-Id:
      description: Unique id for the request (req_…). Include it in support reports.
      schema:
        type: string
    RateLimit-Policy:
      description: >-
        Quota policy for this endpoint as an IETF RateLimit-Policy structured
        field, e.g. `"default";q=100;w=86400` (100 requests per 86400-second
        window per organization). Endpoints with an extra hourly ceiling list
        both policies, e.g. `"webSearch";q=100;w=3600, "default";q=100;w=86400`.
        Present on every response, including 401 and 429.
      schema:
        type: string
        example: '"default";q=100;w=86400'
    Idempotency-Key:
      description: >-
        The `Idempotency-Key` the request carried, echoed back unchanged. Absent
        when the request sent none.
      schema:
        type: string
    Deprecation:
      description: >-
        Present only on an endpoint version scheduled for removal: the date the
        deprecation took effect (RFC 9745). A `Sunset` header and a `Link` with
        `rel="successor-version"` accompany it. Policy:
        https://docs.usecroma.com/versioning
      schema:
        type: string
        example: '@1767225600'
    Sunset:
      description: >-
        Present only on an endpoint version scheduled for removal: the date
        after which it answers 410 (RFC 8594). Announced in the changelog at
        least 90 days ahead.
      schema:
        type: string
        format: date-time
        example: Wed, 01 Apr 2026 00:00:00 GMT
    X-RateLimit-Limit:
      description: Requests allowed in the current window.
      schema:
        type: integer
    X-RateLimit-Remaining:
      description: Requests left before you are throttled.
      schema:
        type: integer
    X-RateLimit-Reset:
      description: ISO 8601 timestamp when the window resets.
      schema:
        type: string
        format: date-time
    X-Cache:
      description: >-
        HIT or MISS. Cached hits spend no credits, but still count toward an
        hourly ceiling.
      schema:
        type: string
        enum:
          - HIT
          - MISS
    Retry-After:
      description: Seconds to wait before retrying.
      schema:
        type: integer
  schemas:
    CourtsJpRulingResponse:
      type: object
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/CourtsJpRulingData'
    ApiError:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - type
            - code
            - message
          properties:
            type:
              type: string
              description: >-
                Broad category: invalid_request_error, authentication_error,
                not_found_error, rate_limit_error, upstream_error, api_error.
            code:
              type: string
              description: Machine-readable specific code.
            message:
              type: string
              description: Human-readable explanation, safe to surface in UI.
            param:
              type: string
              description: Field that triggered the error. Present on validation errors.
            details:
              type: object
              description: Free-form structured detail.
    CourtsJpRulingData:
      type: object
      properties:
        as_of:
          anyOf:
            - type: string
            - type: 'null'
          description: How current the data in this response is.
        found:
          type: boolean
        ruling_id:
          type: string
        ruling:
          anyOf:
            - type: object
              properties:
                id:
                  type: string
                  description: >-
                    The ruling's permanent number at the courts' site, e.g.
                    "93117". Unique across every collection.
                collections:
                  type: array
                  items:
                    type: string
                  description: >-
                    The collections the courts publish the ruling in: `supreme`
                    (最高裁判所判例集), `high` (高等裁判所判例集), `lower` (下級裁判所裁判例速報),
                    `administrative` (行政事件裁判例集), `labor` (労働事件裁判例集), `ip`
                    (知的財産裁判例集), `ip_high` (知的財産高等裁判所). One ruling can sit in
                    several.
                case_number:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The case number as the court prints it, e.g. "平成21(オ)257",
                    "令和7(あ)868".
                case_year:
                  anyOf:
                    - type: number
                    - type: 'null'
                  description: The Gregorian year the case was filed, from its number.
                title:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The case name (事件名), e.g. "損害賠償請求事件". Null when the court
                    published none.
                ruling_date:
                  type: string
                  description: '`yyyy-mm-dd` the ruling was handed down.'
                ruling_date_japanese:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: The same date in the Japanese calendar, e.g. "平成22年6月17日".
                year:
                  type: number
                  description: The year of the ruling.
                court:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The court, and for the Supreme Court its bench, e.g.
                    "最高裁判所第一小法廷", "東京高等裁判所", "大阪地方裁判所".
                branch:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: The branch of the court (支部), when the ruling names one.
                department:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: The division of the court (部), when the ruling names one.
                judgment_type:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: The kind of decision, e.g. "判決" (judgment), "決定" (decision).
                result:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The outcome as the court records it, e.g. "棄却", "破棄差戻",
                    "却下", "その他".
                reporter:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The official reports citation (判例集等巻・号・頁), when the ruling
                    is reported.
                lower_court:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The court whose decision was appealed (原審), when there is
                    one.
                lower_case_number:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: The case number at the lower court.
                lower_ruling_date:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: '`yyyy-mm-dd` of the lower court''s decision.'
                lower_result:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: The lower court's outcome, when the courts state it.
                holding:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The court's statement of what was decided (判示事項), when
                    published.
                gist:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The court's summary of the reasoning (裁判要旨 or 要旨), when
                    published.
                statutes:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The provisions the ruling turns on (参照法条), as the court
                    lists them.
                field:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    The field the courts file an administrative or labour case
                    under (分野), when stated.
                right_type:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    For an intellectual property case, the right at issue
                    (権利種別), e.g. "特許権", "著作権", "商標権".
                suit_type:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    For an intellectual property case, the kind of suit (訴訟類型),
                    e.g. "民事訴訟", "審決取消".
                ip_case_kind:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: For an IP High Court case, the kind of case (事件種別).
                invention:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    For an IP High Court case, the title of the invention, mark
                    or work (発明等の名称等).
                issues:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: For an IP High Court case, the main issues (主な争点).
                appeal:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    For an IP High Court case, whether a further appeal was
                    lodged (上告提起等の有無).
                appeal_result:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    For an IP High Court case, the result of that appeal
                    (上告審の結果).
                ip_result:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    For an IP High Court case, the outcome as that court records
                    it (判決結果).
                text_status:
                  type: string
                  enum:
                    - ok
                    - scanned
                    - missing
                  description: >-
                    `ok` when the full text is here; `scanned` when the court's
                    document carries no text layer; `missing` when the court
                    published no document.
                official_url:
                  type: string
                  description: The ruling's page at the courts' site.
                document_url:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: >-
                    Croma's copy of the court's document (PDF), byte for byte as
                    published. It stays available whatever happens to the
                    court's own site. Null when the court published none.
                source_document_url:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: The document's own link at the courts' site.
                content:
                  anyOf:
                    - type: object
                      properties:
                        text:
                          type: string
                          description: The requested character range of the ruling's text.
                        offset:
                          type: number
                          description: >-
                            First character of the range, which is where the
                            reading actually started.
                        total_length:
                          type: number
                          description: >-
                            Length of the whole text in characters, however much
                            of it this response carries.
                        has_more:
                          type: boolean
                          description: Whether the text continues past this range.
                        next_offset:
                          anyOf:
                            - type: number
                            - type: 'null'
                          description: >-
                            Pass this back as `offset` to read the next range.
                            Null at the end of the text.
                      required:
                        - text
                        - offset
                        - total_length
                        - has_more
                        - next_offset
                    - type: 'null'
                  description: >-
                    A range of the ruling's text, or null when `text_status` is
                    not `ok`.
              required:
                - id
                - collections
                - case_number
                - case_year
                - title
                - ruling_date
                - ruling_date_japanese
                - year
                - court
                - branch
                - department
                - judgment_type
                - result
                - reporter
                - lower_court
                - lower_case_number
                - lower_ruling_date
                - lower_result
                - holding
                - gist
                - statutes
                - field
                - right_type
                - suit_type
                - ip_case_kind
                - invention
                - issues
                - appeal
                - appeal_result
                - ip_result
                - text_status
                - official_url
                - document_url
                - source_document_url
                - content
            - type: 'null'
      required:
        - as_of
        - found
        - ruling_id
        - ruling
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Use Authorization: Bearer YOUR_API_KEY'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.