# metafieldDefinitionUpdate - admin - MUTATION
Version: 2025-01

## Description
Updates a metafield definition.

### Access Scopes
API client to have access to the namespace and the resource type associated with the metafield definition.



## Arguments
* [definition](/docs/api/admin/2025-01/input-objects/MetafieldDefinitionUpdateInput): MetafieldDefinitionUpdateInput! - The input fields for the metafield definition update.


## Returns
* [updatedDefinition](/docs/api/admin/2025-01/objects/MetafieldDefinition): MetafieldDefinition The metafield definition that was updated.
* [userErrors](/docs/api/admin/2025-01/objects/MetafieldDefinitionUpdateUserError): MetafieldDefinitionUpdateUserError! The list of errors that occurred from executing the mutation.
* [validationJob](/docs/api/admin/2025-01/objects/Job): Job The asynchronous job updating the metafield definition's validation_status.


## Examples
### Update a metafield definition
Curl example: "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/2025-01/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"mutation UpdateMetafieldDefinition($definition: MetafieldDefinitionUpdateInput!) { metafieldDefinitionUpdate(definition: $definition) { updatedDefinition { id name } userErrors { field message code } } }\",\n \"variables\": {\n    \"definition\": {\n      \"name\": \"Pizza size (inches)\",\n      \"namespace\": \"bakery\",\n      \"key\": \"pizza_size\",\n      \"ownerType\": \"PRODUCT\"\n    }\n  }\n}'\n"
Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n  data: {\n    \"query\": `mutation UpdateMetafieldDefinition($definition: MetafieldDefinitionUpdateInput!) {\n      metafieldDefinitionUpdate(definition: $definition) {\n        updatedDefinition {\n          id\n          name\n        }\n        userErrors {\n          field\n          message\n          code\n        }\n      }\n    }`,\n    \"variables\": {\n      \"definition\": {\n        \"name\": \"Pizza size (inches)\",\n        \"namespace\": \"bakery\",\n        \"key\": \"pizza_size\",\n        \"ownerType\": \"PRODUCT\"\n      }\n    },\n  },\n});\n"
Ruby example: "session = ShopifyAPI::Auth::Session.new(\n  shop: \"your-development-store.myshopify.com\",\n  access_token: access_token\n)\nclient = ShopifyAPI::Clients::Graphql::Admin.new(\n  session: session\n)\n\nquery = <<~QUERY\n  mutation UpdateMetafieldDefinition($definition: MetafieldDefinitionUpdateInput!) {\n    metafieldDefinitionUpdate(definition: $definition) {\n      updatedDefinition {\n        id\n        name\n      }\n      userErrors {\n        field\n        message\n        code\n      }\n    }\n  }\nQUERY\n\nvariables = {\n  \"definition\": {\n    \"name\": \"Pizza size (inches)\",\n    \"namespace\": \"bakery\",\n    \"key\": \"pizza_size\",\n    \"ownerType\": \"PRODUCT\"\n  }\n}\n\nresponse = client.query(query: query, variables: variables)\n" 
Remix example: "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n  `#graphql\n  mutation UpdateMetafieldDefinition($definition: MetafieldDefinitionUpdateInput!) {\n    metafieldDefinitionUpdate(definition: $definition) {\n      updatedDefinition {\n        id\n        name\n      }\n      userErrors {\n        field\n        message\n        code\n      }\n    }\n  }`,\n  {\n    variables: {\n      \"definition\": {\n        \"name\": \"Pizza size (inches)\",\n        \"namespace\": \"bakery\",\n        \"key\": \"pizza_size\",\n        \"ownerType\": \"PRODUCT\"\n      }\n    },\n  },\n);\n\nconst data = await response.json();\n"
Graphql query: "mutation UpdateMetafieldDefinition($definition: MetafieldDefinitionUpdateInput!) {\n  metafieldDefinitionUpdate(definition: $definition) {\n    updatedDefinition {\n      id\n      name\n    }\n    userErrors {\n      field\n      message\n      code\n    }\n  }\n}"
#### Graphql Input
{
  "definition": {
    "name": "Pizza size (inches)",
    "namespace": "bakery",
    "key": "pizza_size",
    "ownerType": "PRODUCT"
  }
}
#### Graphql Response
{
  "data": {
    "metafieldDefinitionUpdate": {
      "updatedDefinition": {
        "id": "gid://shopify/MetafieldDefinition/1071456170",
        "name": "Pizza size (inches)"
      },
      "userErrors": []
    }
  }
}

### Update a metafield definition with access controls
Curl example: "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/2025-01/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"mutation UpdateMetafieldDefinition($definition: MetafieldDefinitionUpdateInput!) { metafieldDefinitionUpdate(definition: $definition) { updatedDefinition { id name access { admin } } userErrors { field message code } } }\",\n \"variables\": {\n    \"definition\": {\n      \"name\": \"Pizza size (inches)\",\n      \"namespace\": \"$app:bakery\",\n      \"key\": \"pizza_size\",\n      \"ownerType\": \"PRODUCT\",\n      \"access\": {\n        \"admin\": \"PRIVATE\"\n      }\n    }\n  }\n}'\n"
Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n  data: {\n    \"query\": `mutation UpdateMetafieldDefinition($definition: MetafieldDefinitionUpdateInput!) {\n      metafieldDefinitionUpdate(definition: $definition) {\n        updatedDefinition {\n          id\n          name\n          access {\n            admin\n          }\n        }\n        userErrors {\n          field\n          message\n          code\n        }\n      }\n    }`,\n    \"variables\": {\n      \"definition\": {\n        \"name\": \"Pizza size (inches)\",\n        \"namespace\": \"$app:bakery\",\n        \"key\": \"pizza_size\",\n        \"ownerType\": \"PRODUCT\",\n        \"access\": {\n          \"admin\": \"PRIVATE\"\n        }\n      }\n    },\n  },\n});\n"
Ruby example: "session = ShopifyAPI::Auth::Session.new(\n  shop: \"your-development-store.myshopify.com\",\n  access_token: access_token\n)\nclient = ShopifyAPI::Clients::Graphql::Admin.new(\n  session: session\n)\n\nquery = <<~QUERY\n  mutation UpdateMetafieldDefinition($definition: MetafieldDefinitionUpdateInput!) {\n    metafieldDefinitionUpdate(definition: $definition) {\n      updatedDefinition {\n        id\n        name\n        access {\n          admin\n        }\n      }\n      userErrors {\n        field\n        message\n        code\n      }\n    }\n  }\nQUERY\n\nvariables = {\n  \"definition\": {\n    \"name\": \"Pizza size (inches)\",\n    \"namespace\": \"$app:bakery\",\n    \"key\": \"pizza_size\",\n    \"ownerType\": \"PRODUCT\",\n    \"access\": {\n      \"admin\": \"PRIVATE\"\n    }\n  }\n}\n\nresponse = client.query(query: query, variables: variables)\n" 
Remix example: "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n  `#graphql\n  mutation UpdateMetafieldDefinition($definition: MetafieldDefinitionUpdateInput!) {\n    metafieldDefinitionUpdate(definition: $definition) {\n      updatedDefinition {\n        id\n        name\n        access {\n          admin\n        }\n      }\n      userErrors {\n        field\n        message\n        code\n      }\n    }\n  }`,\n  {\n    variables: {\n      \"definition\": {\n        \"name\": \"Pizza size (inches)\",\n        \"namespace\": \"$app:bakery\",\n        \"key\": \"pizza_size\",\n        \"ownerType\": \"PRODUCT\",\n        \"access\": {\n          \"admin\": \"PRIVATE\"\n        }\n      }\n    },\n  },\n);\n\nconst data = await response.json();\n"
Graphql query: "mutation UpdateMetafieldDefinition($definition: MetafieldDefinitionUpdateInput!) {\n  metafieldDefinitionUpdate(definition: $definition) {\n    updatedDefinition {\n      id\n      name\n      access {\n        admin\n      }\n    }\n    userErrors {\n      field\n      message\n      code\n    }\n  }\n}"
#### Graphql Input
{
  "definition": {
    "name": "Pizza size (inches)",
    "namespace": "$app:bakery",
    "key": "pizza_size",
    "ownerType": "PRODUCT",
    "access": {
      "admin": "PRIVATE"
    }
  }
}
#### Graphql Response
{
  "data": {
    "metafieldDefinitionUpdate": {
      "updatedDefinition": {
        "id": "gid://shopify/MetafieldDefinition/1071456171",
        "name": "Pizza size (inches)",
        "access": {
          "admin": "PRIVATE"
        }
      },
      "userErrors": []
    }
  }
}