--- title: "Collection.SetPublisher - Web Scraping API - Mozenda" slug: "collectionsetpublisher" description: "Collection.SetPublisher can be used to update or create a new publisher for an existing web data collection. " updated: 2025-03-05T10:49:44Z published: 2025-03-05T10:49:44Z canonical: "help.mozenda.com/collectionsetpublisher" --- > ## Documentation Index > Fetch the complete documentation index at: https://help.mozenda.com/llms.txt > Use this file to discover all available pages before exploring further. # Collection.SetPublisher ### Description Updates or creates a new **publisher** for the specified **collection**. ### URL parameters URL parameter ordering The **URL parameters** below are listed in the order they should be entered in the API **URL**. | Name | Required | Type | Description | | --- | --- | --- | --- | | `CollectionID` | True | numeric | Unique identifier of the **collection**. | | `Method` | True | string | Specified method of publishing. The options are listed below. | | `ViewID` | False | numeric | Unique identifier of the **view**. | | `FileFormat` | False | string | CSV, TSV, XML, JSON, and XLSX. Default is CSV. | | `FileName` | False | string | Naming conventions for the **file**. You can use parameters here. | | `FileIncludeHeader` | False | boolean | *Yes*, *No* – *Yes* to add **field** headers to row one in the published **file**. Default is *Yes*. | | `PublishWhenAgentCompletes` | False | boolean | *Yes*, *No* – *Yes* to publish when the agent completes. *No* to publish manually. When not specified, no change is made unless initializing a new publisher which defaults to *No*. | | `ItemStatusIncludeColumn` | False | boolean | *Yes*, *No* – Yes to include the column in the data **file**. Default is *No*. | | `FileCompressionFormat` | False | string | GZip, SevenZip, Zip | | `FilePackageCompressionFormat` | False | string | TarGZip, SevenZip, Tar, Zip | | `DoNotPublishEmptyFile` | False | boolean | Yes, No - Yes to not publish empty files. | | `BookmarkID` | False | numeric | Most recent completed run = 0 All items ever found = -1 (This option is only available when store item history is on) Harvesting results = -2 | #### Email `Method` = *Email* | Name | Required | Type | Description | | --- | --- | --- | --- | | `EmailAddress` | True | string | *Email* where the **file** should be emailed to. | | `EmailSubject` | False | string | Subject of published *email*. | #### FTP `Method` = *FTP* | Name | Required | Type | Description | | --- | --- | --- | --- | | `FtpServer` | True | string | Name of the *FTP* server. | | `FtpPort` | False | numeric | Default is 21. | | `FtpProtocol` | False | string | *FTP, SFTP, FTPSImplicit, FTPSExplicit*. Default is *FTP*. | | `FtpDirectory` | False | string | Directory where **file** should be published. | | `FtpUser` | False | string | Username to access *FTP*. | | `FtpPassword` | False | string | Password of user to access *FTP*. | | `FtpUsePassive` | False | boolean | *Yes/True*, *No/False* . *Yes* to use passive transfer mode. Default is *Yes*. | | `FtpSSLProtocol` | False | string | The security protocol to use. Possible values: *Default*, *Ssl2*, *Ssl3*, *Tls*, *Tls11*, *Tls12*. Default is *Default*. | | `IncludePackages` | False | boolean | *Yes/True*, *No/False*. *Yes* to include **images/files** when publishing to *FTP*. Default is *No*. | #### AmazonS3 `Method` = *AmazonS3* | Name | Required | Type | Description | | --- | --- | --- | --- | | `AmazonS3AuthenticationToken` | True | string | *AWS* Access Key ID. | | `AmazonS3SignRequestToken` | True | string | *AWS* Secret Access Key. | | `AmazonS3BucketPath` | True | string | Path to bucket in *S3*. | | `AmazonS3BucketRegion` | True | string | The *Amazon S3* endpoint for the selected bucket. Click [here](http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) to see a list of valid endpoints. | #### AzureStorage `Method` = *AzureStorage* | Name | Required | Type | Description | | --- | --- | --- | --- | | `MicrosoftAzureStorageAccountName` | True | string | Name of the *Microsoft Azure Storage Account*. | | `MicrosoftAzureStorageAccountKey` | True | string | Account Key for the *Azure account*. | | `MicrosoftAzureStorageContainerName` | True | string | Name of the Container. | #### Dropbox `Method` = *Dropbox* | Name | Required | Type | Description | | --- | --- | --- | --- | | `DropBoxFolder` | False | string | Use a **file** path beginning with the first sub-folder, for example: Mozenda/DataFeeds/Agent1. | #### Google Cloud Storage `Method` = *GoogleCloud* | Name | Required | Type | Description | | --- | --- | --- | --- | | `GoogleCloudStorageBucket` | True | String | Bucket name in Google Cloud Storage | | `GoogleCloudStorageFolder` | False | String | use a **file** path beginning with the first sub-folder, for example: Mozenda/DataFeeds/Agent1. | Don't forget your key! You should have a Google Cloud Key JSON assigned to your Google Cloud account. Copy and paste the entire key and enter it into the post-body for the `GoogleCloudCredentialJSON`. #### Google Drive `Method` = *Google* | Name | Required | Type | Description | | --- | --- | --- | --- | | `GoogleFolder` | False | string | Use a **file** path beginning with the first sub-folder, for example: Mozenda/DataFeeds/Agent1. | Dropbox & Google Drive You will have to use the web console to connect your **Mozenda** account to your *Google Drive* and *Dropbox* accounts. #### Optional parameters for `ItemStatusInclude` | Name | Required | Type | Description | | --- | --- | --- | --- | | `ItemStatusIncludeAdded` | False | boolean | *Yes/True*, *No/False*. Include added **items**. | | `ItemStatusIncludeChanged` | False | boolean | *Yes/True*, *No/False*. Include changed **items**. | | `ItemStatusIncludeUnchanged` | False | boolean | *Yes/True*, *No/False*. Include unchanged **items**. | | `ItemStatusIncludeDeleted` | False | boolean | *Yes/True*, *No/False*. Include deleted **items**. | | `ItemStatusIncludeChangeMarkup` | False | boolean | *Yes/True*, *No/False*. Include a column with the change markup. | Note These **item** status filtering options have no effect unless `ItemStatusIncludeColumn` is *True*. #### Returns | Name | Type | Description | | --- | --- | --- | | `Result` | string | `Success` if the operation was successful. | ### Sample request ``` curl -X GET 'https://api.mozenda.com/rest?WebServiceKey=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX&Service=Mozenda10&Operation=Collection.SetPublisher&CollectionID=131794&PublishWhenAgentCompletes=True&ViewID=151876&FileIncludeHeader=True&FileFormat=JSON&FileCompressionformat=ZiP&FilePackageCompressionFormat=SevenZip&Method=AmazonS3&IncludePackages=True&ItemStatusIncludeColumn=False&AmazonS3AuthenticationToken=AuthenticationToken&AmazonS3SignRequestToken=SignRequestToken&AmazonS3BucketPath=moztestingbucket/gzipped&AmazonS3BucketRegion=bucketregion.amazonaws.com' ``` ### Sample responses #### XML ``` Success ``` #### JSON (add `&ResponseFormat=JSON`) ``` { "JsonResult": { "Command": "Collection.SetPublisher", "AutoLoggedIn": false, "WebConsoleKey": "", "Result": "Success", "ErrorCode": "", "ErrorDescription": "", "ErrorList": [], "ExecutionTime": { "Ticks": 0, "Days": 0, "Hours": 0, "Milliseconds": 0, "Minutes": 0, "Seconds": 0, "TotalDays": 0, "TotalHours": 0, "TotalMilliseconds": 0, "TotalMinutes": 0, "TotalSeconds": 0 } } } ``` #### Additional Information - A **publisher** cannot be created with a Method of “None”, it must be *FTP*, *Email*, *AmazonS3 Azure*, *Dropbox*, *Google Cloud*, or *Google*. - A **publisher** will only update the **fields** related to your Method (i.e – If Method is *FTP*, only the common optional **fields** and the *FTP* fields will be updated). - If you are creating a new **publisher** any **fields** you don’t provide (that are not required), will be set to default values. - If you have manually setup a schedule for your **publisher** in the *Web Console’s* publish dialog, then do not provide the `PublishWhenAgentCompletes` parameter or the schedule will be deleted.