--- title: "createScanner" slug: "analytics-datacatalog-scanner-createscanner" updated: 2026-09-17T09:47:59Z published: 2026-09-17T09:47:59Z canonical: "api.ncloud-docs.com/analytics-datacatalog-scanner-createscanner" --- > ## Documentation Index > Fetch the complete documentation index at: https://api.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # createScanner Available in VPC Create a scanner. ## Request This section describes the request format. The method and URI are as follows: | Method | URI | | --- | --- | | POST | /api/v1/catalogs/{catalogId}/scanners | ### Request headers For information about the headers common to all Data Catalog APIs, see [Data Catalog request headers](/docs/en/analytics-datacatalog#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94). ### Request path parameters You can use the following path parameters with your request: | Field | Type | Required | Description | | --- | --- | --- | --- | | `catalogId` | Integer | Required | Catalog ID - See [getCatalogs](/docs/en/analytics-datacatalog-catalog-getcatalogs). | ### Request body You can include the following data in the body of your request: | Field | Type | Required | Description | | --- | --- | --- | --- | | `name` | String | Required | Scanner name | | `type` | String | Required | Data type - `OBJECT_STORAGE` \| `ICEBERG` \| `CLOUD_DB_FOR_MYSQL` \| `CLOUD_DB_FOR_MSSQL` \| `CLOUD_DB_FOR_MONGODB` \| `CLOUD_DB_FOR_POSTGRESQL` \| `JDBC` - `OBJECT_STORAGE`: Object Storage - `ICEBERG`: Apache Iceberg - `CLOUD_DB_FOR_MYSQL`: Cloud DB for MySQL - `CLOUD_DB_FOR_MSSQL`: Cloud DB for MSSQL - `CLOUD_DB_FOR_MONGODB`: Cloud DB for MongoDB - `CLOUD_DB_FOR_POSTGRESQL`: Cloud DB for PostgreSQL - `JDBC`: JDBC | | `location` | String | Optional | Scan path - Required if `type` is `OBJECT_STORAGE` or `ICEBERG` | | `connectionId` | Integer | Optional | Connection ID - Required if `type` is `CLOUD_DB_FOR_MYSQL`, `CLOUD_DB_FOR_MSSQL`, `CLOUD_DB_FOR_MONGODB`, `CLOUD_DB_FOR_POSTGRESQL` or `JDBC` - See [getConnection API](/docs/en/analytics-datacatalog-connection-getconnection). | | `scanFileLimitCnt` | Integer | Optional | Scan range - `1`-`100`: Scan only certain files. - If not specified, a full scan is performed. - Enter only if `type` is `OBJECT_STORAGE`. | | `scheduleType` | String | Required | Execution cycle - `ON_DEMAND` \| `CRON` - `ON_DEMAND`: On-demand (upon user request) - `CRON`: Cron | | `schedule` | String | Optional | Execution cycle value - `CRON`: Enter in Cron format {0 10 * * *} - Required if not `scheduleType=ON_DEMAND` | | `excludePattern` | String | Optional | Application pattern | | `includePattern` | String | Optional | Inclusion pattern | | `isUseHivePartitionOnly` | Boolean | Optional | Whether to recognize only Hive partitions | | `databaseName` | String | Required | Output database name | | `tablePrefixName` | String | Optional | Created table prefix name | | `description` | String | Optional | Scanner description | | `opAddType` | String | Required | Update method when adding to schema - `ADD_NEW_COLUMNS_ONLY` \| `UPDATE_TABLE` \| `IGNORE_UPDATE` - `ADD_NEW_COLUMNS_ONLY`: Add new columns only. - `UPDATE_TABLE`: Update table definition. - `IGNORE_UPDATE`: Ignore. | | `opDelType` | String | Optional | Update method when deleting a schema - `DEL_NO`: Ignore. | | `maxTableThreshold` | Integer | Optional | Maximum number of tables to create | | `isMergeForce` | Boolean | Optional | Whether to force table merging | ### Request example The request example is as follows: ``` curl --location --request POST 'https://datacatalog.apigw.ntruss.com/api/v1/catalogs/4**/scanners' \ --header 'x-ncp-apigw-timestamp: {Timestamp}' \ --header 'x-ncp-iam-access-key: {Access Key}' \ --header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' -data '{ "databaseName": "mydatabase", "description": "description", "excludePattern": "*.csv", "includePattern": "*.xml", "isMergeForce": false, "isUseHivePartitionOnly": false, "location": "s3a://mybucket/test/", "name": "my-scanner", "opAddType": "UPDATE_TABLE", "opDelType": "DEL_NO", "schedule": "1 0 * * *", "scheduleType": "CRON", "tablePrefixName": "test-", "type": "OBJECT_STORAGE" }' ``` ## Response This section describes the response format. ### Response body The response body includes the following data: | Field | Type | Required | Description | | --- | --- | --- | --- | | `scannerId` | Integer | - | Scanner ID | | `name` | String | - | Scanner name | | `status` | String | - | Scanner status - `SCANNER_IDLE` \| `SCANNER_STARTING` \| `SCANNER_RUNNING` \| `SCANNER_STOPPING` \| `SCANNER_DONE` - `SCANNER_IDLE`: Pending execution - `SCANNER_STARTING`: Execution started - `SCANNER_RUNNING`: Running - `SCANNER_STOPPING`: Execution stopped - `SCANNER_DONE`: Execution completed | | `description` | String | - | Scanner description - Displayed if a value exists | | `type` | String | - | Source data type | | `location` | String | - | Source data path | | `schedule` | String | - | Cron expression for scanner execution cycle - Displayed if periodic execution is set | | `scheduleType` | String | - | Scanner execution cycle - `ON_DEMAND` \| `CRON` - `ON_DEMAND`: On-demand (upon user request) - `CRON`: Cron | | `opAddType` | String | - | Collection options when adding schema - `UPDATE_TABLE` \| `ADD_NEW_COLUMNS_ONLY` \| `IGNORE_UPDATE` - `UPDATE_TABLE`: Update table definition. - `ADD_NEW_COLUMNS_ONLY`: Only add new column. - `IGNORE_UPDATE`: Ignore. | | `opDelType` | String | - | Options when deleting schema - `DEL_NO`: Ignore (valid value). | | `includePattern` | String | - | Patterns to include in scan | | `excludePattern` | String | - | Patterns to exclude from scan - Exclusion patterns take precedence over inclusion patterns. | | `tablePrefixName` | String | - | Output data prefix - Displayed if a value exists | | `lastExecStartTime` | String | - | Last scanner execution date and time - ISO 8601 format | | `lastExecElapsedTime` | Integer | - | Last scanner execution time (second) | | `lastResult` | String | - | Last scanner execution result | | `isSchedulePaused` | Integer | - | Whether to pause the execution cycle - `1` \| `0` - `1`: Pause - `0`: Pause unavailable | | `catalogId` | Integer | - | Catalog ID | | `connectionId` | Integer | - | Connection ID | | `connectionName` | String | - | Connection name | | `classifierResponseList` | Array | - | Classifier list: [classifierResponseList](/docs/en/analytics-datacatalog-scanner-createscanner#classifierResponseList) - Displayed if set as the scanner execution option | | `databaseName` | String | - | Database name for the output data | | `createTime` | String | - | Scanner creation date and time - ISO 8601 format | | `updateTime` | String | - | Update date and time - ISO 8601 format | | `lastHistoryUuid` | String | - | Last execution history UUID | #### `classifierResponseList` The following describes `classifierResponseList`. | Field | Type | Required | Description | | --- | --- | --- | --- | | `disabled` | Boolean | - | Non-availability - `true` \| `false` - `true`: Unavailable - `false`: Available | | `classifierId` | Integer | - | Classifier ID | | `catalogId` | Integer | - | Catalog ID | | `name` | String | - | Classifier name | | `type` | String | - | Classifier type - `CSV` \| `JSON` \| `XML` - `CSV`: CSV file - `JSON`: JSON file - `XML`: XML file | | `value` | String | - | Details by classifier type - CSV: Column separator - JSON: Metadata creation target path - XML: Row classification tag name | | `createTime` | String | - | Classifier creation date and time - ISO 8601 format | ### Response status codes For information about the HTTP status codes common to all Data Catalog APIs, see [Data Catalog response status codes](/docs/en/analytics-datacatalog#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C). ### Response example The response example is as follows: ``` { "scannerId": 9**, "name": "my-scanner", "status": "SCANNER_IDLE", "description": "description", "type": "OBJECT_STORAGE", "location": "s3a://mybucket/test/", "schedule": "1 0 * * *", "scheduleType": "CRON", "opAddType": "UPDATE_TABLE", "opDelType": "DEL_NO", "tablePrefixName": "test-", "lastExecStartTime": "2026-03-19T14:44:55+0900", "lastExecElapsedTime": 6, "lastResult": "SUCCESS", "isSchedulePaused": 0, "catalogId": 4**, "databaseName": "mydatabase", "createTime": "2026-03-18T09:34:42+0900", "updateTime": "2026-03-19T14:45:15+0900", "lastHistoryUuid": "********" } ```