Skip to main content

User API Reference

Reference for user-facing API endpoint specifications and error codes. For administrator-only APIs, see the Admin API Reference.

Base URL​

All API requests are sent to the following base URLs.

SaaS
https://api.fd.agenticstar.tm.softbank.jp/api
Marketplace
https://<your-domain>/api

Endpoint paths in this document are relative to the base URL.

Edition-specific API Support​

Each endpoint section has a badge (SaaS / Marketplace) indicating which editions support it. The summary is below.

Endpoint groupSaaSMarketplacePrimary use
Chat✅✅OpenAI-compatible SSE
Conversation Management✅✅List / read messages / delete / update
File Management✅✅Upload / download / delete
Artifact Retrieval✅✅Retrieve files generated by agents
Search✅✅Message search
Library✅—Prompt templates / shared assets
User✅—User information lookup
Master Data✅—Organization / job type master
note

On the Marketplace edition, the Chat API requires the agentId header and is fixed to stream: true. See the Marketplace Quickstart for details.

Authentication​

All API requests must include a Bearer token in the Authorization header.

Authorization: Bearer <access_token>

If the token is invalid or missing, 401 Unauthorized is returned. Some endpoints require additional scopes. If the required scopes are missing, 403 Forbidden is returned.

For details on obtaining tokens and scopes, see the Authentication Guide and — depending on your edition — the Authentication API Reference (SaaS) or the Authentication API Reference (MP).

Pagination​

List endpoints support cursor-based pagination.

ParameterTypeDescription
limitintegerNumber of items per page (1-100). Defaults to 50
cursorstringCursor value for fetching the next page. Pass the cursor value from the previous response as-is
orderstringSort order. "asc" (ascending) or "desc" (descending, default). Supported only by some endpoints

The response includes a hasMore field. When true, pass the cursor value to the next request to retrieve the next page.

curl
# Page 1
curl "https://api.fd.agenticstar.tm.softbank.jp/api/v1/conversations?limit=10" \
-H "Authorization: Bearer <access_token>"

# Page 2 (using the cursor value from the response)
curl "https://api.fd.agenticstar.tm.softbank.jp/api/v1/conversations?limit=10&cursor=<cursor>" \
-H "Authorization: Bearer <access_token>"

Cursor-based pagination is supported by the list endpoints for conversations, messages, files, library, skills, and playbooks. The cursor is an opaque value: do not interpret its contents; pass the value from the previous response as-is to the next request.

Chat SaaS Marketplace​

OpenAI-compatible Chat Completions API. Conversations with the agent are delivered via SSE (Server-Sent Events) streaming.

The Chat API consists of three endpoints. You can send messages, reconnect to existing conversations, and cancel conversations in progress.

SSE Streaming Guide

Detailed explanation of connection flow, response objects, Delta extensions, execution patterns, reconnection, and error handling

View guide

Endpoint List​

メソッドエンドポイント説明Scope (SaaS)
POST/v1/chat/completionsSend a chat message and receive a response via SSE streamingchat:exec
GET/v1/chat/completions/:conversationIdReconnect to the SSE stream of a conversation in progresschat:exec
POST/v1/chat/completions/:conversationId/cancelCancel a conversation in progresschat:exec

Note: The Marketplace edition does not require scopes (authentication only).

POST/v1/chat/completions

Send a message to the agent and receive a response via SSE streaming. Responses are delivered in OpenAI-compatible Chat Completion Chunk format.

Request Headers​

ヘッダー必須説明
Authorization必須Bearer <access_token>
Content-Type必須application/json

Request Body​

パラメータ型必須説明
modelstring必須The model ID to use. Specify "AGENTIC STAR".
messagesarray必須Array of message objects. At least one user-role message is required. Even if multiple user messages are included, only the last one is processed. Conversation history is managed on the server side, so you do not need to send past exchanges in the messages array. To continue an existing conversation, specify the previous conversation ID in the conversationId parameter.
streamboolean必須Specify true. Currently, only streaming mode is supported.
conversationIdstring—Specify a conversation ID to continue an existing conversation. If omitted, a new conversation is created.

Edition-Specific Parameters​

SaaS
agentLevelstring"default" or "high_performance". Defaults to "default" when omitted.
agentModebooleanEnable/disable agent mode. Defaults to true when omitted.
privateModebooleanEnable/disable private mode. Defaults to false when omitted.
reportModestring"with" (default) or "without". Controls whether a work report is generated on completion.
personaKeystringPersona (response personality) to apply. Specify a personaKey returned by `GET /v1/personas`. Omit to apply no persona.
playbookIdstringPlaybook (predefined procedure) to apply. Specify a playbookId returned by `GET /v1/playbooks`. Omit to apply no playbook. Returns 400 if the ID does not exist or has been deactivated.
skillIdsarrayArray of skill IDs to load into the agent (up to 10). Specify skillId values returned by `GET /v1/skills`. Returns 400 if 11 or more are specified. IDs that do not exist or are unavailable are ignored, and execution continues with the remaining skills.
outputFormatstringResponse text format. "plain" (default) returns plain text with Markdown removed (diagrams dropped, code block bodies kept). "markdown" preserves Markdown as-is.
Marketplace
agentIdstringThe ID of the agent to use (required).
outputFormatstringResponse text format. "plain" (default) returns plain text with Markdown removed (diagrams dropped, code block bodies kept). "markdown" preserves Markdown as-is.

Message Object​

パラメータ型必須説明
rolestring必須Use "user". "assistant" / "system" are accepted but only "user" is effectively used as the starting point of the agent turn in the current implementation
contentstring | array必須The message content. A string, or an array of content parts (text / input_file). The text to be processed must be 1 MB or less in UTF-8.

Content Parts (Array Format)​

When specifying content as an array, the following part types are available. You can combine text and files in a single message.

typeParameterDescription
"text"text (string)Text message
"input_file"fileId or filepath (string)Either the fileId of an uploaded file or the filepath of a library file returned by GET /v1/library (exactly one). Up to 20 files total per request

Request Example​

Create chat completion
1curl -X POST https://api.fd.agenticstar.tm.softbank.jp/api/v1/chat/completions \
2-H "Authorization: Bearer <access_token>" \
3-H "Content-Type: application/json" \
4-d '{
5 "model": "AGENTIC STAR",
6 "stream": true,
7 "messages": [
8 {
9 "role": "user",
10 "content": "Please analyze the sales data"
11 }
12 ]
13}'

Response Headers​

HeaderDescription
Content-Typetext/event-stream
X-Conversation-IdConversation ID. For new conversations, a server-generated ID is returned.
X-Message-IdThe assistant response message ID.

