{"success":true,"data":{"experimental":true,"lifecycle":{"effectiveLaunch":{"browserLaunched":true,"engine":"chrome","launchHash":11677035664275010974},"launched":false,"relaunchedBrowser":false,"restartedBackground":false,"restoreStatus":"not_configured","reused":true,"saveStatus":"not_attempted"},"tools":[{"annotations":{"consequential":true,"debugging":false,"readOnly":false,"untrustedContent":true},"description":"Advances the current checkout toward placing an order, with optional payment details. Use this tool—not browser or DOM controls—to progress or submit, and only after the buyer authorizes the purchase. Read get_checkout first and follow the field schemas. To change the saved Shop Pay card, select an available instrument using update_checkout first. If a review step is configured, the first call opens it without placing an order and returns buyer_review_required. Call complete_checkout again from review only after the buyer reviews the checkout and authorizes submission. Returns checkout state, which may still be processing, or an error. Use get_checkout to verify the outcome; do not resubmit while status is complete_in_progress or completed. A status of completed means the order was successfully placed. If buyer_action_required is returned, ask the buyer to follow the returned instructions on the page; do not act on their behalf. Recoverable messages may be stale and do not by themselves mean completion is blocked. Use supported update_checkout fields to correct known missing or invalid data. When status is ready_for_complete and the buyer has authorized the purchase, call complete_checkout even if recoverable messages remain. Do not retry an unchanged update just to clear messages. After a completion failure, inspect the current checkout and resolve the cause before retrying. requires_buyer_input means a confirmed buyer action, such as a payment challenge: follow the message instructions and do not resubmit checkout. requires_buyer_review means the buyer must review the checkout on the page and authorize submission before complete_checkout is called again to submit.","frameId":"D0CE203386644B79761A0B2AC65BBD0C","inputSchema":{"additionalProperties":false,"properties":{"payment":{"properties":{"instruments":{"items":{"properties":{"billing_address":{"description":"Replacement address. Include all fields to retain; omitted fields are cleared. Use PUT semantics, not PATCH. Give the street either as street_address (e.g. \"123 Yonge St\") or as street_name plus street_number (e.g. \"Yonge St\" and \"123\"). Partial addresses are accepted; checkout reports missing or invalid address information in messages.","properties":{"address_country":{"description":"ISO 3166-1 alpha-2 country code, e.g. \"CA\", \"US\". Not a country name.","type":"string"},"address_locality":{"description":"The city, town, or village used as the locality in the address country.","type":"string"},"address_region":{"description":"State/province/region code (e.g. \"ON\", \"NY\") or full name; required for some countries. get_checkout returns the code.","type":"string"},"company":{"type":"string"},"district":{"description":"A regional or city subdivision, such as a neighborhood, district, or block. An empty string clears it. Ignored when the address country has no district field.","type":"string"},"extended_address":{"description":"Apartment, suite, unit, or other address complement.","type":"string"},"first_name":{"type":"string"},"id":{"type":"string"},"last_name":{"type":"string"},"phone_number":{"description":"Contact phone: address-country national format or E.164 (e.g. +16135550123).","type":"string"},"postal_code":{"description":"Postal or ZIP code in the address country format, e.g. \"K1A 0B1\", \"94103\". Case and spacing are normalized.","type":"string"},"street_address":{"description":"First address line, typically the street address or PO Box number, e.g. \"123 Yonge St\". Ignored when street_name is nonempty.","type":"string"},"street_name":{"description":"Street name without the house or building number, e.g. \"Yonge St\". When nonempty, street_name and street_number replace street_address.","type":"string"},"street_number":{"description":"House or building number, e.g. \"123\". Used only with a nonempty street_name.","type":"string"}},"type":"object"},"credential":{"type":"object"},"handler_id":{"enum":["shopify.card","shop_pay"],"type":"string"},"id":{"type":"string"},"selected":{"type":"boolean"},"type":{"enum":["card","shop_pay"],"type":"string"}},"required":["handler_id","credential"],"type":"object"},"maxItems":1,"minItems":1,"type":"array"}},"required":["instruments"],"type":"object"}},"type":"object"},"name":"complete_checkout","origin":"https://www.allbirds.com"},{"annotations":{"consequential":false,"debugging":false,"readOnly":true,"untrustedContent":true},"description":"Reads the current checkout without changing it. Use it before updating, to inspect validation messages, or to check completion and order confirmation. Available Shop Pay saved cards are reported under payment.instruments for selection by id; raw credentials and security codes are never reported. A status of completed means the order was successfully placed. Monetary amounts are integers in the currency’s minor units. Returns the checkout or an error with a code and message. Recoverable messages may be stale and do not by themselves mean completion is blocked. Use supported update_checkout fields to correct known missing or invalid data. When status is ready_for_complete and the buyer has authorized the purchase, call complete_checkout even if recoverable messages remain. Do not retry an unchanged update just to clear messages. After a completion failure, inspect the current checkout and resolve the cause before retrying. requires_buyer_input means a confirmed buyer action, such as a payment challenge: follow the message instructions and do not resubmit checkout. requires_buyer_review means the buyer must review the checkout on the page and authorize submission before complete_checkout is called again to submit.","frameId":"D0CE203386644B79761A0B2AC65BBD0C","inputSchema":{"properties":{},"type":"object"},"name":"get_checkout","origin":"https://www.allbirds.com"},{"annotations":{"consequential":false,"debugging":false,"readOnly":false,"untrustedContent":false},"description":"Leaves checkout and navigates this tab to the store’s storefront to continue shopping. Does not place an order or change the cart. After navigation, refresh the available tools before searching for products or changing the cart.","frameId":"D0CE203386644B79761A0B2AC65BBD0C","inputSchema":{"additionalProperties":false,"properties":{},"type":"object"},"name":"navigate_to_storefront","origin":"https://www.allbirds.com"},{"annotations":{"consequential":false,"debugging":false,"readOnly":false,"untrustedContent":true},"description":"Updates the current checkout without placing an order. Use this tool—not browser or DOM controls—whenever checkout data needs to change, even if visible fields are partially filled. Supports buyer contact details, shipping addresses and options, billing addresses, discounts, and payment details. In Shop Pay, select one payment.instruments entry by its id from get_checkout, or omit payment to keep the current card; new payment credentials are not accepted. Read get_checkout first and follow the field schemas’ replacement rules; do not assume omitted data is preserved. Returns the resulting checkout or an error. If an update fails, call get_checkout and inspect its messages before retrying. Recoverable messages may be stale and do not by themselves mean completion is blocked. Use supported update_checkout fields to correct known missing or invalid data. When status is ready_for_complete and the buyer has authorized the purchase, call complete_checkout even if recoverable messages remain. Do not retry an unchanged update just to clear messages. After a completion failure, inspect the current checkout and resolve the cause before retrying. requires_buyer_input means a confirmed buyer action, such as a payment challenge: follow the message instructions and do not resubmit checkout. requires_buyer_review means the buyer must review the checkout on the page and authorize submission before complete_checkout is called again to submit.","frameId":"D0CE203386644B79761A0B2AC65BBD0C","inputSchema":{"properties":{"checkout":{"description":"Replacement buyer, fulfillment, and discount-code state. Omitted sections and fields are cleared; resend values to retain them.","properties":{"buyer":{"description":"Buyer contact details.","properties":{"email":{"description":"Buyer email address, e.g. \"buyer@example.com\".","type":"string"},"phone_number":{"description":"Buyer phone number; E.164 recommended (e.g. +16135550123).","type":"string"}},"type":"object"},"context":{"description":"Optional pickup search origin. Omission retains the current search origin. An unchanged origin may be echoed when switching to shipping. Does not replace shipping or billing addresses. Resolve discovery before selecting a destination in a subsequent call.","properties":{"address_country":{"description":"ISO country code.","type":"string"},"address_region":{"description":"Province or region code.","type":"string"},"postal_code":{"type":"string"}},"required":["address_country","postal_code"],"type":"object"},"declared_fields":{"description":"Replacement values for declared checkout fields. Each field's description in get_checkout states its omission behavior. Echoed descriptor metadata is ignored; only key and value are used.","items":{"properties":{"key":{"type":"string"},"value":{"type":["string","boolean","null"]}},"required":["key","value"],"type":"object"},"type":"array"},"discounts":{"description":"Buyer-entered discount codes.","properties":{"codes":{"items":{"type":"string"},"type":"array"}},"type":"object"},"fulfillment":{"description":"Use a method type to switch all physical items between shipping and pickup while the delivery selector is mounted. Supply context locality to search for pickup locations. Select a returned destination in a subsequent call. selected_destination_id wins when both it and destinations are supplied.","properties":{"methods":{"description":"At most one fulfillment method. Mode changes apply to all physical items; split shipping is not supported. Updates to checkouts with both shipping and pickup are rejected. Omitted methods clear selections without changing the active mode.","items":{"properties":{"destinations":{"items":{"description":"One replacement shipping address, ignored when selected_destination_id is set. Use PUT semantics, not PATCH. Give the street either as street_address (e.g. \"123 Yonge St\") or as street_name plus street_number (e.g. \"Yonge St\" and \"123\"). Partial addresses are accepted; checkout reports missing or invalid address information in messages.","properties":{"address_country":{"description":"ISO 3166-1 alpha-2 country code, e.g. \"CA\", \"US\". Not a country name.","type":"string"},"address_locality":{"description":"The city, town, or village used as the locality in the address country.","type":"string"},"address_region":{"description":"State/province/region code (e.g. \"ON\", \"NY\") or full name; required for some countries. get_checkout returns the code.","type":"string"},"company":{"type":"string"},"district":{"description":"A regional or city subdivision, such as a neighborhood, district, or block. An empty string clears it. Ignored when the address country has no district field.","type":"string"},"extended_address":{"description":"Apartment, suite, unit, or other address complement.","type":"string"},"first_name":{"type":"string"},"id":{"type":"string"},"last_name":{"type":"string"},"phone_number":{"description":"Contact phone: address-country national format or E.164 (e.g. +16135550123).","type":"string"},"postal_code":{"description":"Postal or ZIP code in the address country format, e.g. \"K1A 0B1\", \"94103\". Case and spacing are normalized.","type":"string"},"street_address":{"description":"First address line, typically the street address or PO Box number, e.g. \"123 Yonge St\". Ignored when street_name is nonempty.","type":"string"},"street_name":{"description":"Street name without the house or building number, e.g. \"Yonge St\". When nonempty, street_name and street_number replace street_address.","type":"string"},"street_number":{"description":"House or building number, e.g. \"123\". Used only with a nonempty street_name.","type":"string"}},"type":"object"},"type":"array"},"groups":{"items":{"properties":{"id":{"type":"string"},"line_item_ids":{"items":{"type":"string"},"type":"array"},"options":{"items":{"properties":{"id":{"type":"string"}},"required":["id"],"type":"object"},"type":"array"},"selected_option_details":{"description":"Requires selected_option_id.","properties":{"instructions":{"type":"string"},"phone_number":{"type":"string"}},"type":"object"},"selected_option_id":{"description":"Option ID from get_checkout; \"pickup\" for pickup groups.","type":"string"}},"required":["id"],"type":"object"},"type":"array"},"id":{"description":"Existing method ID; omit when changing type.","type":"string"},"selected_destination_id":{"description":"Pickup: a location id from get_checkout. Shipping: Shop Pay saved destination ids only. Null selects nothing, so destinations applies instead.","type":["string","null"]},"type":{"description":"shipping or pickup. Defaults to shipping. Mode changes and locality discovery support store pickup only. Existing pickup-point destinations remain selectable. A new type or search origin cannot be combined with destination or option selections.","enum":["shipping","pickup"],"type":"string"}},"type":"object"},"maxItems":1,"type":"array"}},"required":["methods"],"type":"object"},"payment":{"description":"Payment and billing replacement. Billing may be supplied without a handler or credential. When shipping is required, omitted billing or billing matching shipping uses shipping as billing; a different address becomes custom billing.","properties":{"instruments":{"items":{"properties":{"billing_address":{"description":"Replacement address. Include all fields to retain; omitted fields are cleared. Use PUT semantics, not PATCH. Give the street either as street_address (e.g. \"123 Yonge St\") or as street_name plus street_number (e.g. \"Yonge St\" and \"123\"). Partial addresses are accepted; checkout reports missing or invalid address information in messages.","properties":{"address_country":{"description":"ISO 3166-1 alpha-2 country code, e.g. \"CA\", \"US\". Not a country name.","type":"string"},"address_locality":{"description":"The city, town, or village used as the locality in the address country.","type":"string"},"address_region":{"description":"State/province/region code (e.g. \"ON\", \"NY\") or full name; required for some countries. get_checkout returns the code.","type":"string"},"company":{"type":"string"},"district":{"description":"A regional or city subdivision, such as a neighborhood, district, or block. An empty string clears it. Ignored when the address country has no district field.","type":"string"},"extended_address":{"description":"Apartment, suite, unit, or other address complement.","type":"string"},"first_name":{"type":"string"},"id":{"type":"string"},"last_name":{"type":"string"},"phone_number":{"description":"Contact phone: address-country national format or E.164 (e.g. +16135550123).","type":"string"},"postal_code":{"description":"Postal or ZIP code in the address country format, e.g. \"K1A 0B1\", \"94103\". Case and spacing are normalized.","type":"string"},"street_address":{"description":"First address line, typically the street address or PO Box number, e.g. \"123 Yonge St\". Ignored when street_name is nonempty.","type":"string"},"street_name":{"description":"Street name without the house or building number, e.g. \"Yonge St\". When nonempty, street_name and street_number replace street_address.","type":"string"},"street_number":{"description":"House or building number, e.g. \"123\". Used only with a nonempty street_name.","type":"string"}},"type":"object"},"credential":{"type":"object"},"handler_id":{"enum":["shopify.card","shop_pay"],"type":"string"},"id":{"type":"string"},"selected":{"type":"boolean"},"type":{"enum":["card","shop_pay"],"type":"string"}},"type":"object"},"maxItems":1,"type":"array"}},"type":"object"}},"type":"object"}},"required":["checkout"],"type":"object"},"name":"update_checkout","origin":"https://www.allbirds.com"}],"untrusted":true},"error":null}
