Rasterex APINPM Package/docs/components/annotation/schema

Annotation JSON Schema

Observed annotation JSON returned by the NPM SDK data extraction API.

Overview

This reference describes the observed items returned by viewer.annotations.getData({ filter: "annotations" }). Use it to consume extracted annotation data. It does not define the database storage format or an import payload.

Fields depend on the tool, document, and whether the item is a measurement. Preserve null values and empty arrays; do not assume every field is populated. This TypeScript shape describes the observed JSON and is not a formal JSON Schema validator.

See Data Extraction for filters, request correlation, and timeout behavior.

Observed annotation item

Numeric type, subtype, and flag meanings require the matching type or backend reference. Do not infer enum meanings from this sample shape.

typescript
type AnnotationResponseItem = {
  operation: Record<string, unknown>;
  Entity: {
    ID: number;
    Image: unknown | null;
    UniqueID: string;
    Imagehref: string | null;
    SvgContent: string | null;
    Type: number;
    Subtype: number;
    Alternative: number;
    Redaction: number;
    Layer: number;
    Rotation: number;
    TextRotation: number;
    PageRotation: number;
    FileName: string;
    Layout: string;
    View: number;
    ViewName3D: string | null;
    For3DView: boolean | null;
    PageHeight3D: number | null;
    PageWidth3D: number | null;
    ViewName: string;
    Handle: number;
    FillColor: string;
    LineColor: string;
    TextColor: string;
    Transparency: number;
    Consolidated: number;
    HaveLink: number;
    HaveLeader: number;
    HasScale: boolean | null;
    Locked: boolean;
    ScalingObject: ScalingObject | null;
    LeaderReference: unknown | null;
    Entity: unknown | null;
    FixedScale: number;
    LineStyleScale: number;
    LinkURL: string;
    Font: {
      Font: {
        facename: string;
        height: number;
        heightpx: number;
        bold: number;
        italic: number | null;
      };
    };
    Text: string;
    Status: string;
    SmallText: string;
    DimText: string;
    DimRadius: number | null;
    DimLength: number | null;
    CustomLabelOn: number;
    CustomLabelText: string;
    TextWidth: number;
    Signature: string;
    Name: string;
    TimeStamp: number;
    Scaling: number;
    LoadScaling: number;
    Printscale: number;
    Xoffset: number;
    Yoffset: number;
    LineWidth: number;
    LineWidthPx: number;
    LineWidthSegment: number;
    ArrowSize: number;
    LineStyle: number;
    MainImageScaling: number;
    MainImageOffsetX: string;
    MainImageOffsetY: string;
    DocScale: number;
    DocOffsetX: number;
    DocOffsetY: number;
    Points: { Point: Array<{ x: number; y: number }> };
    Line: unknown[];
    Holes: unknown[];
    outerRadius: number | null;
    innerRadius: number | null;
    startX: number | null;
    startY: number | null;
    secondX: number | null;
    secondY: number | null;
    endX: number | null;
    endY: number | null;
    LeaderLineOffset: number | null;
    LabelOffsetX: number | null;
    LabelOffsetY: number | null;
    LabelColor: string | null;
    Rect: { x: number; y: number; w: number; h: number };
    Extended: unknown[];
    Comments: unknown[];
    FixedScaleFactor: number;
  };
  Tool: string;
};

type ScalingObject = {
  measurescale: number;
  Unitofmeasure: number;
  SubmeasureUnit: number;
  unitname: string;
  Unitlabel: string;
  AreaUnitlabel: string;
  unitscale: number;
  scaleValue: string;
  scaleLabel: string;
  ndimprecision: number;
  nfractionprecision: number;
};
Observed annotation item