SSE Response Format​

Responses are delivered as SSE events in the following order. Each event is a JSON line prefixed with data:.

SSE Event Flow
1. data: {"choices":[{"delta":{"role":"assistant"}}]}
2. data: {"choices":[{"delta":{"content":"..."}}]} × N
3. data: {"choices":[{"finishReason":"stop"}]}
4. data: [DONE]

Responses are delivered via SSE (Server-Sent Events) streaming. Each chunk is in OpenAI-compatible ChatCompletionChunk format. For details on the connection lifecycle, response objects, agent extension fields, and error handling, see the Streaming Guide.

Response Example​

SSE
data: {"createdAt":"2026-03-14T10:30:00Z","model":"AGENTIC STAR","choices":[{"index":0,"delta":{"role":"assistant"},"finishReason":null}]}

data: {"createdAt":"2026-03-14T10:30:00Z","model":"AGENTIC STAR","choices":[{"index":0,"delta":{"content":"Analyzing"},"finishReason":null}]}

data: {"createdAt":"2026-03-14T10:30:00Z","model":"AGENTIC STAR","choices":[{"index":0,"delta":{"content":" the sales data."},"finishReason":null}]}

data: {"createdAt":"2026-03-14T10:30:01Z","model":"AGENTIC STAR","choices":[{"index":0,"delta":{},"finishReason":"stop"}]}

data: [DONE]

Error Response​

Errors before the SSE stream starts are returned in JSON format. Errors during the stream are delivered as SSE chunks.

StatusDescription
400Invalid request parameters (missing or malformed model / messages / stream / conversationId / role / content, or more than 20 input_file parts in a single request). Or the specified conversationId is archived (code: "conversation_archived")
403Missing chat:exec scope
404The specified input_file fileId or filepath is not found
409The specified conversation is currently being processed

GET/v1/chat/completions/:conversationId

Reconnect to the SSE stream of a conversation in progress. Use this when the agent is processing a long-running task or to recover after a network disconnection.

Path Parameters​

パラメータ型必須説明
conversationIdstring必須The ID of the conversation to reconnect to

Request Example​

Resume SSE stream
1curl https://api.fd.agenticstar.tm.softbank.jp/api/v1/chat/completions/550e8400-e29b-41d4-a716-446655440000 \
2-H "Authorization: Bearer <access_token>"

Response (200 OK)​

Reconnects to the SSE stream. The response format is the same as POST /v1/chat/completions. The response headers include X-Conversation-Id and X-Message-Id. For detailed reconnection procedures, see the Streaming Guide.

Error Response​

StatusDescription
400Invalid conversationId
403Missing chat:exec scope
404Conversation not found or not in progress

POST/v1/chat/completions/:conversationId/cancel

Cancel a conversation in progress. Use this to abort the agent's execution.

Path Parameters​

パラメータ型必須説明
conversationIdstring必須The ID of the conversation to cancel

Request Body (optional)​

パラメータ型必須説明
messageIdstring—The ID of the message to cancel (UUID). If omitted, cancels the entire conversation.

Request Example​

Cancel chat
1curl -X POST https://api.fd.agenticstar.tm.softbank.jp/api/v1/chat/completions/550e8400-e29b-41d4-a716-446655440000/cancel \
2-H "Authorization: Bearer <access_token>" \
3-H "Content-Type: application/json"

Response Fields (200 OK)​

FieldTypeDescription
conversationIdstringThe ID of the cancelled conversation (UUID)
cancelledbooleanAlways true on successful cancellation

Response Example​

JSON
{ "conversationId": "550e8400-...", "cancelled": true }

Error Response​

StatusDescription
400Invalid conversationId, or the conversation is archived (code: "conversation_archived")
403Missing chat:exec scope
404Conversation not found

Conversation Management SaaS Marketplace​

List, retrieve message history, delete, and update titles of conversations.

Endpoint List​

メソッドエンドポイント説明Scope (SaaS)
GET/v1/conversationsList conversationschat:history
GET/v1/conversations/:conversationId/messagesGet message historychat:history
GET/v1/conversations/:conversationId/ui-resources/:toolCallIdGet the HTML of a UI resourcechat:exec / a2a:all / mcp:all
PATCH/v1/conversations/:conversationIdUpdate conversation titlechat:history
DELETE/v1/conversations/:conversationIdDelete a conversationchat:history
POST/v1/conversations/:conversationId/restoreRestore archived conversationchat:history

Note: The Marketplace edition does not require scopes (authentication only).

Operations on archived conversations​

Conversations retrieved with mode=archive only support read operations (list / message history) and restoration. The following operations return a 400 error (code: "conversation_archived").

OperationBehavior on archived conversations
GET /v1/conversations?mode=archive✅ Allowed
GET /v1/conversations/:id/messages✅ Allowed (messages[].archived: true is added)
PATCH /v1/conversations/:id❌ 400 Archived conversations cannot be modified
DELETE /v1/conversations/:id❌ 400 Archived conversations cannot be deleted via this endpoint
POST /v1/chat/completions (continuing an existing conversation)❌ 400 Cannot send messages to an archived conversation
POST /v1/chat/completions/:id/cancel❌ 400 Cannot cancel an archived conversation
POST /v1/conversations/:id/restore✅ Restore to active

GET/v1/conversations

List conversations. Supports cursor-based pagination.

Query Parameters​

ParameterTypeDefaultDescription
limitinteger50Number of items to retrieve (1-100)
cursorstring—Cursor for fetching the next page (cursor value from the previous response)
orderstring"desc""asc" or "desc"
titlestring—Filter by title
modestring"active""active" (regular conversations) or "archive" (archived conversations). Switching mode queries a different data store, so cursor cannot be carried over

Request Example​

List conversations
1curl "https://api.fd.agenticstar.tm.softbank.jp/api/v1/conversations?limit=10&order=desc" \
2-H "Authorization: Bearer <access_token>"

Response Fields (200 OK)​

FieldTypeDescription
conversationsarrayArray of conversation objects
conversations[].conversationIdstringUnique identifier of the conversation (UUID)
conversations[].titlestringConversation title
conversations[].createdAtstringCreation date and time (ISO 8601)
conversations[].updatedAtstringLast updated date and time (ISO 8601)
conversations[].archivedboolean?Whether archived. Always true when retrieved via mode=archive. When mode=active returns this field as true, it is only because the conversation remained in archive state but was returned by the active list — usually omitted
hasMorebooleanWhether the next page exists
cursorstringCursor for fetching the next page. Included only when hasMore is true

Response Example​

