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

# Get Alignment Project

> Retrieve detailed information about a specific alignment project.


This endpoint fetches comprehensive details about an alignment project including metadata, associated documents, train-time alignment progress, status, performance metrics, and evaluation information.


**Path Parameters:**

- `alignment_id`: Unique identifier of the alignment project


**Returns:**

- `alignment_id`: Alignment project identifier
- `alignment_name`: Project name
- `base_model_id`: Base model identifier used for alignment
- `status`: Project status (`PENDING`, `COMPLETED`, `FAILED`)
- `queue_position`, `stop_requested_at`, `early_deployable`: run qualifiers, same as the status endpoint
- `created_at`: ISO timestamp when project was created
- `completed_at` (optional): ISO timestamp when project completed
- `updated_at`: Last update timestamp
- `eta_seconds` (optional): not wired up yet, always null
- `document_ids`: List of document IDs the synthetic training dataset was generated from
- `document_count`: Number of documents used
- `creator`: Username or ID of the project creator
- `performance_metrics` (optional): Train-time alignment metrics (loss, accuracy, etc.)
- `progress` (optional): Train-time alignment progress percentage (0-100)
- `estimated_completion` (optional): Estimated completion time
- `error` (optional): Error message if project failed
- `degraded` (optional): True when the run reached READY but a stage failed on the way
- `stage_failures` (optional): Stage failures on the way, if any
- `evaluation_id` (optional): Auto-evaluation ID if triggered
- `model_id` (optional): Deployed model ID for evaluation


**Raises:**

- `404`: If alignment project not found or doesn't belong to user


**Example Request:**

```json
GET /api/v3/alignment/alignment_01k4x9m2p7q3r8c1
Headers: {"Authorization": "Bearer <api_key>"}
```


**Example Response (Completed):**

```json
{
  "alignment_id":"alignment_01k4x9m2p7q3r8c1",
  "alignment_name": "Contract Risk Domain Alignment",
  "base_model_id": "Qwen/Qwen2.5-0.5B-Instruct",
  "status": "READY",
  "created_at": "2024-01-15T10:30:00Z",
  "completed_at": "2024-01-15T14:45:00Z",
  "document_ids": ["document_01k4x9m2p7q3r5s8", "document_01k4x9m2p7q3r5sc", "document_01k4x9m2p7q3r5sd"],
  "document_count": 3,
  "creator": "user-123",
  "performance_metrics": {
    "final_loss": 0.15,
    "accuracy": 0.92,
    "perplexity": 2.3
  },
  "evaluation_id": "evaluation_01k4x9m2p7q3r7b1",
  "model_id": "alignment_01k4x9m2p7q3r8c1-deployed"
}
```


**Example Response (In Progress):**

```json
{
  "alignment_id":"alignment_01k4x9m2p7q3r8c2",
  "alignment_name": "Technical Documentation Alignment",
  "base_model_id": "Qwen/Qwen2.5-0.5B-Instruct",
  "status": "PROCESSING",
  "created_at": "2024-01-16T09:00:00Z",
  "document_ids": ["document_01k4x9m2p7q3r5sh", "document_01k4x9m2p7q3r5sj"],
  "document_count": 2,
  "creator": "user-123",
  "progress": 45,
  "estimated_completion": "2024-01-16T11:30:00Z"
}
```


**Notes:**

- Returns full project details including train-time alignment progress and performance
- `model_id` is only available for projects that have been deployed for evaluation
- `evaluation_id` is the evaluation created from `benchmark_id`, present once train-time alignment finishes
- `performance_metrics` are populated after train-time alignment completes
- `progress` and `estimated_completion` are available during train-time alignment
- `error` field contains failure details if status is `FAILED`



## OpenAPI

