---
title: "Generate structured JSON objects using AI"
method: POST
path: "/api/ai/{project_id}/object"
tags: ["AI"]
---

# Generate structured JSON objects using AI

`POST /api/ai/{project_id}/object`

## Request

- Base URL: `https://core.blink.new`
- URL: `https://core.blink.new/api/ai/{project_id}/object`
- Auth: HTTP bearer

Generate a structured object, array, or enum value validated against a provided JSON schema. Set `stream: true` to receive partial object updates as they are produced.

## Path parameters

- `project_id` string, required

## Request body

- ObjectGenerationRequest
  - `model` string
  - `prompt` string, required: Text prompt for object generation
  - `output` 'object' | 'array' | 'enum'
  - `schema` object: JSON Schema for output validation
  - `enum` string[]
  - `stream` boolean: Enable streaming response. When true, returns data stream format with partial object updates.

## Response `200`

Object generation successful

- ObjectGenerationResponse
  - `result` object: The response data
    - `object` object: Generated structured object
    - `finishReason` 'stop' | 'length' | 'content_filter': Reason why generation finished
    - `usage` TokenUsage
      - `promptTokens` integer: Number of tokens in the prompt
      - `completionTokens` integer: Number of tokens in the completion
      - `totalTokens` integer: Total number of tokens used
    - `warnings` string[]: Any warnings from the generation process
    - `providerMetadata` object
      - `openai` object
        - `reasoningTokens` integer
        - `acceptedPredictionTokens` integer
        - `rejectedPredictionTokens` integer
        - `cachedPromptTokens` integer
    - `experimental_providerMetadata` object: Experimental provider metadata
    - `response` object
      - `id` string
      - `timestamp` string, date-time
      - `modelId` string
      - `headers` object
      - `body` object
    - `request` object
      - `body` string: Original request body as JSON string
  - `metadata` object
    - `projectId` string: Project identifier
    - `timestamp` string, date-time: Response timestamp
    - `provider` 'google-gemini' | 'openai': AI provider used for generation

## Other responses

- `400`: Invalid request (`VALIDATION_FAILED`, `INVALID_PROJECT_ID`, `INVALID_SCHEMA`, `INVALID_ARGUMENTS`), or, when zero data retention is enabled for AI requests, the model cannot run under it (`MODEL_NOT_ZDR_ELIGIBLE`).
- `401`: Authentication required or invalid API key
- `500`: Internal server error

---

[API](https://skmtc.dev/blink/apis/blink-apis.md) - [All operations](https://skmtc.dev/blink/apis/blink-apis/llms.txt) - [OpenAPI document](https://skmtc.dev/blink/apis/blink-apis/revisions/4c59c706078e?raw)