JSON
{
"conversations": [
{
"conversationId": "550e8400-e29b-41d4-a716-446655440000",
"title": "Sales data analysis",
"createdAt": "2026-03-14T10:30:00Z",
"updatedAt": "2026-03-14T10:35:00Z"
}
],
"hasMore": true,
"cursor": "eyJrIjoiMjAyNi0wMy0xNFQxMDozMDowMC4wMDBaIn0"
}

Error Response​

StatusDescription
400Invalid limit parameter (outside the range of 1-100), or mode is not "active" / "archive"
403Missing chat:history scope

GET/v1/conversations/:conversationId/messages

Retrieve the message history of a specified conversation. Cursor-based pagination is supported.

Path Parameters​

パラメータ型必須説明
conversationIdstring必須Conversation ID (UUID)

Query Parameters​

ParameterTypeDefaultDescription
limitinteger50Number of items per page (1-100)
cursorstring—Cursor for the next page (the cursor value from the previous response)
orderstring"desc""asc" or "desc"

Request Example​

Get messages
1curl https://api.fd.agenticstar.tm.softbank.jp/api/v1/conversations/550e8400-e29b-41d4-a716-446655440000/messages?order=asc \
2-H "Authorization: Bearer <access_token>"

Response Fields (200 OK)​

FieldTypeDescription
messagesarrayArray of message objects
messages[].conversationIdstringConversation ID (UUID)
messages[].messageIdstringUnique identifier of the message
messages[].senderstringSender. "User" or "AI"
messages[].textstringMessage body text
messages[].createdAtstringCreation date and time (ISO 8601)
messages[].updatedAtstringLast updated date and time (ISO 8601)
messages[].statusobjectMessage processing status
messages[].status.processingbooleanWhether the agent is currently processing
messages[].status.unfinishedbooleanWhether the agent response was interrupted
messages[].tasksarrayArray of tasks executed by the agent (see below)
messages[].deliverablesarrayArray of artifacts generated by the agent. Included only when present
messages[].deliverables[].filenamestringArtifact file name
messages[].deliverables[].filepathstringArtifact file path
messages[].deliverables[].sourcestring"agent" (agent-generated) or "user" (user-uploaded)
messages[].deliverables[].isPrimarybooleanWhether it is a primary artifact
messages[].deliverables[].createdAtstringCreation date and time (ISO 8601 format)
messages[].deliverables[].mimeTypestring?MIME type (e.g., "application/pdf", "text/markdown"). Omitted when it cannot be determined
messages[].deliverables[].sizenumber?File size (bytes). Omitted when 0 or below
messages[].filesarray?Array of user-uploaded files. Included only when present for messages with sender: "User"
messages[].files[].fileIdstringUnique identifier of the file (UUID)
messages[].files[].mimeTypestringMIME type (e.g., "image/png", "application/pdf")
messages[].files[].widthnumber?Image width in pixels. Only for image files
messages[].files[].heightnumber?Image height in pixels. Only for image files
messages[].archivedboolean?true only for messages retrieved via archive. Added when viewing the message history of a conversation retrieved with GET /v1/conversations?mode=archive
hasMorebooleanWhether a next page exists
cursorstringCursor for the next page. Included only when hasMore is true

Task Object​

FieldTypeDescription
messageIdstringID of the message the task belongs to
conversationIdstringID of the conversation the task belongs to
callIdstring?Tool call ID. In Complex Path, multiple tasks share the same callId and identify a sequence of steps for the same tool call
actionTypestringType of task (e.g., tool execution, code generation)
titlestring?Task title. Omitted when not present
descriptionstring?Task description. Omitted when not present
statusstringTask status. One of: "in_progress" / "completed" / "failed" / "error" / "pending"
contentstring?Task execution result text. Omitted when not present
metadataobject?Auxiliary information that varies by actionType (sub_event_type, url, filepath, etc.). See the Streaming Guide for details
filesarray?Files related to the task (filename / size / filepath / mimeType?. mimeType is omitted when it cannot be determined). The array itself is omitted when there are no related files
timestampnumberTimestamp of task execution (Unix milliseconds)
createdAtstringCreation date and time (ISO 8601)
updatedAtstringLast updated date and time (ISO 8601)

UI resources (tasks[].metadata.uiResource)​

When the agent produced a UI (a chart, a map, a card list, etc.) during execution, its metadata is included in metadata.uiResource of the corresponding task. The HTML itself is not included. Retrieve it with the UI resource endpoint.

The object has the same structure as in SSE. For field details, see Streaming Guide — delta.uiResource. The alternative text is in content of the same task (in SSE it is delta.content of the same chunk).

Contents of metadataMeaning
uiResource onlyDisplay-only UI. No user reply is expected.
uiResource + interaction_typeUI that asks for a reply. interaction_type is "choice" or "question". This combination occurs only with origin: "first-party".
interaction_type onlyA reply is requested but no UI is included. interaction_type is "choice" | "confirmation" | "question". The reply instructions are in content of the same task.
optionsArray of choices (up to 10, each up to 200 characters). May be present independently of whether interaction_type is set.
Discrimination differs from SSE

In SSE, delta.uiResource (display-only) and delta.interaction.uiResource (input) are separated structurally. In history and search, both are placed in tasks[].metadata.uiResource. Use the presence of metadata.interaction_type to tell them apart.

JSON
{
"status": "completed",
"content": "Sales have grown for three consecutive quarters.",
"metadata": {
"uiResource": {
"type": "html",
"origin": "first-party",
"altText": "Sales have grown for three consecutive quarters.",
"uri": "ui://widget/chart",
"server_name": "agentic-star-widgets",
"tool_name": "widget_chart",
"tool_call_id": "chart-7f3a2b1c9e4d5a6b7c8d9e0f1a2b3c4d",
"mime_type": "text/html;profile=mcp-app"
}
},
"timestamp": 1788007347240
}

size is not included in history and search responses.

Safely ignore unknown fields

Future implementations may add new fields to actionType / metadata. Client implementations should safely ignore any fields not listed in this table. For detailed metadata structure, refer to the Streaming Guide — Task data model.

Response Example​

JSON
{
"messages": [
{
"conversationId": "550e8400-...",
"messageId": "msg-abc123",
"sender": "User",
"text": "Please analyze the sales data",
"createdAt": "2026-03-14T10:30:00Z",
"updatedAt": "2026-03-14T10:30:00Z",
"status": { "processing": false, "unfinished": false },
"tasks": []
}
],
"hasMore": false
}

Pagination​

Specify limit to fetch items in pages. While hasMore is true, pass the cursor from the response to the next request as-is.

curl
# First page
curl "https://api.fd.agenticstar.tm.softbank.jp/api/v1/conversations/<conversation_id>/messages?limit=50" \\
-H "Authorization: Bearer <access_token>"

