Sign Customiser

Navigation

Dark mode

AI sign designs

get_ai_sign_design_source

read

Get AI sign design source

Copy page

Confirm that the bytes of a source arrived, or find out why verification rejected them.

Overview

Read the status of an AI sign design source created through the current connection. uploaded means the bytes arrived and are not yet verified; consumed means a design verified and used them; rejected gives the verification failure code. It never returns the presigned target. Requires ai_sign_designs:read. Has no side effects.

Permission

Requires theai_sign_designs:readpermission. A connection without it answersinsufficient_scopenaming the permission to approve.

Annotations

readOnlyHinttrue
destructiveHintfalse
idempotentHinttrue
openWorldHintfalse

Prerequisites

  • Use a source id created through the current connection, including after token refresh.
  • A merchant has connected this store and approved the ai_sign_designs:read scope.

Arguments

source_idstringrequired

The source id create_ai_sign_design_source returned.

Result

One source record. The presigned target and its headers are deliberately omitted; they are returned only once, by create_ai_sign_design_source.

request_idstringalways present
storeobjectalways present
store.idintegeralways present
store.namestringalways present
source_idstringalways present
filenamestring
content_typestring
byte_sizeinteger
statusstringalways present

pending, uploaded (arrived, not verified), consumed (verified and used), rejected or expired. Expected to grow: tolerate unknown values.

One of: pending, uploaded, consumed, rejected, expired

verification_failure_codestring or null

Why verification rejected the bytes, or null. Expected to grow.

One of: size_mismatch, too_large, content_type_mismatch, dimensions_exceeded, pixel_limit_exceeded, undecodable

width_pxinteger or null
height_pxinteger or null
expires_atstring
consumed_atstring or null
created_atstring

Error cases

insufficient_scope

The connection was approved without ai_sign_designs:read.

resource_not_found

The id is unknown, expired and pruned, or belongs to another connection or store.

Poll a source whose bytes have arrived

tools/call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_ai_sign_design_source",
    "arguments": {
      "source_id": "aisrc_9f2c4b7ad13e6058ba41cd4201"
    }
  }
}
result
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "structuredContent": {
      "request_id": "req_01jz9x2k7c8f3m5n6p7q8r9s0t",
      "store": {
        "id": 12,
        "name": "Demo Signs"
      },
      "source_id": "aisrc_9f2c4b7ad13e6058ba41cd4201",
      "filename": "shopfront-logo.png",
      "content_type": "image/png",
      "byte_size": 482133,
      "status": "uploaded",
      "verification_failure_code": null,
      "width_px": null,
      "height_px": null,
      "expires_at": "2026-10-21T09:30:00Z",
      "consumed_at": null,
      "created_at": "2026-10-20T09:30:00Z"
    }
  }
}

A source id this connection does not own (error)

tools/call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_ai_sign_design_source",
    "arguments": {
      "source_id": "aisrc_00000000000000000000000000"
    }
  }
}
result
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "isError": true,
    "structuredContent": {
      "error": {
        "code": "resource_not_found",
        "title": "Resource not found",
        "detail": "The requested resource does not exist or does not belong to the authenticated store.",
        "recovery": "The identifier does not exist in this store. Use the matching list tool to rediscover a valid id."
      }
    }
  }
}

Type a question and press Enter. Use the arrow keys to move between the results.