Skip to main content

// developers · rest

Every operation, with what it needs and what it may do.

188 operations: 106 read, 48 automatic write, 34 proposed write. Each one is a POST with a JSON body, described in the OpenAPI document with the scope it needs and the risk tier that decides whether it applies or waits for approval.

// call

A read and a proposed write.

read · orders:read
curl -X POST https://app.magistry.io/api/v1/tools/get_orders \
  -H "Authorization: Bearer mag_sk_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "window_days": 7, "limit": 20 }'
proposed write · catalog:write
curl -X POST https://app.magistry.io/api/v1/tools/shopify_update_variant_price \
  -H "Authorization: Bearer mag_sk_live_…" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: reprice-2026-10-20-001" \
  -d '{ "shopify_variant_id": "gid://shopify/ProductVariant/…", "new_price": 34.95 }'

A proposed write returns an approval card instead of changing the store. Send an Idempotency-Key header (or an idempotency_key argument) on any write so a retry after a timeout cannot apply twice. The full schemas live in the OpenAPI document:

openapi
curl https://app.magistry.io/api/v1/openapi.json

// tiers

Three risk tiers.

TierOperationsWhat happens
read106Answers and changes nothing.
automatic write48Applies when the credential carries the write scope.
proposed write34Creates an approval card. Nothing changes until a person approves it in Magistry.

// for apps

Intent, approvals and simulation.

These operations exist for connected apps rather than scripts, so they take an OAuth token and refuse an API key.

Declare intent

State what a field should be and let Magistry reconcile it. One owner per field: a second app declaring the same field is refused, not raced. Fields that can be declared today:

  • Variants: price (catalog:write)
  • Variants: compare_at_price (catalog:write)
  • Ad campaigns: status (ads:write)
  • Ad campaigns: daily_budget (ads:write)
  • Ad campaigns: bidding (ads:write)

Ask a person

POST /api/v1/approvals puts an action your app wants to take in front of the merchant as an approval card. Poll /api/v1/approvals/status or subscribe to approval.decided.

POST /api/v1/simulate runs an action through the store’s own rules, ownership and spend ceilings inside a transaction that is always rolled back, and returns what each gate would decide.

intent
curl -X POST https://app.magistry.io/api/v1/intent \
  -H "Authorization: Bearer <oauth access token>" \
  -H "Content-Type: application/json" \
  -d '{ "resource_kind": "campaign", "resource_ref": "…",
        "field": "daily_budget", "desired": 80,
        "reason": "Weekend sale", "expires_at": "2026-10-27T00:00:00Z" }'
approval
curl -X POST https://app.magistry.io/api/v1/approvals \
  -H "Authorization: Bearer <oauth access token>" \
  -H "Content-Type: application/json" \
  -d '{ "title": "Reorder 400 units from the usual supplier",
        "amount_cents": 520000, "currency": "EUR",
        "reversibility_class": "compensatable",
        "idempotency_key": "po-8812" }'
simulate
curl -X POST https://app.magistry.io/api/v1/simulate \
  -H "Authorization: Bearer <oauth access token>" \
  -H "Content-Type: application/json" \
  -d '{ "domain": "ads_google", "action": "adjust_budget",
        "facts": { "budget_change_pct": 20 } }'

// reference

All 188 operations.