# Second page (use the cursor returned by the first page)
curl "https://api.fd.agenticstar.tm.softbank.jp/api/v1/conversations/<conversation_id>/messages?limit=50&cursor=<cursor>" \\
-H "Authorization: Bearer <access_token>"

If limit is omitted, 50 items are returned. To fetch everything, keep following the cursor until hasMore becomes false.

Using the cursor

The cursor represents a position in the result set. Do not change order while you are following the same cursor — changing the conditions changes the target set and causes duplicated or skipped items.

Items may also be duplicated or skipped across pages if messages are added or removed while you are paging.

Error Response​

StatusDescription
400Invalid conversationId format
400limit is not an integer between 1 and 100
400cursor is invalid (not a value from a previous response)
403Missing chat:history scope
404Conversation not found

GET/v1/conversations/:conversationId/ui-resources/:toolCallId

Retrieves the HTML of a UI resource. Pass the tool_call_id found in SSE delta.uiResource, in tasks[].metadata.uiResource of history and search, or in the A2A and MCP responses.

Only type: "html" resources are retrievable. type: "data" carries its payload inline in the original response, so there is no need to call this endpoint for it.

The response is JSON

This endpoint does not return the HTML with Content-Type: text/html. It is not meant to be opened directly in a browser for rendering — it is a retrieval point for your application to fetch the HTML.

Required Scope​

One of chat:exec / a2a:all / mcp:all is required. The scope of the channel through which you received the UI resource is enough. chat:history is not accepted, so a client using only the history API needs one of the scopes above.

Path Parameters​

パラメータ型必須説明
conversationIdstring必須Conversation ID (UUID)
toolCallIdstring必須Identifier of the UI resource — the value of uiResource.tool_call_id. Format: 1-128 characters of alphanumerics, hyphens, and underscores

Request Example​

Get UI resource
1curl https://api.fd.agenticstar.tm.softbank.jp/api/v1/conversations/550e8400-e29b-41d4-a716-446655440000/ui-resources/chart-7f3a2b1c9e4d5a6b7c8d9e0f1a2b3c4d \
2-H "Authorization: Bearer <access_token>"

Response Fields (200 OK)​

FieldTypeDescription
toolCallIdstringThe UI resource identifier given in the request
typestringAlways "html"
originstring"first-party" (produced by AGENTIC STAR) or "external" (produced by an external MCP server approved by your administrator)
mimeTypestringMIME type of the HTML. Normally "text/html;profile=mcp-app"
htmlstringThe HTML source
JSON
{
"toolCallId": "chart-7f3a2b1c9e4d5a6b7c8d9e0f1a2b3c4d",
"type": "html",
"origin": "first-party",
"mimeType": "text/html;profile=mcp-app",
"html": "<!doctype html><html>...</html>"
}

Error Response​

Use code to decide whether a retry makes sense.

StatuscodeDescriptionRetry
400invalid_conversation_idconversationId is not a valid UUIDNo
400invalid_parameterInvalid toolCallId formatNo
403insufficient_scopeNone of chat:exec / a2a:all / mcp:all is presentNo
404not_foundNo such UI resourceNo
404conversation_not_foundNo such conversation, or it belongs to another userNo
404file_too_largeThe HTML exceeds 512KB and cannot be returnedNo (permanent failure)
502upstream_api_errorTemporary retrieval failureYes
500internal_errorOther errorsYes
Notes on rendering

This endpoint returns the HTML as a string, and rendering happens in your own application. For whether you need a sandbox and how it differs by origin, see Streaming Guide — Notes on rendering.

PATCH/v1/conversations/:conversationId

Update the title of a conversation.

Path Parameters​

パラメータ型必須説明
conversationIdstring必須Conversation ID (UUID)

Request Body​

パラメータ型必須説明
titlestring必須New conversation title (200 characters or less)

Request Example​

Update conversation
1curl -X PATCH https://api.fd.agenticstar.tm.softbank.jp/api/v1/conversations/550e8400-e29b-41d4-a716-446655440000 \
2-H "Authorization: Bearer <access_token>" \
3-H "Content-Type: application/json" \
4-d '{ "title": "New title" }'

Response Fields (200 OK)​

FieldTypeDescription
conversationIdstringConversation ID (UUID)
titlestringUpdated title
createdAtstringCreation timestamp (ISO 8601)
updatedAtstringLast update timestamp (ISO 8601)

Response Example​

JSON
{
"conversationId": "550e8400-...",
"title": "New title",
"createdAt": "2026-03-14T10:30:00.000Z",
"updatedAt": "2026-03-14T12:00:00.000Z"
}

Error Response​

StatusDescription
400title is missing, empty, or exceeds 200 characters, or the conversation is archived (code: "conversation_archived")
403Missing chat:history scope
404Conversation not found

DELETE/v1/conversations/:conversationId

Delete a conversation.

Path Parameters​

パラメータ型必須説明
conversationIdstring必須Conversation ID (UUID)

Request Example​

Delete conversation
1curl -X DELETE https://api.fd.agenticstar.tm.softbank.jp/api/v1/conversations/550e8400-e29b-41d4-a716-446655440000 \
2-H "Authorization: Bearer <access_token>"

Response Fields (200 OK)​

FieldTypeDescription
conversationIdstringID of the deleted conversation (UUID)
deletedbooleanAlways true on successful deletion

Response Example​

JSON
{ "conversationId": "550e8400-...", "deleted": true }

Error Response​

StatusDescription
400Invalid conversationId, or the conversation is archived (code: "conversation_archived"; use POST /v1/conversations/:id/restore to restore it)
403Missing chat:history scope
404Conversation not found
409Conversation cannot be deleted because it is currently being processed

POST/v1/conversations/:conversationId/restore

Restore an archived conversation back to active. After restoration, the conversation can be edited, continued, and deleted just like a regular conversation.

Path Parameters​

パラメータ型必須説明
conversationIdstring必須ID of the archived conversation (UUID)

Request Example​

Restore archived conversation
1curl -X POST https://api.fd.agenticstar.tm.softbank.jp/api/v1/conversations/550e8400-e29b-41d4-a716-446655440000/restore \
2-H "Authorization: Bearer <access_token>"

Response Fields (200 OK)​

FieldTypeDescription
conversationIdstringID of the restored conversation (UUID)
restoredbooleanAlways true on successful restoration

Response Example​

JSON
{ "conversationId": "550e8400-...", "restored": true }

Error Response​

StatusDescription
400Invalid conversationId
403Missing chat:history scope
404No matching conversation in archive, or it is already active (archive state is not distinguished)

