use Drupal\migrate\Plugin\MigrationInterface; // Create a migration plugin. function mymodule_migrate_api_migration_plugins_alter(array &$definitions) { $definitions['article'] = [ 'class' => 'Drupal\migrate\Plugin\MigrateDestination\ContentEntity', 'bundle_key' => 'type', 'entity_type' => 'node', 'id_fields' => [ 'uuid' => [ 'type' => 'uuid', 'is_primary' => true, ], ], ]; } // Define the migration source. function mymodule_migrate_api_migration_plugins_alter(array &$definitions) { $definitions['article'] = [ 'source' => [ 'plugin' => 'csv', 'path' => 'path/to/csv', 'header_row_count' => 1, 'fields' => [ 0 => 'title', 1 => 'body', 2 => 'published', ], ], 'destination' => [ 'plugin' => 'article', ], ]; } // Run the migration. $manager = \Drupal::service('plugin.manager.migration'); $migration = $manager->createInstance('article'); $migration->execute();In this example, we define a migration plugin for the article content type and specify its fields and taxonomy terms. We then define a CSV source for the migration and set the destination plugin to our newly created article plugin. Finally, we execute the migration using the Migrate API. The Drupal Migrate API is part of the Drupal Core, so no additional package library is needed.