Files

The API to access the Files object collection follows the conventions described in Version 5 Overview.

Supported Operations

Operation HTTP Verb URL Format Ability Requirements
Read GET https://pi.pardot.com/api/v5/objects/files/<id>?<params> Marketing > Content > Files > View ability
Create POST https://pi.pardot.com/api/v5/objects/files?<params> Marketing > Content > Files > Create/Edit ability
Update PATCH https://pi.pardot.com/api/v5/objects/files/<id>?<params> Marketing > Content > Files > Create/Edit ability
Delete DELETE https://pi.pardot.com/api/v5/objects/files/<id> Marketing > Content > Files > Delete ability
Query GET https://pi.pardot.com/api/v5/objects/files?<params> Marketing > Content > Files > View ability

Fields

Required Editable Fields

None.

Optional Editable Fields

Field Type Description
name String Name of the object for identification in Pardot. Uses the name of the file being uploaded if not specified on create.
folderId Integer ID of the folder containing this object. Uses the asset type's uncategorized folder if not specified on create.
campaignId Integer Pardot campaign related to this object. Uses null if not specified on create.
vanityUrlPath String Vanity URL path (excluding protocol and host). Must be unique for each tracker domain. E.g. /my-link. The value assumes empty (/) if not specified on create.
trackerDomainId Integer ID of the TrackerDomain to use in the URL for this object. Uses the primary tracker domain for the account if not specified on create.

Read-Only Fields

Field Type Description
id Integer ID of the object.
salesforceId String ID of the Salesforce object representing this object.
url String URL where the downloadable file can be accessed.
size Integer Size (in bytes) of the downloadable file.
bitlyIsPersonalized Boolean True if the object has a bitly URL that is personalized.
bitlyShortUrl String Bitly URL if present.
vanityUrl String Vanity URL if present.
trackerDomain TrackerDomain object JSON object representing the TrackerDomain to use in the URL for this object. See documentation for TrackerDomain for fields.
isTracked Boolean True if downloads of this file are recorded as visitor activity.
isDeleted Boolean True if the object is in the recycle bin in Pardot.
createdAt DateTime Creation time of the object.
updatedAt DateTime Last update time of the object.
createdById Integer ID of the user who created this object.
updatedById Integer ID of the user who last updated this object.
createdBy User User object representing the user who created this object. See documentation for User for fields.
updatedBy User User object representing the user who last updated this object. See documentation for User for fields.
trackerDomain TrackerDomain Tracker Domain object representing the tracker domain that was set on Create. See documentation for Tracker Domain for fields. A null value indicates that the object will use the default tracker domain for the account.
campaign Campaign Campaign object representing the campaign that was set on Create. See documentation for Campaign for fields.
folder Folder JSON object representing the folder for this object. See documentation for Folder for fields.

File Creation

A file creation POST request must be a multipart request as described in Version 5 Overview.

If the name field is not provided in the input body during creation, the filename of the uploaded file part will be used for the name. A blank or null name cannot be explicitly included in the input for File creation.

Example request:

POST /api/v5/objects/files?fields=id,name,url,createdBy.id,createdBy.username HTTP/1.1
Host: pi.pardot.com
Authorization: Bearer <access-token>
Content-Type: multipart/form-data; boundary=----boundary-marker

----boundary-marker
Content-Disposition: form-data; name="file"; filename="conference_venues.pdf"

<file-data>
----boundary-marker
Content-Disposition: form-data; name="input"

{
    "name": "Conference Venues",
    "campaignId": 72836
}
----boundary-marker

Example response:

This example does not show all the headers, and whitespace has been added to make it easier to read.

HTTP/1.1 201 Created
Content-Type: application/json
Location: https://pi.pardot.com/api/v5/objects/files/8736?fields=id,name,url,createdBy.id,createdBy.username

{
    "id": 8736,
    "name": "Conference Venues",
    "url": "https://go.pardot.com/<generated-path-components>/conference_venues.pdf",
    "createdBy": {
        "id": 457,
        "username": "jsmith@mycompany.com"
    }
}

The fields in the response body and Location header are the same as the fields specified on the example request.

File Update

A file update PATCH request can be a multipart request as described in Version 5 Overview. It can also be a simple request that has a JSON body with fields to update.

If you do not specify name, the name of the File is not changed. Note: This is different from a File create POST request which uses the filename of the uploaded file part as the default for name.

File Deletion

Deleting a file follows the conventions described in the Version 5 Overview. You cannot delete a file that is referenced by certain Pardot objects. For example, if you try to delete a file that is referenced by a dynamic list, a 204 Method Not Allowed status is returned and the file is not deleted.

File Query

Retrieving a collection of files follows the conventions described in Version 5 Overview.

Sortable Fields

When executing a query, the following fields can be specified in the orderBy parameter. See the conventions for query described in the Version 5 Overview.

Example request:

GET /api/v5/objects/files?fields=id,name,url,createdBy.id,createdBy.username&orderBy=id
Host: pi.pardot.com
Authorization: Bearer <access-token>

Example response:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "values": [
        {
            "id": 8736,
            "name": "Conference Venues",
            "url": "https://go.pardot.com/<generated-path-components>/conference_venues.pdf",
            "createdBy": {
                "id": 457,
                "username": "jsmith@mycompany.com"
            }
        }
    ]
}

Filtering Results

When executing a query, the following parameters can be used to filter the returned results. These parameters can be specified in the request along with any shared parameters defined in Version 5 Overview. When specifying more than one parameter, all parameters must match the record in order for it to be returned in the results.

Parameter Description
id Returns any files where ID is equal to the given integer value.
idGreaterThan Returns any files where ID is greater than the specified value, non-inclusive.
idGreaterThanOrEqualTo Returns any files where ID is greater than or equal to the specified value.
idLessThan Returns any files where ID is less than the specified value, non-inclusive.
idLessThanOrEqualTo Returns any files where ID is less than or equal to the specified value.

Example request:

GET /api/v5/objects/files?fields=id,name&orderBy=id desc&idGreaterThan=150&idLessThan=200
Host: pi.pardot.com
Authorization: Bearer <access-token>

Example response:

HTTP/1.1 200 OK
Content-Type: application/json
{
    "values": [
        {
            "id": 168,
            "name": "Spring Flyer PDF"
        },
        {
            "id": 151,
            "name": "Winter Flyer PDF"
        }
    ]
}