File Management SaaS Marketplace​

Upload, retrieve, and delete files.

Endpoint List​

メソッドエンドポイント説明Scope (SaaS)
GET/v1/filesList fileschat:file
POST/v1/filesUpload a filechat:file
GET/v1/files/:file_id/contentDownload a filechat:file
DELETE/v1/files/:file_idDelete a filechat:file

Note: The Marketplace edition does not require scopes (authentication only).

POST/v1/files

Upload a file.

Request Body (multipart/form-data)​

パラメータ型必須説明
filefile必須The file to upload. Maximum size 512 MB.
filenamestring必須File name

Request Example​

Upload file
1curl -X POST https://api.fd.agenticstar.tm.softbank.jp/api/v1/files \
2-H "Authorization: Bearer <access_token>" \
3-F "file=@report.pdf" \
4-F "filename=report.pdf"

Response Fields (201 Created)​

FieldTypeDescription
fileIdstringUnique identifier of the file (UUID)
filenamestringFile name
bytesintegerFile size (bytes)
createdAtstringCreation date and time (ISO 8601)
widthintegerImage width (pixels). Only for image files
heightintegerImage height (pixels). Only for image files

Response Example​

JSON
{
"fileId": "550e8400-e29b-41d4-a716-446655440001",
"filename": "report.pdf",
"bytes": 1048576,
"createdAt": "2026-03-14T10:30:00.000Z"
}

Error Response​

StatusDescription
400file or filename parameter is missing, file size exceeds 512 MB, or the uploaded image file is corrupted or invalid
403Missing chat:file scope

GET/v1/files

List files. Cursor-based pagination is supported.

Query Parameters​

ParameterTypeDefaultDescription
limitinteger50Number of items per page (1-100)
cursorstring—Cursor for the next page (the cursor value from the previous response)
orderstring"desc""asc" or "desc"

Request Example​

List files
1curl https://api.fd.agenticstar.tm.softbank.jp/api/v1/files?order=desc \
2-H "Authorization: Bearer <access_token>"

Response Fields (200 OK)​

FieldTypeDescription
filesarrayArray of file objects
files[].fileIdstringUnique identifier of the file (UUID)
files[].filenamestringFile name
files[].bytesintegerFile size (bytes)
files[].createdAtstringCreation date and time (ISO 8601)
files[].widthintegerImage width (pixels). Only for image files
files[].heightintegerImage height (pixels). Only for image files
hasMorebooleanWhether a next page exists
cursorstringCursor for the next page. Included only when hasMore is true

Response Example​

JSON
{
"files": [
{
"fileId": "550e8400-e29b-41d4-a716-446655440001",
"filename": "report.pdf",
"bytes": 1048576,
"createdAt": "2026-03-14T10:30:00.000Z"
}
],
"hasMore": false
}

Pagination​

Specify limit to fetch items in pages. While hasMore is true, pass the cursor from the response to the next request as-is.

curl
# First page
curl "https://api.fd.agenticstar.tm.softbank.jp/api/v1/files?limit=50&order=desc" \\
-H "Authorization: Bearer <access_token>"

# Second page (use the cursor returned by the first page)
curl "https://api.fd.agenticstar.tm.softbank.jp/api/v1/files?limit=50&order=desc&cursor=<cursor>" \\
-H "Authorization: Bearer <access_token>"

If limit is omitted, 50 items are returned. To fetch everything, keep following the cursor until hasMore becomes false.

Using the cursor

The cursor represents a position in the result set. Do not change order while you are following the same cursor — changing the conditions changes the target set and causes duplicated or skipped items.

Items may also be duplicated or skipped across pages if files are added or removed while you are paging.

Error Response​

StatusDescription
400limit is not an integer between 1 and 100
400cursor is invalid (not a value from a previous response)
403Missing chat:file scope

GET/v1/files/:file_id/content

Download a file.

Path Parameters​

パラメータ型必須説明
file_idstring必須File ID (UUID)

Request Example​

Download file
1curl https://api.fd.agenticstar.tm.softbank.jp/api/v1/files/550e8400-e29b-41d4-a716-446655440001/content \
2-H "Authorization: Bearer <access_token>" \
3-o downloaded_file.pdf

Response (200 OK)​

The file binary data is returned as a stream.

Response HeaderDescription
Content-TypeMIME type of the file
Content-LengthFile size (bytes)
Content-Dispositionattachment; filename="filename"

Error Response​

StatusDescription
400Invalid fileId format
403Missing chat:file scope
404File not found

DELETE/v1/files/:file_id

Delete a file.

Path Parameters​

パラメータ型必須説明
file_idstring必須File ID (UUID)

Request Example​

Delete file
1curl -X DELETE https://api.fd.agenticstar.tm.softbank.jp/api/v1/files/550e8400-e29b-41d4-a716-446655440001 \
2-H "Authorization: Bearer <access_token>"

Response Fields (200 OK)​

FieldTypeDescription
fileIdstringID of the deleted file (UUID)
deletedbooleanAlways true on successful deletion

Response Example​

JSON
{ "fileId": "550e8400-e29b-41d4-a716-446655440001", "deleted": true }

Error Response​

StatusDescription
400Invalid fileId format
403Missing chat:file scope
404File not found

Artifact Retrieval SaaS Marketplace​

Retrieve artifact files generated by the agent.

Endpoint List​

メソッドエンドポイント説明Scope (SaaS)
GET/v1/files/proxyGet an artifact filechat:exec / a2a:all / mcp:all

Note: The Marketplace edition does not require scopes (authentication only).

GET/v1/files/proxy

Download an artifact file by specifying the path obtained from deliverables[].filepath in the message history.

Any one of chat:exec / a2a:all / mcp:all is sufficient. Artifacts obtained through an A2A artifact or an MCP tool response can be downloaded here with the scope of that same channel.

Query Parameters​

パラメータ型必須説明
pathstring必須Artifact file path (obtained from deliverables[].filepath in the message history)

Request Example​

Get artifact file
1curl "https://api.fd.agenticstar.tm.softbank.jp/api/v1/files/proxy?path=/path/to/artifact.xlsx" \
2-H "Authorization: Bearer <access_token>" \
3-o artifact.xlsx

Response (200 OK)​

The artifact file binary data is returned as a stream.

Response HeaderDescription
Content-TypeMIME type of the file
Content-LengthFile size (bytes)

Error Response​

StatusDescription
400path parameter is missing or has an invalid format
403None of chat:exec / a2a:all / mcp:all is present
404File not found

Library SaaS​

Lists the user's library files (uploaded files and artifacts generated by the agent) across conversations. A returned filepath can be used to attach a file via Chat input_file or to download it through the artifact endpoint (GET /v1/files/proxy).

