A timeout is not task failure
A local timeout ends this observation attempt. Retain the task ID and check the existing task later to avoid duplicate outputs.

Explore enterprise products and AI capabilities built for industry.
Let’s talk about your businessProducts, integrations and partnershipsBring AI into the enterprise.
Automated data-warehouse builder
Automated high-quality datasets
AI appliance for business decisions
Opens in a new tabDedicated offline AI bidding appliance
Connect AI to products and operations.
Explore the interfaces and integration paths for our AI capabilities.
Models, foundational frameworks and the engineering behind AI systems.
Explore collaboration across products, technology and delivery.
Frameworks, tools and examples for developers to understand and reuse.
Updates, technical thinking and industry observations from IDENIFE.
Our focus on education, talent and sharing knowledge.
Understand the contract between input, tasks and results. Bring model capabilities into your products and workflows.
Model APIs · MCP · ID Axis
Integration starts with a business outcome: the input, the deliverable and the acceptance criteria. Design generation, image-to-3D and metric production share a calling pattern, but have different standards for their outputs.
Define input and output for your task.
Create a server-side request and retain its task ID.
Handle terminal states and validate artifacts before use.
The paths, fields and states below illustrate integration. Use the version agreed for your deployment. The example host is not a live service.
# Set the agreed base URL and a server-side credential first.
# The .invalid host is a placeholder, not a live service.
export IDENIFE_BASE_URL="https://api.example.invalid"
export IDENIFE_API_KEY="<server-side-credential>"
curl --request POST "$IDENIFE_BASE_URL/v1/tasks" \
--header "Authorization: Bearer $IDENIFE_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"capability": "design.generate",
"input": {
"prompt": "Design a low, elegant electric GT in liquid silver.",
"constraints": {
"view": "front_three_quarter",
"material": "satin_metal"
}
},
"output": {
"format": "png"
}
}'Acceptance means the task has entered processing. Save task_id and query the task; read result after succeeded.
The browser owns the experience; your backend owns identity, permissions and API calls. Have the frontend call your application service, which connects to the model with centrally managed credentials and access scopes.
| Field / agreement | Purpose | Handling |
|---|---|---|
Authorization | Server identity | Use the agreed credential mechanism. Keep credentials in server-side environment configuration or a secret manager. |
Content-Type | application/json | Encode the request with the agreed schema; agree file upload separately from task creation. |
request_id | Request trace | Link the returned request ID to application logs. Record status and error codes without full credentials or sensitive inputs. |
Also agree how credentials are issued and rotated, whether access is project-scoped and how limits are reported. The Bearer example does not imply that every deployment uses the same authentication setup.
Separate capability selection, input conditions and output requirements. Your backend can share task-management logic while each capability keeps its own validation and acceptance criteria.
Clear inputs make results assessable.
| Capability | Main input | Result |
|---|---|---|
design.generate | Brief, material and view constraints | Concept image and artifact description |
image.to_3d | Image asset and requested output format | 3D mesh and material assets |
data.metrics | Dataset reference, metric definition and dimensions | Metric definition and structured result |
Pass images and datasets through agreed asset references. Check size, media type, access lifetime and data permissions before task creation. A generated 3D mesh is not the same as a parametric CAD solid.
Explore model capabilitiesSeparate longer jobs into submission, observation and result retrieval. The interface need not block: the task ID connects the business record, execution state and final artifact.
Accepted, awaiting execution
Capability is executing
Artifacts are ready
failed / cancelledFailure and cancellation are terminal states. Retain the reason and task ID, then let application logic decide what comes next; do not blindly resubmit.
// Illustrative server-side TypeScript; adapt to the agreed contract.
async function waitForTask(taskId: string, signal: AbortSignal) {
const baseUrl = process.env.IDENIFE_BASE_URL;
const key = process.env.IDENIFE_API_KEY;
if (!baseUrl || !key) throw new Error("Missing configuration");
for (let attempt = 0; attempt < 20; attempt++) {
signal.throwIfAborted();
const response = await fetch(
baseUrl + "/v1/tasks/" + encodeURIComponent(taskId),
{ headers: { Authorization: "Bearer " + key }, signal }
);
if (!response.ok) throw new Error("HTTP " + response.status);
const task = await response.json();
if (task.status === "succeeded") return task.result;
if (["failed", "cancelled"].includes(task.status)) {
throw new Error(task.error?.code ?? task.status);
}
await new Promise<void>((resolve, reject) => {
const stop = () => {
clearTimeout(timer);
reject(signal.reason);
};
const timer = setTimeout(() => {
signal.removeEventListener("abort", stop);
resolve();
}, 1500);
signal.addEventListener("abort", stop, { once: true });
});
}
throw new Error("Polling budget exceeded; preserve taskId");
}A local timeout ends this observation attempt. Retain the task ID and check the existing task later to avoid duplicate outputs.
Respect server delay guidance during throttling and set a retry budget. The contract must establish whether creation requests are retryable and whether idempotency keys are supported.
Applications should not guess completion from free-form text. Separate state, artifacts and errors so rendering, archiving, retries and human follow-up have an explicit basis.
{
"task_id": "task_demo_design_001",
"status": "succeeded",
"result": {
"artifacts": [
{
"id": "asset_demo_001",
"type": "image",
"format": "png",
"uri": "asset://demo/electric-gt.png"
}
],
"capability": "design.generate"
},
"request_id": "req_demo_001"
}400 / 422Check structure and business conditions401 / 403Check credentials and resource access429Respect backoff and control concurrency5xxRecord request ID and recover by policyHTTP status and retry semantics: RFC 9110
Model APIs invoke capabilities. MCP exposes tools and resources through a protocol. ID Axis organises reasoning and execution. They work together, with different responsibilities.
This guide references MCP 2025-11-25. Clients negotiate capabilities, discover tools with tools/list and supply arguments through tools/call. Resources use resources/read.
Validate arguments against the tool schema. Handle tool-execution errors separately from protocol errors; tool descriptions do not grant business permissions.
MCP · ToolsID Axis coordinates multi-agent reasoning, task context, available tools, execution budgets and result handling, so multistep work can progress within clear boundaries.
For business writes, enforce permissions and necessary confirmation at the execution layer. Before recovery, distinguish “not executed” from “executed but the response was not received”.
Explore the execution architectureA successful response is the beginning. Production integration also needs agreements on access, failures, artifacts and observability so the capability can keep working in your environment.
Keep credentials server-side. Separate environments and business permissions; control access to files and results.
Environment configuration · permission inventoryHandle creation, polling, timeouts and terminal states. Retain the task ID so results can be revisited after a page closes.
State transitions · recovery flowSeparate invalid input from transient faults. Bound retries and avoid recreating tasks with side effects after an uncertain response.
Failure fixtures · retry strategyValidate formats, required fields and artifact access. Route design outputs into appropriate human and engineering review.
Acceptance rules · regression fixturesCorrelate request and task IDs. Observe queueing, execution and failures; agree retention and support procedures.
Correlated logs · operational recordsExplore the requests and results, then define your business objective, runtime and deliverables.
Illustrative contract version: illustrative-v1