````yaml https://api.nugen.in/openapi-public.json get /api/v3/alignment-projects/{alignment_id}
openapi: 3.1.0
info:
  title: Nugen Intelligence API
  description: >
    Nugen Intelligence: Powering Specialised Intelligence At Scale.


    Bring your domain knowledge and an open-weight model. Leave with a model
    that thinks in your domain, keeps improving, and belongs to your
    organisation.


    Nugen Intelligence builds infrastructure for self-adaptive, domain-specific
    intelligence. Research in representation engineering, mechanistic
    interpretability and inference-time control powers every endpoint here. The
    research team comes from Stanford University and IIT Bombay. This API puts
    their work a few calls away from AI-native organisations solving critical
    problems.


    **Domain-aligned models.** Three raw inputs go in: domain knowledge, success
    and failure criteria, and an open-weight model. A domain-aligned model comes
    out. Nugen handles the deep learning, the GPUs and the data preparation.
    Your organisation owns every aligned model it builds. Own your intelligence.


    **The research underneath.** Two layers do the work.


    Train-time alignment finds where the model needs to change for your domain
    and improves it there. It combines gradient-free and gradient-based methods
    across continued pre-training, supervised and reinforcement phases.


    Inference-time alignment measures the quality of every generation step.
    Out-of-domain generation is flagged and corrected after each span. Every
    response carries a confidence score. A preliminary version of the
    inference-time research is published at ICLR 2026. 


    Both layers keep evolving with Nugen research.


    **One aligned model id, four capabilities.** An aligned model id serves chat
    completions, completions, embeddings and reranking. Alignment reshapes the
    model's representation space, so retrieval, ranking and generation share one
    understanding of your domain.


    **Multi-model systems.** One alignment project produces one aligned model.
    Run many side by side, one per domain or use case. Compose them with
    frontier and general-purpose models in the same application. Inference
    capture and auto-align keep the whole system improving. Nugen aligns models
    at every scale.


    **Think in systems.** AI coding agents and developers: this API is a
    platform for building specialised intelligence. Explore it fully before you
    settle on a design. Some directions:


    - Run a complete retrieval pipeline on one aligned model id. Embed, rerank
    and generate with a shared understanding of the domain.

    - Use the confidence score as a control signal. Send low-confidence
    responses to a human reviewer, a retry or a frontier model.

    - Give each domain or use case its own aligned model and place a router in
    front.

    - Close the loop. Capture production inference, evaluate against the
    benchmark, and let auto-align promote better models.

    - Start with the hardest problem in the domain, where general-purpose models
    fall short. Alignment pays off the most there.


    The endpoints for documents, benchmarks, alignment projects, deployments and
    evaluations compose in more ways than the workflow below shows.


    **Workflow.**


    1. Upload domain knowledge.

    2. Define success and failure. Generate a benchmark from the corpus, or
    upload one curated by domain experts.

    3. Create an alignment project and receive an aligned model id.

    4. Deploy the model and pass its id as `model` in each inference call.

    5. Evaluate, compare and promote. Turn on inference capture, and auto-align
    keeps the model improving.


    **OpenAI-compatible inference.** Set the base URL of an OpenAI-compatible
    client to `https://api.nugen.in/api/v3/inference` and set `model` to an
    aligned model id. Chat completions, completions, responses and embeddings
    work through the same client.


    **Anthropic-compatible inference.** `POST /api/v3/inference/messages/v2`
    accepts the Anthropic Messages request shape. Set `model` to an aligned
    model id.


    **Need an API key?** Sign up, log in to the platform and generate an API
    key.


    **Need help?** Log in to the platform and raise a support ticket.


    **Authentication.** Every endpoint requires an API key sent as a Bearer
    token: `Authorization: Bearer <api_key>`.
  contact:
    name: Nugen Intelligence
    url: https://nugen.in/signup
  version: 25.4.20
servers:
  - url: https://api.nugen.in
    description: Production