Endpoints​

メソッドエンドポイント説明Scope (SaaS)
GET/v1/libraryList library fileschat:exec

GET/v1/library

Retrieves the list of library files. Supports cursor-based pagination.

Query Parameters​

ParameterTypeDefaultDescription
limitinteger50Number of items to retrieve (1–100)
cursorstring—Cursor for the next page (the cursor value from the previous response)
searchstring—Filter by file name (partial match)
sourcestring—Filter by "agent" (agent-generated) or "user" (user-uploaded)
orderstring"desc""asc" or "desc"

Response Fields (200 OK)​

FieldTypeDescription
filesarrayArray of library file objects
files[].filenamestringFile name
files[].filepathstringFile path (used for Chat input_file attachment or download via GET /v1/files/proxy)
files[].sourcestring"agent" (agent-generated) or "user" (user-uploaded)
files[].createdAtstringCreation timestamp (ISO 8601)
files[].updatedAtstringLast update timestamp (ISO 8601)
files[].mimeTypestring?MIME type. Omitted when it cannot be determined
files[].sizenumber?File size in bytes. Omitted when unavailable
files[].conversationIdstring?Associated conversation ID. Included only when the artifact is tied to a conversation
hasMorebooleanWhether a next page exists
cursorstringCursor for the next page. Included only when hasMore is true

Response Example​

JSON
{
"files": [
{
"filename": "report.xlsx",
"filepath": "/path/to/report.xlsx",
"source": "agent",
"createdAt": "2026-03-14T10:30:00.000Z",
"updatedAt": "2026-03-14T10:30:00.000Z",
"mimeType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"size": 20480,
"conversationId": "550e8400-e29b-41d4-a716-446655440000"
}
],
"hasMore": false
}

Error Responses​

StatusDescription
400Invalid limit (out of 1–100 range), cursor, or source (other than "agent" / "user")
403Missing chat:exec scope

Skills SaaS​

Lists the skills that can be specified when running a chat. Use a returned skillId in the Chat skillIds parameter to load skills into the agent.

Use GET /v1/skills for skills you registered yourself, and GET /v1/skills/shared for skills shared publicly by other users. Shared skills can be specified in skillIds directly without copying them.

Endpoint List​

メソッドエンドポイント説明Scope (SaaS)
GET/v1/skillsList your skillschat:exec
GET/v1/skills/sharedList shared skillschat:exec

GET/v1/skills

Lists the skills you registered, ordered by last update time (newest first). Cursor-based pagination is supported.

Query Parameters​

ParameterTypeDefaultDescription
active_onlybooleantrueSet to false to also include deactivated skills
limitinteger50Number of items per page (1-100)
cursorstring—Cursor for the next page (the cursor value from the previous response)

Response Fields (200 OK)​

FieldTypeDescription
skillsarrayArray of skill objects
skills[].skillIdstringSkill ID (specify this in the Chat skillIds parameter)
skills[].namestringSkill name
skills[].descriptionstring?Skill description
skills[].categorystring?Category
skills[].tagsarrayArray of tags. An empty array when unset
skills[].isSharedbooleanWhether you share the skill publicly
skills[].isActivebooleanWhether the skill is active
skills[].createdAtstringCreation time (ISO 8601)
skills[].updatedAtstringLast update time (ISO 8601)
hasMorebooleanWhether a next page exists
cursorstringCursor for the next page. Included only when hasMore is true

Response Example​

JSON
{
"skills": [
{
"skillId": "3f2a4b6c-1d2e-4f5a-8b9c-0d1e2f3a4b5c",
"name": "release-notes",
"description": "Generate release notes",
"category": "devops",
"tags": ["ci"],
"isShared": false,
"isActive": true,
"createdAt": "2026-08-01T03:12:45.123Z",
"updatedAt": "2026-08-05T09:00:00.000Z"
}
],
"hasMore": false
}

Pagination​

While hasMore is true, pass the cursor from the response to the next request as-is.

curl
# First page
curl "https://api.fd.agenticstar.tm.softbank.jp/api/v1/skills?limit=50" \
-H "Authorization: Bearer <access_token>"

# Second page (use the cursor returned by the first page)
curl "https://api.fd.agenticstar.tm.softbank.jp/api/v1/skills?limit=50&cursor=<cursor>" \
-H "Authorization: Bearer <access_token>"

To fetch everything, keep following the cursor until hasMore becomes false.

Using the cursor

The cursor represents a position in the result set. Do not change active_only while you are following the same cursor — changing the conditions changes the target set and causes duplicated or skipped items.

Items may also be duplicated or skipped across pages if skills are added or removed while you are paging.

Error Responses​

StatusDescription
400limit is not an integer between 1 and 100
400cursor is invalid (not a value from a previous response)
403Missing chat:exec scope

GET/v1/skills/shared

Lists publicly shared skills (including skills you shared yourself), ordered by creation time (newest first). Cursor-based pagination is supported.

Query Parameters​

ParameterTypeDefaultDescription
limitinteger50Number of items per page (1-100)
cursorstring—Cursor for the next page (the cursor value from the previous response)

Response Fields (200 OK)​

Shared skills are always active, so the isShared / isActive fields are not included.

FieldTypeDescription
skillsarrayArray of skill objects
skills[].skillIdstringSkill ID (specify this in the Chat skillIds parameter)
skills[].namestringSkill name
skills[].descriptionstring?Skill description
skills[].categorystring?Category
skills[].tagsarrayArray of tags. An empty array when unset
skills[].createdAtstringCreation time (ISO 8601)
skills[].updatedAtstringLast update time (ISO 8601)
hasMorebooleanWhether a next page exists
cursorstringCursor for the next page. Included only when hasMore is true

Response Example​

JSON
{
"skills": [
{
"skillId": "9c8b7a6d-5e4f-4a3b-8c1d-2e3f4a5b6c7d",
"name": "sql-review",
"description": "Review SQL statements",
"category": null,
"tags": [],
"createdAt": "2026-07-20T00:00:00.000Z",
"updatedAt": "2026-08-09T00:00:00.000Z"
}
],
"hasMore": false
}

Error Responses​

StatusDescription
400limit is not an integer between 1 and 100
400cursor is invalid (not a value from a previous response)
403Missing chat:exec scope

Playbooks SaaS​

Lists your playbooks. Use a returned playbookId in the Chat playbookId parameter to run the agent with a predefined procedure.

Endpoint List​

メソッドエンドポイント説明Scope (SaaS)
GET/v1/playbooksList playbookschat:exec

GET/v1/playbooks

