Bearer key · JSON
POST /api/v1/psd/inspect
curl -s -X POST https://getattest.com.au/api/v1/psd/inspect \
-H "authorization: Bearer $ATTEST_API_KEY" \
-H "content-type: application/json" \
-d '{}'
Send the key as a bearer token in the authorization header. One key and one credit balance cover every service, including Attest Capture. A failed call is refunded automatically. No key yet? POST /api/v1/keys issues one with 25 free credits and no signup — see the key guide.
For agents
Use when
Use this when a task needs to know what is inside a .psd or .psb without opening Photoshop: canvas size, colour mode and profile, the layer tree with blend modes and effects, which layers are text (and the fonts they need), smart objects, adjustment layers and guides, with an optional small PNG preview. Bitmap, grayscale, indexed and RGB files only.
Not documented yet: a captured example response. This page only shows what the module publishes about itself, so the missing parts are absent rather than guessed at.
5 fields
Input
Scroll the table horizontally to see all fields.
Field / Type / Required / What it does| Field | Type | Required | What it does |
|---|
url | string | Optional | A public http(s) .psd or .psb URL. Exactly one of url or file_base64. |
|---|
file_base64 | string | Optional | The file as base64. |
|---|
include_preview | boolean | Optional | Also return a small PNG preview of the composite. |
|---|
include_text | boolean | Optional | Also return the text content of text layers. |
|---|
preview_max_px | integer | Optional | Longest side of the preview, when one is asked for. |
|---|
HTTP 200
Response
Every successful response also carries call_id (your receipt for the charge), credits_charged and credits_remaining.
Scroll the table horizontally to see all fields.
Field / What it holds| Field | What it holds |
|---|
format | psd or psb. |
|---|
width | Canvas width. |
|---|
height | Canvas height. |
|---|
mode | Colour mode. Bitmap, grayscale, indexed and RGB are readable. |
|---|
bit_depth | Bits per channel. |
|---|
channels | Channel count. |
|---|
resolution | The document resolution. |
|---|
color_profile | The embedded colour profile, when there is one. |
|---|
layers | The layer tree with blend modes, effects, smart objects and adjustment layers. |
|---|
fonts | The fonts the text layers need. |
|---|
guides | Guides saved in the document. |
|---|
created_with | The writer name stored in the file. |
|---|
preview_base64 | The PNG preview, when one was asked for and could be built. |
|---|
limits | The byte, layer, text, font and preview budgets this read applied. |
|---|
Machine-readable failures
Errors
Errors return JSON such as {"error":"invalid_api_key"}. A failed call is refunded automatically.
Scroll the table horizontally to see all fields.
Code / Status / Meaning| Code | Status | Meaning |
|---|
url_or_file_required | 400 | Neither url nor file_base64 was sent. |
|---|
url_and_file_conflict | 400 | Both url and file_base64 were sent. |
|---|
file_empty | 400 | The file decoded to nothing. |
|---|
invalid_psd | 400 | The bytes are not a readable Photoshop file. |
|---|
color_mode_not_supported | 400 | The colour mode is not one this reader handles. |
|---|
invalid_file_base64 | 400 | file_base64 is not decodable base64. |
|---|
file_too_large | 413 | The file is past the byte cap. |
|---|
fetch_failed | 502 | The URL did not answer. Not charged. |
|---|
On every service
Scroll the table horizontally to see all fields.
Code / Status / Meaning| Code | Status | Meaning |
|---|
invalid_api_key | 401 | The authorization header is missing or the key is unknown. |
|---|
insufficient_credits | 402 | The balance is below this call's cost. The response carries credits_required and credits_remaining. |
|---|
rate_limit_exceeded | 429 | Free keys share 10 calls a minute across every service. The response carries limit and window_seconds. |
|---|
services_unavailable | 503 | The credit store could not be reached. Retry once after 30 seconds. |
|---|
4 worked examples
Examples
Where the answer comes from
Source and scope
Read from the file's own Photoshop structures with the ag-psd reader. It reports what the file declares about itself, not that it opens cleanly in any particular Photoshop version.
Attest reports what it read, with the source it read it from. It is general information, not advice, and not a legal record.
All Attest tools · Service list as JSON · OpenAPI