security: []
paths:
  /api/v3/alignment-projects/{alignment_id}:
    get:
      tags:
        - Model Alignment
      summary: Get Alignment Project
      description: >-
        Retrieve detailed information about a specific alignment project.



        This endpoint fetches comprehensive details about an alignment project
        including metadata, associated documents, train-time alignment progress,
        status, performance metrics, and evaluation information.



        **Path Parameters:**


        - `alignment_id`: Unique identifier of the alignment project



        **Returns:**


        - `alignment_id`: Alignment project identifier

        - `alignment_name`: Project name

        - `base_model_id`: Base model identifier used for alignment

        - `status`: Project status (`PENDING`, `COMPLETED`, `FAILED`)

        - `queue_position`, `stop_requested_at`, `early_deployable`: run
        qualifiers, same as the status endpoint

        - `created_at`: ISO timestamp when project was created

        - `completed_at` (optional): ISO timestamp when project completed

        - `updated_at`: Last update timestamp

        - `eta_seconds` (optional): not wired up yet, always null

        - `document_ids`: List of document IDs the synthetic training dataset
        was generated from

        - `document_count`: Number of documents used

        - `creator`: Username or ID of the project creator

        - `performance_metrics` (optional): Train-time alignment metrics (loss,
        accuracy, etc.)

        - `progress` (optional): Train-time alignment progress percentage
        (0-100)

        - `estimated_completion` (optional): Estimated completion time

        - `error` (optional): Error message if project failed

        - `degraded` (optional): True when the run reached READY but a stage
        failed on the way

        - `stage_failures` (optional): Stage failures on the way, if any

        - `evaluation_id` (optional): Auto-evaluation ID if triggered

        - `model_id` (optional): Deployed model ID for evaluation



        **Raises:**


        - `404`: If alignment project not found or doesn't belong to user



        **Example Request:**


        ```json

        GET /api/v3/alignment/alignment_01k4x9m2p7q3r8c1

        Headers: {"Authorization": "Bearer <api_key>"}

        ```



        **Example Response (Completed):**


        ```json

        {
          "alignment_id":"alignment_01k4x9m2p7q3r8c1",
          "alignment_name": "Contract Risk Domain Alignment",
          "base_model_id": "Qwen/Qwen2.5-0.5B-Instruct",
          "status": "READY",
          "created_at": "2024-01-15T10:30:00Z",
          "completed_at": "2024-01-15T14:45:00Z",
          "document_ids": ["document_01k4x9m2p7q3r5s8", "document_01k4x9m2p7q3r5sc", "document_01k4x9m2p7q3r5sd"],
          "document_count": 3,
          "creator": "user-123",
          "performance_metrics": {
            "final_loss": 0.15,
            "accuracy": 0.92,
            "perplexity": 2.3
          },
          "evaluation_id": "evaluation_01k4x9m2p7q3r7b1",
          "model_id": "alignment_01k4x9m2p7q3r8c1-deployed"
        }

        ```



        **Example Response (In Progress):**


        ```json

        {
          "alignment_id":"alignment_01k4x9m2p7q3r8c2",
          "alignment_name": "Technical Documentation Alignment",
          "base_model_id": "Qwen/Qwen2.5-0.5B-Instruct",
          "status": "PROCESSING",
          "created_at": "2024-01-16T09:00:00Z",
          "document_ids": ["document_01k4x9m2p7q3r5sh", "document_01k4x9m2p7q3r5sj"],
          "document_count": 2,
          "creator": "user-123",
          "progress": 45,
          "estimated_completion": "2024-01-16T11:30:00Z"
        }

        ```



        **Notes:**


        - Returns full project details including train-time alignment progress
        and performance

        - `model_id` is only available for projects that have been deployed for
        evaluation

        - `evaluation_id` is the evaluation created from `benchmark_id`, present
        once train-time alignment finishes

        - `performance_metrics` are populated after train-time alignment
        completes

        - `progress` and `estimated_completion` are available during train-time
        alignment

        - `error` field contains failure details if status is `FAILED`
      operationId: alignment_projects_get
      parameters:
        - name: alignment_id
          in: path
          required: true
          schema:
            type: string
            title: Alignment Id
      responses:
        '200':
          description: >-
            Returns detailed information about a specific alignment project,
            including metadata, associated documents, train-time alignment
            progress, status, performance metrics, and evaluation information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AlignmentProjectsDetail'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - HTTPBearer: []