Lists playbooks, ordered by usage count (then by creation time, newest first). Cursor-based pagination is supported.

Query Parameters​

ParameterTypeDefaultDescription
active_onlybooleantrueSet to false to also include deactivated playbooks
limitinteger50Number of items per page (1-100)
cursorstring—Cursor for the next page (the cursor value from the previous response)

Response Fields (200 OK)​

FieldTypeDescription
playbooksarrayArray of playbook objects
playbooks[].playbookIdstringPlaybook ID (specify this in the Chat playbookId parameter)
playbooks[].namestringPlaybook name
playbooks[].descriptionstring?Description
playbooks[].categorystring?Category
playbooks[].tagsarrayArray of tags
playbooks[].stepsarrayArray of steps
playbooks[].steps[].titlestringStep title
playbooks[].steps[].descriptionstringStep description
playbooks[].steps[].guidancearray?Array of supplementary instructions
playbooks[].steps[].successstring?Completion criteria
playbooks[].sourceConversationIdstring?ID of the conversation the playbook was created from
playbooks[].isSharedbooleanWhether the playbook is shared
playbooks[].isActivebooleanWhether the playbook is active
playbooks[].usageCountnumberNumber of times used
playbooks[].copyCountnumberNumber of times copied
playbooks[].createdAtstringCreation time (ISO 8601)
playbooks[].updatedAtstringLast update time (ISO 8601)
hasMorebooleanWhether a next page exists
cursorstringCursor for the next page. Included only when hasMore is true

Response Example​

JSON
{
"playbooks": [
{
"playbookId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "Weekly report",
"description": "Generate a weekly report from sales data",
"category": "Reporting",
"tags": ["sales", "weekly"],
"steps": [
{
"title": "Fetch data",
"description": "Fetch sales data for the target period",
"guidance": ["From Monday to Sunday of the previous week"],
"success": "At least one record was fetched"
}
],
"sourceConversationId": "550e8400-e29b-41d4-a716-446655440000",
"isShared": false,
"isActive": true,
"usageCount": 12,
"copyCount": 0,
"createdAt": "2026-08-01T03:12:45.123Z",
"updatedAt": "2026-08-05T09:00:00.000Z"
}
],
"hasMore": false
}

Pagination​

While hasMore is true, pass the cursor from the response to the next request as-is.

curl
# First page
curl "https://api.fd.agenticstar.tm.softbank.jp/api/v1/playbooks?limit=50" \
-H "Authorization: Bearer <access_token>"

# Second page (use the cursor returned by the first page)
curl "https://api.fd.agenticstar.tm.softbank.jp/api/v1/playbooks?limit=50&cursor=<cursor>" \
-H "Authorization: Bearer <access_token>"

To fetch everything, keep following the cursor until hasMore becomes false.

Using the cursor

The cursor represents a position in the result set. Do not change active_only while you are following the same cursor — changing the conditions changes the target set and causes duplicated or skipped items.

Items may also be duplicated or skipped across pages if playbooks are added or removed while you are paging.

Error Responses​

StatusDescription
400limit is not an integer between 1 and 100
400cursor is invalid (not a value from a previous response)
403Missing chat:exec scope

Full-text search messages.

Endpoint List​

メソッドエンドポイント説明Scope (SaaS)
GET/v1/search/messagesFull-text search messageschat:history

Note: The Marketplace edition does not require scopes (authentication only).

GET/v1/search/messages

Full-text search messages.

Query Parameters​

パラメータ型必須説明
qstring必須Search query
orderstring—Sort order. "asc" (ascending) or "desc" (descending, default)

Request Example​

Search messages
1curl "https://api.fd.agenticstar.tm.softbank.jp/api/v1/search/messages?q=sales" \
2-H "Authorization: Bearer <access_token>"

Response Fields (200 OK)​

FieldTypeDescription
messagesarrayArray of search result messages (up to 50)
messages[].conversationIdstringConversation ID (UUID)
messages[].messageIdstringUnique identifier of the message
messages[].textstringMessage body text
messages[].titlestringConversation title
messages[].senderstringSender. "User" or "AI"
messages[].createdAtstringCreation date and time (ISO 8601)
messages[].updatedAtstringLast updated date and time (ISO 8601)
messages[].matchedQueriesarrayArray of matched search queries
messages[].statusobjectMessage processing status
messages[].status.processingbooleanWhether the agent is currently processing
messages[].status.unfinishedbooleanWhether the agent response was interrupted
messages[].tasksarrayArray of tasks executed by the agent. See the Task object under GET /v1/conversations/:conversationId/messages for field definitions
messages[].deliverablesarrayArray of artifacts generated by the agent (included only when present)
messages[].deliverables[].filenamestringArtifact file name
messages[].deliverables[].filepathstringArtifact file path
messages[].deliverables[].sourcestring"agent" (agent-generated) or "user" (user-uploaded)
messages[].deliverables[].isPrimarybooleanWhether it is a primary artifact
messages[].deliverables[].createdAtstringCreation date and time (ISO 8601 format)
messages[].deliverables[].mimeTypestring?MIME type (e.g., "application/pdf", "text/markdown"). Omitted when it cannot be determined
messages[].deliverables[].sizenumber?File size (bytes). Omitted when 0 or below
messages[].filesarray?Array of user-uploaded files. Included only when present for messages with sender: "User". The field structure matches the history API (fileId / mimeType / width? / height?). See GET /v1/conversations/:id/messages for details
hasMorebooleanAlways false (pagination not supported)

Response Example​

JSON
{
"messages": [
{
"conversationId": "550e8400-...",
"messageId": "msg-abc123",
"text": "Result of sales data analysis...",
"title": "Sales data analysis",
"sender": "AI",
"createdAt": "2026-03-14T10:30:00Z",
"updatedAt": "2026-03-14T10:35:00Z",
"matchedQueries": ["sales"],
"tasks": []
}
],
"hasMore": false
}

Error Response​

StatusDescription
400q parameter is missing
403Missing chat:history scope

User SaaS​

Retrieve, update user information, and change password.

Endpoint List​

メソッドエンドポイント説明
GET/v1/userGet user information
PATCH/v1/userUpdate user information
POST/v1/user/passwordChange password

GET/v1/user

Get user information.

Request Example​

Get user
1curl https://api.fd.agenticstar.tm.softbank.jp/api/v1/user \
2-H "Authorization: Bearer <access_token>"

Response Fields (200 OK)​

