Skip to content

Project response model

All models · Download OpenAPI

Nullable fields represent unknown values; they do not imply zero cost or a completed action.

Field Type Required Details
id string No
owner string No The tenant that holds this project: key: for a sandbox key, org: for a live one.
mode string No sandbox or live. A project is only ever visible to a key of its own mode.
name string No
product string or null No
category string or null No
targetQuantity integer or null No
stage string No prototype, first_batch, second_batch or later
markets string[] No
intake object No
intake.manufacturingIntent object or null No
contextVersion string No Content fingerprint used for intent edits and RFQ approval
status string No
createdAt string No
updatedAt string No When the row last changed. Not the same as contextVersion, which fingerprints the content a quote was approved against; a status change moves this and leaves that alone.
Full JSON schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"owner": {
"type": "string",
"description": "The tenant that holds this project: key:<id> for a sandbox key, org:<id> for a live one."
},
"mode": {
"type": "string",
"description": "sandbox or live. A project is only ever visible to a key of its own mode."
},
"name": {
"type": "string"
},
"product": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"category": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"targetQuantity": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
]
},
"stage": {
"type": "string",
"description": "prototype, first_batch, second_batch or later"
},
"markets": {
"type": "array",
"items": {
"type": "string"
}
},
"intake": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"manufacturingIntent": {
"anyOf": [
{
"type": "object",
"properties": {
"schemaVersion": {
"type": "number",
"const": 1
},
"current": {
"type": "object",
"properties": {
"purpose": {
"type": "string",
"enum": [
"samples",
"pilot",
"production",
"unknown"
]
},
"quantity": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 10000000
},
{
"type": "null"
}
]
},
"unit": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 800
},
{
"type": "null"
}
]
},
"configuration": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 800
},
{
"type": "null"
}
]
},
"revision": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 800
},
{
"type": "null"
}
]
},
"confirmation": {
"type": "string",
"enum": [
"unconfirmed",
"caller_confirmed"
]
},
"source": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"caller",
"file",
"interview"
]
},
"reference": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"quote": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 800
},
{
"type": "null"
}
]
}
},
"required": [
"kind",
"reference",
"quote"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"purpose",
"quantity",
"unit",
"configuration",
"revision",
"confirmation",
"source"
],
"additionalProperties": false
},
"plannedPilot": {
"anyOf": [
{
"type": "object",
"properties": {
"quantity": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 10000000
},
{
"type": "null"
}
]
},
"unit": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 800
},
{
"type": "null"
}
]
},
"period": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 800
},
{
"type": "null"
}
]
},
"source": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"caller",
"file",
"interview"
]
},
"reference": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"quote": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 800
},
{
"type": "null"
}
]
}
},
"required": [
"kind",
"reference",
"quote"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"quantity",
"unit",
"period",
"source"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"forecast": {
"anyOf": [
{
"type": "object",
"properties": {
"quantity": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 10000000
},
{
"type": "null"
}
]
},
"unit": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 800
},
{
"type": "null"
}
]
},
"period": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 800
},
{
"type": "null"
}
]
},
"source": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"caller",
"file",
"interview"
]
},
"reference": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"quote": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 800
},
{
"type": "null"
}
]
}
},
"required": [
"kind",
"reference",
"quote"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"quantity",
"unit",
"period",
"source"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"requirements": {
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"location",
"quality",
"material",
"inspection",
"deadline",
"other"
]
},
"detail": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"strength": {
"type": "string",
"enum": [
"hard",
"preference"
]
},
"confirmation": {
"type": "string",
"enum": [
"unconfirmed",
"caller_confirmed"
]
},
"source": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"caller",
"file",
"interview"
]
},
"reference": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"quote": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 800
},
{
"type": "null"
}
]
}
},
"required": [
"kind",
"reference",
"quote"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"kind",
"detail",
"strength",
"confirmation",
"source"
],
"additionalProperties": false
}
},
"priorities": {
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"enum": [
"quality",
"price",
"lead_time",
"scale",
"location"
]
}
},
"prioritySource": {
"anyOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"caller",
"file",
"interview"
]
},
"reference": {
"type": "string",
"minLength": 1,
"maxLength": 800
},
"quote": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 800
},
{
"type": "null"
}
]
}
},
"required": [
"kind",
"reference",
"quote"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"schemaVersion",
"current",
"plannedPilot",
"forecast",
"requirements",
"priorities",
"prioritySource"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"additionalProperties": {}
},
"contextVersion": {
"type": "string",
"description": "Content fingerprint used for intent edits and RFQ approval"
},
"status": {
"type": "string"
},
"createdAt": {
"type": "string"
},
"updatedAt": {
"type": "string",
"description": "When the row last changed. Not the same as contextVersion, which fingerprints the content a quote was approved against; a status change moves this and leaves that alone."
}
}
}