---
title: "Program detail"
method: GET
path: "/v1/programs/{id}"
tags: ["Programs"]
---

# Program detail

`GET /v1/programs/{id}`

## Request

- Base URL: `https://api.rossdata.dev`
- URL: `https://api.rossdata.dev/v1/programs/{id}`
- Auth: none declared

A program in full: module, type, layer, procedures, the Data Dictionary tables it references (each classified read vs read-write), its program→program call graph (calls / calledBy), the menu facilities it backs, and a display name (registry description for untitled programs). Lookup by TITLE id or basename.

## Path parameters

- `id` string, required

## Response `200`

OK

- ProgramDetail
  - `basename` string
  - `programId` string, nullable
  - `title` string, nullable
  - `name` string, nullable: Display name — TITLE label, or the registry description of a menu facility it backs for untitled programs
  - `registryDescription` string, nullable: Canonical description of a menu facility this program backs (GEM_FACILITIES)
  - `module` string
  - `moduleName` string, nullable
  - `type` string, nullable
  - `typeName` string, nullable
  - `layer` 'base' | 'vendor-core'
  - `overrides` string, nullable: Layer this vendor-core program overrides
  - `procedureCount` integer
  - `procedures` string[]: PROCEDURE_FORM block names
  - `tableCount` integer
  - `writeCount` integer: Of the referenced tables, how many the program writes to
  - `tables` object[]: Data Dictionary tables the program references, each classified read vs read-write. Writes are parsed from the source (FIND IN.../LOCK=WRITE update, ADD insert, DELETE); everything else is read-only.
    - `table` string
    - `access` 'read' | 'read-write': read-write if the program writes to the table, else read
    - `writes` integer: Number of write sites (0 for a read-only reference)
    - `url` string, uri
  - `calls` object, nullable: Program→program call graph. null when the program neither calls nor is called.
    - `callsCount` integer
    - `calledByCount` integer
    - `calls` ProgramCallEdge[]: Programs this one invokes
      - `basename` string
      - `name` string, nullable: TITLE label or registry description of the target program
      - `calls` integer: Number of call sites
      - `external` boolean: An explicit EXTERNAL_ENTRY launch
      - `url` string, uri
    - `calledBy` ProgramCallEdge[]: Programs that invoke this one
      - `basename` string
      - `name` string, nullable: TITLE label or registry description of the target program
      - `calls` integer: Number of call sites
      - `external` boolean: An explicit EXTERNAL_ENTRY launch
      - `url` string, uri
    - `note` string
  - `menu` ProgramMenuFacility[], nullable: Menu facilities this program backs; null if none
    - `facility` string
    - `name` string, nullable
    - `url` string, uri
  - `source` string
  - `links` object

## Other responses

- `404`: No program with that id or basename

---

[API](https://skmtc.dev/rossdata/apis/rossdata-dev-api.md) · [All operations](https://skmtc.dev/rossdata/apis/rossdata-dev-api/llms.txt) · [OpenAPI document](https://skmtc.dev/rossdata/apis/rossdata-dev-api/revisions/8c796f2e258c?raw)
