---
title: "OTLP GenAI Span Composer & Semconv Linter"
method: POST
path: "/v1/tools/lint_otlp_genai_trace"
tags: ["OTLP", "OpenTelemetry", "gen_ai", "semconv", "tracing", "agent-observability", "span", "linter", "composer", "zero-PII"]
---

# OTLP GenAI Span Composer & Semconv Linter

`POST /v1/tools/lint_otlp_genai_trace`

## Request

- Base URL: `https://ainumbers.co`
- URL: `https://ainumbers.co/v1/tools/lint_otlp_genai_trace`
- Auth: none declared

Compose hand-rolled OTLP/JSON traces (resourceSpans/scopeSpans/spans) with gen_ai presets for invoke_agent, chat, and execute_tool spans, and lint any OTLP/JSON trace for structural validity and gen_ai attribute conformance against a pinned attribute snapshot — the gen_ai semantic-convention namespace has zero tagged upstream releases, so semconv_snapshot is stamped into every artifact. File export only, zero network egress. Zero PII.

**Tool URL:** https://ainumbers.co/tools/556-otlp-genai-span-composer-linter.html
**AP2/Policy Mandate export:** yes

## Request body

- object
  - `trace` object, required: OTLP/JSON trace document (resourceSpans root)

## Response `200`

Successful tool execution result

- object
  - `overall_valid` boolean, required
  - `violations` integer
  - `checks_passed` integer
  - `findings` object[], required
    - `id` string
    - `title` string
    - `status` 'ok' | 'bad' | 'warn' | 'info'
    - `ok` boolean, nullable
  - `receipt` object: OCG check receipt (policy_parameters, output_payload, execution_hash, semconv_snapshot)

---

[API](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite.md) · [All operations](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite/llms.txt) · [OpenAPI document](https://skmtc.dev/ainumbers/apis/ainumbers-co-fintech-intelligence-suite/revisions/b462e4f5bb28?raw)
