## Run a mutation

Now that the client is set up, you can run a GraphQL mutation with `Amplify.API.mutate` to create, update, and delete your data.

import createTodo from "/src/fragments/lib/graphqlapi/flutter/getting-started/50_createtodo.mdx";

<Fragments fragments={{flutter: createTodo}} />

To update the `Todo` with a new name:

```dart
Future<void> updateTodo(Todo originalTodo) async {
  final todoWithNewName = originalTodo.copyWith(name: 'new name');

  final request = ModelMutations.update(todoWithNewName);
  final response = await Amplify.API.mutate(request: request).response;
  safePrint('Response: $response');
}
```

To delete the `Todo`:

```dart
Future<void> deleteTodo(Todo todoToDelete) async {
  final request = ModelMutations.delete(todoToDelete);
  final response = await Amplify.API.mutate(request: request).response;
  safePrint('Response: $response');
}
```


```dart
// or delete by ID, ideal if you do not have the instance in memory, yet
Future<void> deleteTodoById(Todo todoToDelete) async {
  final request = ModelMutations.deleteById(
    Todo.classType,
    TodoModelIdentifier(id: '8e0dd2fc-2f4a-4dc4-b47f-2052eda10775'),
  );
  final response = await Amplify.API.mutate(request: request).response;
  safePrint('Response: $response');
}
```