FieldTypeDescription
userIdstringUnique identifier of the user
emailstringEmail address
usernamestringUsername
emailVerifiedbooleanEmail verification status
createdAtstringAccount creation date and time (ISO 8601)
isApprovedbooleanAccount approval status
rolestringUser role
organizationobjectOrganization (included only when set)
organization.valuestringOrganization code
organization.labelstringOrganization name
jobTypeobjectJob type (included only when set)
jobType.valuestringJob type code
jobType.labelstringJob type name
biostringBio (included only when set)
lastLoginAtstringLast login date and time (ISO 8601, included only when present)

Response Example​

JSON
{
"userId": "user-abc123",
"email": "tanaka@example.com",
"username": "John Doe",
"emailVerified": true,
"createdAt": "2026-03-10T09:00:00.000Z",
"isApproved": true,
"role": "user",
"organization": { "value": "eng", "label": "Engineering Department" },
"jobType": { "value": "dev", "label": "Developer" },
"bio": "AI Engineer",
"lastLoginAt": "2026-03-14T10:00:00.000Z"
}

PATCH/v1/user

Update user information.

Request Body​

パラメータ型必須説明
usernamestring—Username
organizationstring—Organization code
jobTypestring—Job type code
biostring—Bio

Request Example​

Update user
1curl -X PATCH https://api.fd.agenticstar.tm.softbank.jp/api/v1/user \
2-H "Authorization: Bearer <access_token>" \
3-H "Content-Type: application/json" \
4-d '{ "username": "John Doe", "bio": "Engineering Department" }'

Response Fields (200 OK)​

Returns the same user object as GET /v1/user (with updated values).

Response Example​

JSON
{
"userId": "user-abc123",
"email": "tanaka@example.com",
"username": "John Doe",
"emailVerified": true,
"createdAt": "2026-03-10T09:00:00.000Z",
"isApproved": true,
"role": "user",
"organization": { "value": "eng", "label": "Engineering Department" },
"jobType": { "value": "dev", "label": "Developer" },
"bio": "Engineering Department",
"lastLoginAt": "2026-03-14T10:00:00.000Z"
}

Error Response​

StatusDescription
400No fields specified for update

POST/v1/user/password

Change password.

Request Body​

パラメータ型必須説明
currentPasswordstring必須Current password
newPasswordstring必須New password
confirmPasswordstring必須New password (confirmation)

Request Example​

Change password
1curl -X POST https://api.fd.agenticstar.tm.softbank.jp/api/v1/user/password \
2-H "Authorization: Bearer <access_token>" \
3-H "Content-Type: application/json" \
4-d '{
5 "currentPassword": "OldPass123!",
6 "newPassword": "NewPass456!",
7 "confirmPassword": "NewPass456!"
8}'

Response Fields (200 OK)​

FieldTypeDescription
userIdstringUnique identifier of the user
changedbooleanAlways true on successful password change

Response Example​

JSON
{ "userId": "user-abc123", "changed": true }

Error Response​

StatusDescription
400Missing required parameters or password validation failed
401Authentication token is invalid or current password is incorrect

Master Data SaaS​

Retrieve master data such as organizations and job types.

Endpoint List​

メソッドエンドポイント説明
GET/v1/organizationsList organizations
GET/v1/job-typesList job types
GET/v1/personasList personas

GET/v1/organizations

List organizations. Inactive organizations are not included.

Request Example​

List organizations
1curl https://api.fd.agenticstar.tm.softbank.jp/api/v1/organizations \
2-H "Authorization: Bearer <access_token>"

Response Fields (200 OK)​

FieldTypeDescription
organizationsarrayArray of organization objects
organizations[].valuestringOrganization code
organizations[].labelstringOrganization name
hasMorebooleanAlways false (pagination not supported)

Response Example​

JSON
{
"organizations": [
{ "value": "eng", "label": "Engineering Department" },
{ "value": "sales", "label": "Sales Department" }
],
"hasMore": false
}

GET/v1/job-types

List job types. Inactive job types are not included.

Request Example​

List job types
1curl https://api.fd.agenticstar.tm.softbank.jp/api/v1/job-types \
2-H "Authorization: Bearer <access_token>"

Response Fields (200 OK)​

FieldTypeDescription
jobTypesarrayArray of job type objects
jobTypes[].valuestringJob type code
jobTypes[].labelstringJob type name
hasMorebooleanAlways false (pagination not supported)

Response Example​

JSON
{
"jobTypes": [
{ "value": "dev", "label": "Developer" },
{ "value": "pm", "label": "Project Manager" }
],
"hasMore": false
}

GET/v1/personas

Retrieves the list of personas (agent response personalities). Use a returned personaKey to specify a persona in Chat / MCP / A2A.

Query Parameters​

ParameterTypeDefaultDescription
localestringPlatform default languageDisplay language for name / description (e.g., "ja", "en")

Response Fields (200 OK)​

FieldTypeDescription
localestringThe resolved locale
personasarrayArray of persona objects
personas[].personaKeystringPersona identifier (specify as personaKey in Chat / MCP / A2A)
personas[].namestringPersona display name
personas[].descriptionstringPersona description
hasMorebooleanAlways false (pagination not supported)

Response Example​

JSON
{
"locale": "en",
"personas": [
{ "personaKey": "concise", "name": "Concise", "description": "Answers concisely, focusing on key points" }
],
"hasMore": false
}

Error Responses​

HTTP Status Codes​

HTTP status codes that may be returned by all endpoints.

StatusDescription
400 Bad RequestInvalid request parameters
401 UnauthorizedToken is invalid or missing
403 ForbiddenNo access permission to the resource
404 Not FoundResource does not exist
409 ConflictOperation conflict, such as the resource currently being processed
413 Payload Too LargeRequest body exceeds the size limit
429 Too Many RequestsRate limit exceeded. error.type is server_error and error.code is rate_limit_exceeded. Please wait and retry.
500 Internal Server ErrorInternal server error
502 Bad GatewayCommunication error with upstream services (authentication / chat backends, etc.)
503 Service UnavailableService temporarily unavailable
504 Gateway TimeoutUpstream service response timeout

Error Response Format​

All error responses are returned in the following common structure.

FieldTypeDescription
error.typestringError classification. One of: "invalid_request_error", "authentication_error", "insufficient_scope_error", "forbidden_error", "not_found_error", "conflict_error", "payload_too_large_error", "server_error", "upstream_error"
error.messagestringHuman-readable error message
error.codestringMachine-processable error code (e.g., "missing_parameter", "invalid_parameter", "invalid_token")
error.paramstringThe parameter that caused the error. Included only for validation errors
error.suggested_actionstringRecommended action to take. Included only for some errors
JSON
{
"error": {
"type": "invalid_request_error",
"message": "Invalid parameter: limit",
"code": "invalid_parameter",
"param": "limit",
"suggested_action": "limit must be between 1 and 100"
}
}