components:
  schemas:
    AlignmentProjectsDetail:
      properties:
        alignment_id:
          type: string
          title: Alignment Id
          description: Unique identifier for the alignment project
          examples:
            - alignment_01k4x9m2p7q3r8c3
            - alignment_01k4x9m2p7q3r8c1
        alignment_name:
          type: string
          title: Alignment Name
          description: Human-readable name for the alignment project
          examples:
            - Contract Risk Model
            - Legal Document Assistant
            - Medical Q&A Bot
        base_model_id:
          type: string
          title: Base Model Id
          description: ID of the base model used for train-time alignment
          examples:
            - Qwen/Qwen2.5-0.5B-Instruct
            - Qwen/Qwen2.5-1.5B-Instruct
        status:
          $ref: '#/components/schemas/ResourceStatus'
          description: Current status of the alignment project (PROCESSING, READY, FAILED)
        queue_position:
          anyOf:
            - type: integer
            - type: 'null'
          title: Queue Position
          description: >-
            Place in the queue while status is QUEUED, 1 meaning next to start.
            Null once execution has begun.
        stop_requested_at:
          anyOf:
            - type: string
            - type: 'null'
          title: Stop Requested At
          description: Set once a stop was requested; the run ends STOPPED.
        early_deployable:
          type: boolean
          title: Early Deployable
          description: >-
            True once train-time alignment has written a checkpoint, so POST
            /models/{model_id}/deployment?early=true will succeed. Only
            meaningful while status is still PROCESSING; false once train-time
            alignment has finished, since a normal deploy applies then.
          default: false
        created_at:
          type: string
          title: Created At
          description: ISO 8601 timestamp when the project was created
          examples:
            - '2024-01-15T10:30:00Z'
            - '2024-02-01T09:15:00Z'
        completed_at:
          anyOf:
            - type: string
            - type: 'null'
          title: Completed At
          description: >-
            ISO 8601 timestamp when the project completed (null if still in
            progress or failed)
          examples:
            - '2024-01-15T12:45:00Z'
            - null
        updated_at:
          anyOf:
            - type: string
            - type: 'null'
          title: Updated At
          description: Last update timestamp.
        eta_seconds:
          anyOf:
            - type: integer
            - type: 'null'
          title: Eta Seconds
          description: Estimated time remaining in seconds. Not wired up yet, always null.
        document_ids:
          items:
            type: string
          type: array
          title: Document Ids
          description: List of document IDs used for train-time alignment
          examples:
            - - document_01k4x9m2p7q3r5s8
              - document_01k4x9m2p7q3r5s9
            - - document_01k4x9m2p7q3r5sa
        document_count:
          type: integer
          minimum: 0
          title: Document Count
          description: Total number of documents used for train-time alignment
          examples:
            - 5
            - 12
            - 3
        creator:
          type: string
          title: Creator
          description: Email/username of the user who created this project
          examples:
            - user@example.com
            - admin@company.com
        performance_metrics:
          anyOf:
            - $ref: '#/components/schemas/AlignmentProjectPerformanceMetrics'
            - type: 'null'
          description: >-
            Performance comparison metrics showing before/after alignment
            improvements (available after evaluation)
        progress:
          anyOf:
            - type: integer
              maximum: 100
              minimum: 0
            - type: 'null'
          title: Progress
          description: >-
            Train-time alignment progress percentage (0-100). Null if not
            started or completed.
          examples:
            - 0
            - 45
            - 100
            - null
        estimated_completion:
          anyOf:
            - type: string
            - type: 'null'
          title: Estimated Completion
          description: >-
            Estimated completion time (ISO 8601 timestamp). Null if not
            available or completed.
          examples:
            - '2024-01-15T14:00:00Z'
            - null
        error:
          anyOf:
            - type: string
            - type: 'null'
          title: Error
          description: Error message if the alignment project failed. Null if no error.
          examples:
            - 'Train-time alignment failed: insufficient data'
            - Out of memory error
            - null
        degraded:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Degraded
          description: >-
            True when the run reached its end state but a stage failed on the
            way.
        stage_failures:
          anyOf:
            - items: {}
              type: array
            - type: 'null'
          title: Stage Failures
          description: >-
            Stage failures on the way; each entry carries stage, status and
            failed_reason.
        evaluation_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Evaluation Id
          description: Latest evaluation ID for this alignment
          examples:
            - evaluation_01k4x9m2p7q3r7b1
            - null
        model_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Model Id
          description: >-
            Deployed model ID if the aligned model was automatically deployed
            for evaluation
          examples:
            - alignment_01k4x9m2p7q3r8c1-deployed
            - null
        gpu_training_completed:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Gpu Training Completed
          description: >-
            Whether train-time alignment completed successfully. True if
            completed, False if failed/cancelled, null if still in progress.
          examples:
            - true
            - false
            - null
        is_adapter_available:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Is Adapter Available
          description: >-
            True when an adapter checkpoint is live on the inference server and
            the model is ready for inference. Use model_id from this response to
            call the inference endpoint.
          examples:
            - true
            - false
            - null
      type: object
      required:
        - alignment_id
        - alignment_name
        - base_model_id
        - status
        - created_at
        - document_ids
        - document_count
        - creator
      title: AlignmentProjectsDetail
      description: |-
        One alignment project's full record: everything on its status and list
        rows, plus configuration, documents and metrics found nowhere else.
      example:
        alignment_id: alignment_01k4x9m2p7q3r8c1
        alignment_name: Contract Risk Model
        base_model_id: Qwen/Qwen2.5-0.5B-Instruct
        completed_at: '2024-01-15T12:45:00Z'
        created_at: '2024-01-15T10:30:00Z'
        creator: user@example.com
        document_count: 3
        document_ids:
          - document_01k4x9m2p7q3r5s8
          - document_01k4x9m2p7q3r5s9
          - document_01k4x9m2p7q3r5sb
        evaluation_id: evaluation_01k4x9m2p7q3r7b1
        model_id: alignment_01k4x9m2p7q3r8c1-deployed
        performance_metrics:
          accuracy_after: 0.92
          accuracy_before: 0.75
          domain_violations_after: 2
          domain_violations_before: 12
          uncertainty_after: 0.15
          uncertainty_before: 0.35
        progress: 100
        status: READY
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ResourceStatus:
      type: string
      enum:
        - PROCESSING
        - READY
        - FAILED
        - DEPLOYING
        - EVALUATING
        - UNDEPLOYED
        - EVALUATED
        - STOPPED
        - QUEUED
      title: ResourceStatus
      description: >-
        Lifecycle status of a resource that runs asynchronously.


        - `QUEUED`: accepted and waiting its turn on a bounded queue

        - `PROCESSING`: train-time alignment in progress

        - `READY`: train-time alignment completed, ready for deployment

        - `DEPLOYING`: model being deployed for evaluation

        - `EVALUATING`: evaluation in progress

        - `UNDEPLOYED`: model being undeployed after evaluation

        - `EVALUATED`: evaluation completed, model undeployed

        - `STOPPED`: train-time alignment stopped by the user before completion

        - `FAILED`: failed at any stage


        `QUEUED` is derived for the client at read time and never stored, so a

        resource read back later reports `PROCESSING` once execution has
        started.

        On input, values are case-insensitive and the legacy labels
        `p`/`PENDING`

        (PROCESSING), `c`/`COMPLETED` (READY) and `f` (FAILED) are still
        accepted.
    AlignmentProjectPerformanceMetrics:
      properties:
        accuracy_before:
          type: number
          title: Accuracy Before
          description: Accuracy before alignment
        accuracy_after:
          type: number
          title: Accuracy After
          description: Accuracy after alignment
        uncertainty_before:
          type: number
          title: Uncertainty Before
          description: Uncertainty before alignment
        uncertainty_after:
          type: number
          title: Uncertainty After
          description: Uncertainty after alignment
        domain_violations_before:
          type: integer
          title: Domain Violations Before
          description: Domain violations before alignment
        domain_violations_after:
          type: integer
          title: Domain Violations After
          description: Domain violations after alignment
      type: object
      required:
        - accuracy_before
        - accuracy_after
        - uncertainty_before
        - uncertainty_after
        - domain_violations_before
        - domain_violations_after
      title: AlignmentProjectPerformanceMetrics
      description: Model performance measured before and after alignment.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer

````

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