Grouped by the resource their scope names. Generated from the API's contract snapshot at build time.
creative34 operations ›
OperationPathScopeTier
list_designsPOST /api/v1/tools/list_designscreative:readread
read_designPOST /api/v1/tools/read_designcreative:readread
get_design_requestPOST /api/v1/tools/get_design_requestcreative:readread
get_brand_kitPOST /api/v1/tools/get_brand_kitcreative:readread
update_brand_kitPOST /api/v1/tools/update_brand_kitcreative:writeautomatic write
read_brand_from_websitePOST /api/v1/tools/read_brand_from_websitecreative:writeautomatic write
check_designPOST /api/v1/tools/check_designcreative:readread
create_designPOST /api/v1/tools/create_designcreative:writeautomatic write
compose_designPOST /api/v1/tools/compose_designcreative:writeautomatic write
create_campaign_setPOST /api/v1/tools/create_campaign_setcreative:writeautomatic write
edit_designPOST /api/v1/tools/edit_designcreative:writeautomatic write
vary_designPOST /api/v1/tools/vary_designcreative:writeautomatic write
translate_designPOST /api/v1/tools/translate_designcreative:writeautomatic write
use_design_variationPOST /api/v1/tools/use_design_variationcreative:writeautomatic write
add_design_musicPOST /api/v1/tools/add_design_musiccreative:writeautomatic write
list_design_audioPOST /api/v1/tools/list_design_audiocreative:readread
set_design_audioPOST /api/v1/tools/set_design_audiocreative:writeautomatic write
list_design_timelinePOST /api/v1/tools/list_design_timelinecreative:readread
set_design_transitionPOST /api/v1/tools/set_design_transitioncreative:writeautomatic write
set_design_sfxPOST /api/v1/tools/set_design_sfxcreative:writeautomatic write
export_designPOST /api/v1/tools/export_designcreative:writeautomatic write
propose_design_postPOST /api/v1/tools/propose_design_postcreative:writeautomatic write
list_design_ad_campaignsPOST /api/v1/tools/list_design_ad_campaignscreative:readread
propose_design_adPOST /api/v1/tools/propose_design_adcreative:writeautomatic write
list_design_commentsPOST /api/v1/tools/list_design_commentscreative:readread
comment_on_designPOST /api/v1/tools/comment_on_designcreative:writeautomatic write
resolve_design_commentPOST /api/v1/tools/resolve_design_commentcreative:writeautomatic write
fix_design_commentPOST /api/v1/tools/fix_design_commentcreative:writeautomatic write
fill_design_for_locationsPOST /api/v1/tools/fill_design_for_locationscreative:writeautomatic write
get_design_activityPOST /api/v1/tools/get_design_activitycreative:readread
bind_design_dataPOST /api/v1/tools/bind_design_datacreative:writeautomatic write
list_quotable_reviewsPOST /api/v1/tools/list_quotable_reviewscreative:readread
get_design_resultsPOST /api/v1/tools/get_design_resultscreative:readread
refresh_design_dataPOST /api/v1/tools/refresh_design_datacreative:writeautomatic write
automation33 operations ›
OperationPathScopeTier
get_recent_decisionsPOST /api/v1/tools/get_recent_decisionsautomation:readread
get_alertsPOST /api/v1/tools/get_alertsautomation:readread
get_job_runsPOST /api/v1/tools/get_job_runsautomation:readread
create_alertPOST /api/v1/tools/create_alertautomation:writeautomatic write
list_automationsPOST /api/v1/tools/list_automationsautomation:readread
disable_automationPOST /api/v1/tools/disable_automationautomation:writeautomatic write
compile_workflow_from_nlPOST /api/v1/tools/compile_workflow_from_nlautomation:writeproposed write
enable_automationPOST /api/v1/tools/enable_automationautomation:writeautomatic write
run_calibrationPOST /api/v1/tools/run_calibrationautomation:writeautomatic write
run_classificationPOST /api/v1/tools/run_classificationautomation:writeautomatic write
run_decide_dryPOST /api/v1/tools/run_decide_dryautomation:writeautomatic write
run_sync_catalogPOST /api/v1/tools/run_sync_catalogautomation:writeautomatic write
run_sync_ordersPOST /api/v1/tools/run_sync_ordersautomation:writeautomatic write
run_embeddingsPOST /api/v1/tools/run_embeddingsautomation:writeautomatic write
run_anomaly_checkPOST /api/v1/tools/run_anomaly_checkautomation:writeautomatic write
run_supplier_healthPOST /api/v1/tools/run_supplier_healthautomation:writeautomatic write
run_cannibalizationPOST /api/v1/tools/run_cannibalizationautomation:writeautomatic write
run_researchPOST /api/v1/tools/run_researchautomation:writeautomatic write
run_ab_resolvePOST /api/v1/tools/run_ab_resolveautomation:writeautomatic write
save_skillPOST /api/v1/tools/save_skillautomation:writeautomatic write
list_skillsPOST /api/v1/tools/list_skillsautomation:readread
delete_skillPOST /api/v1/tools/delete_skillautomation:writeautomatic write
approval_submitPOST /api/v1/approvalsautomation:writeautomatic write
approval_statusPOST /api/v1/approvals/statusautomation:readread
approval_listPOST /api/v1/approvals/listautomation:readread
approval_withdrawPOST /api/v1/approvals/withdrawautomation:writeautomatic write
simulatePOST /api/v1/simulateautomation:readread
policy_listPOST /api/v1/policies/listautomation:readread
policy_createPOST /api/v1/policiesautomation:writeautomatic write
policy_updatePOST /api/v1/policies/updateautomation:writeautomatic write
policy_deletePOST /api/v1/policies/deleteautomation:writeautomatic write
receipts_listPOST /api/v1/receiptsautomation:readread
receipts_price_memoryPOST /api/v1/receipts/priceautomation:readread
general20 operations ›
OperationPathScopeTier
list_store_actionsPOST /api/v1/tools/list_store_actionsreadread
where_in_magistryPOST /api/v1/tools/where_in_magistryreadread
get_site_overviewPOST /api/v1/tools/get_site_overviewreadread
get_organic_searchPOST /api/v1/tools/get_organic_searchreadread
ask_user_questionPOST /api/v1/tools/ask_user_questionreadread
render_chartPOST /api/v1/tools/render_chartreadread
show_metricsPOST /api/v1/tools/show_metricsreadread
create_artifactPOST /api/v1/tools/create_artifactreadread
update_artifactPOST /api/v1/tools/update_artifactreadread
get_chatgpt_ads_authorityPOST /api/v1/tools/get_chatgpt_ads_authorityreadread
get_brain_thinkingPOST /api/v1/tools/get_brain_thinkingreadread
tell_brainPOST /api/v1/tools/tell_brainwriteautomatic write
provisioning_statusPOST /api/v1/provisioning/statusreadread
provisioning_startPOST /api/v1/provisioning/startwriteproposed write
provisioning_cancelPOST /api/v1/provisioning/cancelwriteautomatic write
intent_declarePOST /api/v1/intentwriteproposed write
intent_statusPOST /api/v1/intent/statusreadread
intent_listPOST /api/v1/intent/listreadread
intent_releasePOST /api/v1/intent/releasewriteautomatic write
intent_revertPOST /api/v1/intent/revertwriteautomatic write
catalog19 operations ›
OperationPathScopeTier
get_store_overviewPOST /api/v1/tools/get_store_overviewcatalog:readread
query_productsPOST /api/v1/tools/query_productscatalog:readread
get_calibrationPOST /api/v1/tools/get_calibrationcatalog:readread
get_variantsPOST /api/v1/tools/get_variantscatalog:readread
get_content_versionsPOST /api/v1/tools/get_content_versionscatalog:readread
get_product_detailPOST /api/v1/tools/get_product_detailcatalog:readread
find_similar_productsPOST /api/v1/tools/find_similar_productscatalog:readread
get_ai_readinessPOST /api/v1/tools/get_ai_readinesscatalog:readread
get_ai_repairsPOST /api/v1/tools/get_ai_repairscatalog:readread
propose_state_transitionPOST /api/v1/tools/propose_state_transitioncatalog:writeproposed write
propose_draftPOST /api/v1/tools/propose_draftcatalog:writeproposed write
shopify_get_shop_profilePOST /api/v1/tools/shopify_get_shop_profilecatalog:readread
shopify_list_marketsPOST /api/v1/tools/shopify_list_marketscatalog:readread
shopify_set_product_statusPOST /api/v1/tools/shopify_set_product_statuscatalog:writeproposed write
shopify_update_variant_pricePOST /api/v1/tools/shopify_update_variant_pricecatalog:writeproposed write
shopify_update_inventoryPOST /api/v1/tools/shopify_update_inventorycatalog:writeproposed write
shopify_update_tagsPOST /api/v1/tools/shopify_update_tagscatalog:writeproposed write
shopify_set_metafieldPOST /api/v1/tools/shopify_set_metafieldcatalog:writeproposed write
shopify_update_contentPOST /api/v1/tools/shopify_update_contentcatalog:writeproposed write
ads15 operations ›
OperationPathScopeTier
get_ad_performancePOST /api/v1/tools/get_ad_performanceads:readread
get_marketing_brainPOST /api/v1/tools/get_marketing_brainads:readread
get_competitor_ad_intelPOST /api/v1/tools/get_competitor_ad_intelads:readread
get_ad_campaignsPOST /api/v1/tools/get_ad_campaignsads:readread
ads_run_gaqlPOST /api/v1/tools/ads_run_gaqlads:readread
ads_list_accessible_customersPOST /api/v1/tools/ads_list_accessible_customersads:readread
ads_set_campaign_statusPOST /api/v1/tools/ads_set_campaign_statusads:writeproposed write
ads_set_campaign_budgetPOST /api/v1/tools/ads_set_campaign_budgetads:writeproposed write
ads_add_negative_keywordsPOST /api/v1/tools/ads_add_negative_keywordsads:writeproposed write
ads_create_campaignPOST /api/v1/tools/ads_create_campaignads:writeproposed write
meta_run_insightsPOST /api/v1/tools/meta_run_insightsads:readread
meta_get_ad_entitiesPOST /api/v1/tools/meta_get_ad_entitiesads:readread
meta_get_audiencesPOST /api/v1/tools/meta_get_audiencesads:readread
meta_create_campaignPOST /api/v1/tools/meta_create_campaignads:writeproposed write
meta_sync_audiencesPOST /api/v1/tools/meta_sync_audiencesads:writeproposed write
finance15 operations ›
OperationPathScopeTier
finance_entities_listPOST /api/v1/finance/entitiesfinance:readread
finance_accounts_listPOST /api/v1/finance/accountsfinance:readread
finance_periods_listPOST /api/v1/finance/periodsfinance:readread
finance_journal_entries_listPOST /api/v1/finance/journal-entriesfinance:readread
finance_bank_accounts_listPOST /api/v1/finance/bank-accountsfinance:readread
finance_einvoice_messages_listPOST /api/v1/finance/einvoice-messagesfinance:readread
finance_bank_transactions_listPOST /api/v1/finance/bank-transactionsfinance:readread
finance_trial_balancePOST /api/v1/finance/reports/trial-balancefinance:readread
finance_profit_and_lossPOST /api/v1/finance/reports/profit-and-lossfinance:readread
finance_balance_sheetPOST /api/v1/finance/reports/balance-sheetfinance:readread
finance_changesPOST /api/v1/finance/changesfinance:readread
finance_proposals_listPOST /api/v1/finance/proposalsfinance:readread
finance_export_createPOST /api/v1/finance/exportsfinance:readread
finance_export_statusPOST /api/v1/finance/exports/statusfinance:readread
finance_export_downloadPOST /api/v1/finance/exports/downloadfinance:readread
analytics12 operations ›
OperationPathScopeTier
query_performancePOST /api/v1/tools/query_performanceanalytics:readread
compare_periodsPOST /api/v1/tools/compare_periodsanalytics:readread
query_cannibalizationPOST /api/v1/tools/query_cannibalizationanalytics:readread
get_ai_referred_ordersPOST /api/v1/tools/get_ai_referred_ordersanalytics:readread
ga4_get_admin_configPOST /api/v1/tools/ga4_get_admin_configanalytics:readread
ga4_list_audiencesPOST /api/v1/tools/ga4_list_audiencesanalytics:readread
ga4_list_data_streamsPOST /api/v1/tools/ga4_list_data_streamsanalytics:readread
ga4_run_reportPOST /api/v1/tools/ga4_run_reportanalytics:readread
ga4_channel_performancePOST /api/v1/tools/ga4_channel_performanceanalytics:readread
ga4_buyer_demographicsPOST /api/v1/tools/ga4_buyer_demographicsanalytics:readread
ga4_set_data_retentionPOST /api/v1/tools/ga4_set_data_retentionanalytics:writeproposed write
ga4_create_audiencePOST /api/v1/tools/ga4_create_audienceanalytics:writeproposed write
costs7 operations ›
OperationPathScopeTier
get_product_costsPOST /api/v1/tools/get_product_costscosts:readread
get_expensesPOST /api/v1/tools/get_expensescosts:readread
inspect_expense_importPOST /api/v1/tools/inspect_expense_importcosts:readread
propose_expense_importPOST /api/v1/tools/propose_expense_importcosts:writeproposed write
inspect_cost_importPOST /api/v1/tools/inspect_cost_importcosts:readread
propose_cost_importPOST /api/v1/tools/propose_cost_importcosts:writeproposed write
shopify_update_variant_costPOST /api/v1/tools/shopify_update_variant_costcosts:writeproposed write
admin6 operations ›
OperationPathScopeTier
cross_store_link_statusPOST /api/v1/tools/cross_store_link_statusadmin:readread
propose_cross_store_linkPOST /api/v1/tools/propose_cross_store_linkadmin:writeproposed write
shopify_graphql_queryPOST /api/v1/tools/shopify_graphql_queryadmin:readread
get_store_settingsPOST /api/v1/tools/get_store_settingsadmin:readread
set_kill_switchPOST /api/v1/tools/set_kill_switchadmin:writeproposed write
set_automation_enabledPOST /api/v1/tools/set_automation_enabledadmin:writeproposed write
cs6 operations ›
OperationPathScopeTier
get_cs_attentionPOST /api/v1/tools/get_cs_attentioncs:readread
get_cs_threadsPOST /api/v1/tools/get_cs_threadscs:readread
get_cs_threadPOST /api/v1/tools/get_cs_threadcs:readread
cs_send_replyPOST /api/v1/tools/cs_send_replycs:writeproposed write
cs_triage_threadPOST /api/v1/tools/cs_triage_threadcs:writeautomatic write
cs_copilot_askPOST /api/v1/tools/cs_copilot_askcs:readread
merchant5 operations ›
OperationPathScopeTier
merchant_get_account_issuesPOST /api/v1/tools/merchant_get_account_issuesmerchant:readread
merchant_get_product_viewsPOST /api/v1/tools/merchant_get_product_viewsmerchant:readread
merchant_run_reportPOST /api/v1/tools/merchant_run_reportmerchant:readread
merchant_upsert_supplemental_labelsPOST /api/v1/tools/merchant_upsert_supplemental_labelsmerchant:writeproposed write
merchant_delete_supplemental_labelsPOST /api/v1/tools/merchant_delete_supplemental_labelsmerchant:writeproposed write
orders5 operations ›
OperationPathScopeTier
get_orders_summaryPOST /api/v1/tools/get_orders_summaryorders:readread
get_ordersPOST /api/v1/tools/get_ordersorders:readread
shopify_create_refundPOST /api/v1/tools/shopify_create_refundorders:writeproposed write
shopify_cancel_orderPOST /api/v1/tools/shopify_cancel_orderorders:writeproposed write
shopify_update_shipping_addressPOST /api/v1/tools/shopify_update_shipping_addressorders:writeproposed write
promotions5 operations ›
OperationPathScopeTier
get_discount_historyPOST /api/v1/tools/get_discount_historypromotions:readread
get_promotion_detailPOST /api/v1/tools/get_promotion_detailpromotions:readread
propose_discountPOST /api/v1/tools/propose_discountpromotions:writeproposed write
shopify_create_discount_codePOST /api/v1/tools/shopify_create_discount_codepromotions:writeproposed write
shopify_create_gift_cardPOST /api/v1/tools/shopify_create_gift_cardpromotions:writeproposed write
research4 operations ›
OperationPathScopeTier
get_research_candidatesPOST /api/v1/tools/get_research_candidatesresearch:readread
lookup_domain_researchPOST /api/v1/tools/lookup_domain_researchresearch:readread
web_readPOST /api/v1/tools/web_readresearch:readread
web_searchPOST /api/v1/tools/web_searchresearch:readread
disputes1 operation ›
OperationPathScopeTier
get_disputesPOST /api/v1/tools/get_disputesdisputes:readread
reputation1 operation ›
OperationPathScopeTier
get_reviewsPOST /api/v1/tools/get_reviewsreputation:readread

Build on the same tools the product uses.

Create a sandbox key on demo data, or start free and connect a real store.

MCP + REST · OAuth 2.1 or API keys · every call audited