curl -X POST https://api.legitmark.com/api/v2/sr \
-H 'Authorization: Bearer leo_your_api_key' \
-H 'Content-Type: application/json' \
-d '{
"external_id": "ITEM-2024-0891",
"service": "31670fe9-9272-11ef-b98d-06fb0f2a63e5",
"item": {
"category": "cc30b104-7c47-11ef-a623-02595575faeb",
"type": "95e42d6b-7c4f-11ef-a623-02595575faeb",
"brand": "brand-uuid-here"
}
}'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
external_id: 'ITEM-2024-0891',
service: '31670fe9-9272-11ef-b98d-06fb0f2a63e5',
item: {
category: 'cc30b104-7c47-11ef-a623-02595575faeb',
type: '95e42d6b-7c4f-11ef-a623-02595575faeb',
brand: 'brand-uuid-here'
}
})
};
fetch('https://api.legitmark.com/api/v2/sr', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
response = requests.post(
'https://api.legitmark.com/api/v2/sr',
headers={
'Authorization': 'Bearer leo_your_api_key',
'Content-Type': 'application/json',
},
json={
'external_id': 'ITEM-2024-0891',
'service': '31670fe9-9272-11ef-b98d-06fb0f2a63e5',
'item': {
'category': 'cc30b104-7c47-11ef-a623-02595575faeb', # Bag
'type': '95e42d6b-7c4f-11ef-a623-02595575faeb', # Crossbody
'brand': 'brand-uuid-here',
},
},
)
sr = response.json()['sr']
print(f"Created: {sr['uuid']}")package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.legitmark.com/api/v2/sr"
payload := strings.NewReader("{\n \"external_id\": \"ITEM-2024-0891\",\n \"service\": \"31670fe9-9272-11ef-b98d-06fb0f2a63e5\",\n \"item\": {\n \"category\": \"cc30b104-7c47-11ef-a623-02595575faeb\",\n \"type\": \"95e42d6b-7c4f-11ef-a623-02595575faeb\",\n \"brand\": \"brand-uuid-here\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"success": true,
"message": "Service request initiated successfully.",
"sr": {
"uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"active": true,
"migrated": false,
"micro_id": "998001",
"legacy_id": null,
"external_id": "ITEM-2024-0891",
"tab": "DRAFT",
"source": "api",
"partner_code": null,
"state": {
"primary": "DRAFT",
"supplement": null
},
"summary": {
"style": "Crossbody",
"style_id": "95e42d6b-7c4f-11ef-a623-02595575faeb"
},
"user": "user-uuid",
"service": "31670fe9-9272-11ef-b98d-06fb0f2a63e5",
"created_at": "2026-01-15T10:30:00.000Z",
"updated_at": "2026-01-15T10:30:00.000Z",
"drafted_at": "2026-01-15T10:30:00.000Z"
}
}{
"success": false,
"error": {
"code": 123,
"timestamp": "2023-11-07T05:31:56Z",
"message": "<string>",
"details": "<string>"
}
}{
"success": false,
"error": {
"code": 123,
"timestamp": "2023-11-07T05:31:56Z",
"message": "<string>",
"details": "<string>"
}
}{
"success": false,
"error": {
"code": 429,
"timestamp": "2023-11-07T05:31:56Z",
"message": "Rate limit exceeded",
"details": {
"limit_type": "partner_level",
"current_usage": 1001,
"limit": 1000,
"reset_time": "2024-01-01T00:01:00.000Z",
"retry_after_seconds": 60
}
}
}Create SR
Create a draft service request.
By default the response contains a minimal sr object (uuid, micro_id, state, etc.) — not photo requirements or sides. To fetch requirements after create, call Get Full SR with ?item=true&sides=true&requirements=true.
Optionally pass ?item=true&sides=true on this request to include the side lists and upload progress inline. Note that sides=true has no effect without item=true, and requirements=true is ignored on this endpoint — use Get Full SR for that.
Note: The response key is
sr, notdata. Sendexternal_idin the request body; webhooks expose it asreference_id. Theitemobject is required.
curl -X POST https://api.legitmark.com/api/v2/sr \
-H 'Authorization: Bearer leo_your_api_key' \
-H 'Content-Type: application/json' \
-d '{
"external_id": "ITEM-2024-0891",
"service": "31670fe9-9272-11ef-b98d-06fb0f2a63e5",
"item": {
"category": "cc30b104-7c47-11ef-a623-02595575faeb",
"type": "95e42d6b-7c4f-11ef-a623-02595575faeb",
"brand": "brand-uuid-here"
}
}'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
external_id: 'ITEM-2024-0891',
service: '31670fe9-9272-11ef-b98d-06fb0f2a63e5',
item: {
category: 'cc30b104-7c47-11ef-a623-02595575faeb',
type: '95e42d6b-7c4f-11ef-a623-02595575faeb',
brand: 'brand-uuid-here'
}
})
};
fetch('https://api.legitmark.com/api/v2/sr', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
response = requests.post(
'https://api.legitmark.com/api/v2/sr',
headers={
'Authorization': 'Bearer leo_your_api_key',
'Content-Type': 'application/json',
},
json={
'external_id': 'ITEM-2024-0891',
'service': '31670fe9-9272-11ef-b98d-06fb0f2a63e5',
'item': {
'category': 'cc30b104-7c47-11ef-a623-02595575faeb', # Bag
'type': '95e42d6b-7c4f-11ef-a623-02595575faeb', # Crossbody
'brand': 'brand-uuid-here',
},
},
)
sr = response.json()['sr']
print(f"Created: {sr['uuid']}")package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.legitmark.com/api/v2/sr"
payload := strings.NewReader("{\n \"external_id\": \"ITEM-2024-0891\",\n \"service\": \"31670fe9-9272-11ef-b98d-06fb0f2a63e5\",\n \"item\": {\n \"category\": \"cc30b104-7c47-11ef-a623-02595575faeb\",\n \"type\": \"95e42d6b-7c4f-11ef-a623-02595575faeb\",\n \"brand\": \"brand-uuid-here\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"success": true,
"message": "Service request initiated successfully.",
"sr": {
"uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"active": true,
"migrated": false,
"micro_id": "998001",
"legacy_id": null,
"external_id": "ITEM-2024-0891",
"tab": "DRAFT",
"source": "api",
"partner_code": null,
"state": {
"primary": "DRAFT",
"supplement": null
},
"summary": {
"style": "Crossbody",
"style_id": "95e42d6b-7c4f-11ef-a623-02595575faeb"
},
"user": "user-uuid",
"service": "31670fe9-9272-11ef-b98d-06fb0f2a63e5",
"created_at": "2026-01-15T10:30:00.000Z",
"updated_at": "2026-01-15T10:30:00.000Z",
"drafted_at": "2026-01-15T10:30:00.000Z"
}
}{
"success": false,
"error": {
"code": 123,
"timestamp": "2023-11-07T05:31:56Z",
"message": "<string>",
"details": "<string>"
}
}{
"success": false,
"error": {
"code": 123,
"timestamp": "2023-11-07T05:31:56Z",
"message": "<string>",
"details": "<string>"
}
}{
"success": false,
"error": {
"code": 429,
"timestamp": "2023-11-07T05:31:56Z",
"message": "Rate limit exceeded",
"details": {
"limit_type": "partner_level",
"current_usage": 1001,
"limit": 1000,
"reset_time": "2024-01-01T00:01:00.000Z",
"retry_after_seconds": 60
}
}
}sr object. Use Get Full SR with ?item=true&sides=true&requirements=true for photo requirements. Passing ?item=true&sides=true on Create returns side lists and upload progress only.Authorizations
Bearer token authentication. Use your API key in the format: Bearer leo_xxxxxxxx
Query Parameters
Re-fetch the created SR with item details in the response.
Include sides with required/optional separation and upload progress. Requires item=true.
Include summary information (first_line, second_line, thumbnail).
Body
Hide child attributes
Hide child attributes
Category UUID from taxonomy
"cc30b104-7c47-11ef-a623-02595575faeb"
Type UUID from taxonomy
"95e42d6b-7c4f-11ef-a623-02595575faeb"
Defined item UUID from the Legitmark catalog. When set, category/type/brand are resolved from the catalog item.
Brand UUID from taxonomy. Recommended for accurate side requirements.
Model UUID from taxonomy. When set, category/type/brand may be inferred from the model.
Your internal identifier for the item (e.g., SKU, inventory ID, or product code). Returned as reference_id in webhook payloads.
"ITEM-2024-0891"
Service UUID (luxury, sneakers, etc.). Optional — if omitted, auto-resolved based on your organization and item type.
"31670fe9-9272-11ef-b98d-06fb0f2a63e5"
Source platform identifier (e.g., api, shopify).
"api"
Partner code if submitted via partner integration.
Response
Service request created successfully
true
"Service request initiated successfully."
Created service request
Hide child attributes
Hide child attributes
Service request identifier
Whether the service request is active
Whether migrated from legacy system
Short numeric identifier
Legacy system identifier
External reference ID from partner system
Current tab/workflow state
DRAFT, QC, UNDERWAY, COMPLETE, CANCELLED Source application
Partner code if submitted via partner integration
User UUID who created the SR
Service UUID
Timestamp when the SR was drafted