|
May 22, 2012 | |
Loading Page, Please wait
API v1 Documentation
The API provides a way to integrate your system with ours, keeping all your data in sync. It allows you to retrieve and manipulate your data just as you can on the web site but without the fancy interface.
Actions
The API is comprised of many individual actions. Each API request must specify an action using the action parameter. To see a complete list of the actions, go to the Actions tab. Action names start with a prefix that indicates the type of data involved, which can help you find the action you want.
Accessing the API
You can access the API using standard web protocols. API requests are made using either HTTP GET or HTTP POST.
The API is located at the following URL:
http://api.firedrummarketing.com/api/v1.jsp
A typical API request using HTTP GET looks like the following:
http://api.firedrummarketing.com/api/v1.jsp?action=<ActionName>&authAPIKey=<YourAPIKey>¶mN=<ValueN>
Parameters
The API parameters are extracted from the query parameters of an HTTP GET or from the request body of an HTTP POST. There is a special, optional parameter — params — that can be a JSON object containing parameters. The parameters in the params object will be overriden by any parameters of the same name in the query string or request body.
Parameters whose names end with [] support multiple values (arrays).
Authentication
There are three different types of authentication used in the API — API Key, username and password, and none.
API Key
To access the majority of the API, you will need an API key. You can get a key and manage your keys using the API itself, but the easiest way to get a key is by using the API Key panel in your Configure Account page. Provide your API key using the authAPIKey parameter. Here's an example API request URL that uses an API Key:
http://api.firedrummarketing.com/api/v1.jsp?action=Category_Add&authAPIKey=1234567890abcdef&name=New+Category&sortSequence=3&publicDisplay=true
Username/Password
Actions that retrieve or manipulate your API Keys require username and password for authentication instead of an API key. Here's an example API request URL that uses username and password:
http://api.firedrummarketing.com/api/v1.jsp?action=APIKey_List&username=scott&password=tiger
None
There are a couple of actions that provide public information and do not require authentication. Here's an example API request URL that requires no authentication:
http://api.firedrummarketing.com/api/v1.jsp?action=API_ActionSchemas
Response
The API responses are always in JSON (JavaScript Object Notation) format. JSON can represent complex data structures yet still be easily readable by humans, which is handy for debugging. The response is a JSON object comprised of three things — the properties unique to each action, the response code, and the echoed request parameters.
Response Code
A response always includes a response code object under the responseCode property. The response code object has two properties — id and name. The response code indicates whether the request was successful or encountered errors. Response code ID 0 indicates success. All other response codes indicate an error condition.
To see the full list of response codes, go to the Response Codes tab.
Parameter Echo
Under the params property, a response includes a copy of the parameters given in the request. This can be useful for debugging, but it can also be convenient when handling the responses.
Pretty Output
A response does not normally include any unnecessary whitespace. This can be difficult to read, however, when you need to do testing or debugging. To have the API return its responses with structural whitespace, add the prettyOutput=true parameter to any request. Here's an example using pretty output:
http://api.firedrummarketing.com/api/v1.jsp?action=API_ActionSchemas&prettyOutput=true
API Changes
There are times when we need to make changes to the API. These changes come in 3 forms:
- New Actions - Actions will be added to expand the capabilities of the API. These additions will not affect your existing use of the API.
- Additions to an Existing Action - When possible, any changes to an existing Action will be done as additional, optional parameters. The defaults to the new parameters will be implemented in such a way that any existing use of the API will not break or have significant, unreasonable behavior changes.
- Changes to an Existing Action - In cases where changes are necessary to the parameters or behavior of an existing Action, we will try to provide these as new versions of the API when possible. If the change must be made to an existing version of the API, then we will try to provide API users with as much advance notice as possible so that they can adjust their integration code if necessary.
Assistance
While we strive to make the API easy to understand and use, it does still require some technical skill, so if you don't have a programmer available, please contact us for a quote on API integration assistance.
To view this information in JSON schema-based format, please see the raw schema.
Action Name Filter:
APIKey_Add
Add an API key
Parameters
| Name | Type | Rules | Description |
|---|---|---|---|
| label | string |
|
|
| userId | integer |
|
APIKey_Expire
Expire an API key
Parameters
| Name | Type | Rules | Description |
|---|---|---|---|
| apiKey | string |
|
APIKey_List
List API keys
Parameters
| Name | Type | Rules | Description |
|---|---|---|---|
| userId | integer |
|
API_ActionSchemas
Retrieve the API action schemas
Parameters
None
API_Documentation
Retrieve the API documentation
Parameters
None
API_ResponseCodes
Retrieve the API response codes
Parameters
None
Campaign_Add
Add a campaign
Parameters
| Name | Type | Rules | Description | ||||
|---|---|---|---|---|---|---|---|
| authentication | boolean | None | |||||
| autoSender | boolean | None | |||||
| autoSenderDelayDays | integer |
|
|||||
| autoSenderDelayMinutes | integer |
|
|||||
| autoSenderLeadDays | integer |
|
|||||
| categoryId[] | array |
|
|||||
Item Rules
|
|||||||
| googleAnalytics | boolean | None | |||||
| memberListId[] | array |
|
|||||
Item Rules
|
|||||||
| name | string |
|
|||||
| publicDisplay | boolean | None | |||||
| userId | integer |
|
|||||
Campaign_Delete
Delete a campaign
Parameters
| Name | Type | Rules | Description |
|---|---|---|---|
| id | integer |
|
Campaign_List
List campaigns
Parameters
None
Campaign_Update
Update campaign settings
Parameters
| Name | Type | Rules | Description | ||||
|---|---|---|---|---|---|---|---|
| authentication | boolean | None | |||||
| autoSender | boolean | None | |||||
| autoSenderDelayDays | integer |
|
|||||
| autoSenderDelayMinutes | integer |
|
|||||
| autoSenderLeadDays | integer |
|
|||||
| categoryId[] | array |
|
|||||
Item Rules
|
|||||||
| googleAnalytics | boolean | None | |||||
| id | integer |
|
|||||
| memberListId[] | array |
|
|||||
Item Rules
|
|||||||
| name | string |
|
|||||
| publicDisplay | boolean | None | |||||
Category_Add
Add a category
Parameters
| Name | Type | Rules | Description | ||||
|---|---|---|---|---|---|---|---|
| excludeCategoryId[] | array |
|
|||||
Item Rules
|
|||||||
| includeCategoryId[] | array |
|
|||||
Item Rules
|
|||||||
| name | string |
|
|||||
| publicDisplay | boolean |
|
|||||
| sortSequence | integer |
|
|||||
| userId | integer |
|
|||||
Category_Delete
Delete a category
Parameters
| Name | Type | Rules | Description |
|---|---|---|---|
| id | integer |
|
|
| orphanCategoryId | integer |
|
Category_List
List categories
Parameters
| Name | Type | Rules | Description | ||||
|---|---|---|---|---|---|---|---|
| id[] | array |
|
|||||
Item Rules
|
|||||||
| includeMemberCount | boolean |
|
|||||
| limit | integer |
|
|||||
| sortBy | string |
|
|||||
| sortOrder | string |
|
|||||
| start | integer |
|
|||||
| userId | integer |
|
|||||
Category_Merge
Merge members from one or more categories into another
Parameters
| Name | Type | Rules | Description | ||||
|---|---|---|---|---|---|---|---|
| destinationCategoryId | integer |
|
|||||
| operation | string |
|
|||||
| sourceCategoryId[] | array | None | |||||
Item Rules
|
|||||||
Category_Orphan_Count
Count members that are only in this category
Parameters
| Name | Type | Rules | Description |
|---|---|---|---|
| categoryId | integer |
|
Category_Orphan_List
List members that are only in this category
Parameters
| Name | Type | Rules | Description |
|---|---|---|---|
| categoryId | integer |
|
Category_Update
Update a category
Parameters
| Name | Type | Rules | Description |
|---|---|---|---|
| id | integer |
|
|
| name | string |
|
|
| publicDisplay | boolean |
|
|
| sortSequence | integer |
|
CustomField_Add
Add a custom field
Parameters
| Name | Type | Rules | Description |
|---|---|---|---|
| label | string |
|
|
| publicDisplay | boolean |
|
|
| userId | integer |
|
CustomField_Delete
Delete a custom field
Parameters
| Name | Type | Rules | Description |
|---|---|---|---|
| id | integer |
|
CustomField_List
List custom fields
Parameters
| Name | Type | Rules | Description |
|---|---|---|---|
| userId | integer |
|
CustomField_Update
Update a custom field
Parameters
| Name | Type | Rules | Description |
|---|---|---|---|
| id | integer |
|
|
| label | string |
|
|
| publicDisplay | boolean |
|
Member_Add
Add a member
Parameters
| Name | Type | Rules | Description | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| anniversaryDate | string |
|
|||||||||||||||||
| birthDate | string |
|
|||||||||||||||||
| categoryId[] | array | None | |||||||||||||||||
Item Rules
|
|||||||||||||||||||
| customField[] | array |
|
|||||||||||||||||
Item Rules
Item Properties
|
|||||||||||||||||||
| string |
|
||||||||||||||||||
| firstName | string |
|
|||||||||||||||||
| lastName | string |
|
|||||||||||||||||
| replaceCategories | string |
|
|||||||||||||||||
| replaceCustomFieldData | boolean |
|
|||||||||||||||||
| updateIfExists | boolean |
|
|||||||||||||||||
| userId | integer |
|
|||||||||||||||||
Member_Count
Count members
Parameters
| Name | Type | Rules | Description | ||||
|---|---|---|---|---|---|---|---|
| anniversaryDate | string |
|
|||||
| birthDate | string |
|
|||||
| categoryId[] | array |
|
|||||
Item Rules
|
|||||||
| customFieldValue[] | array |
|
|||||
Item Rules
|
|||||||
| string |
|
||||||
| enrollDateEnd | string |
|
|||||
| enrollDateStart | string |
|
|||||
| firstName | string |
|
|||||
| includeSubUsers | boolean |
|
|||||
| lastName | string |
|
|||||
| lastSentDateEnd | string |
|
|||||
| lastSentDateStart | string |
|
|||||
| optOutDateEnd | string |
|
|||||
| optOutDateStart | string |
|
|||||
| partialEmail | string |
|
|||||
| status | string |
|
|||||
| userId | integer |
|
|||||
Member_List
List members
Parameters
| Name | Type | Rules | Description | ||||
|---|---|---|---|---|---|---|---|
| anniversaryDate | string |
|
|||||
| birthDate | string |
|
|||||
| categoryId[] | array |
|
|||||
Item Rules
|
|||||||
| customFieldValue[] | array |
|
|||||
Item Rules
|
|||||||
| string |
|
||||||
| enrollDateEnd | string |
|
|||||
| enrollDateStart | string |
|
|||||
| firstName | string |
|
|||||
| includeSubUsers | boolean |
|
|||||
| lastName | string |
|
|||||
| lastSentDateEnd | string |
|
|||||
| lastSentDateStart | string |
|
|||||
| limit | integer |
|
|||||
| optOutDateEnd | string |
|
|||||
| optOutDateStart | string |
|
|||||
| partialEmail | string |
|
|||||
| sortBy | string |
|
|||||
| sortOrder | string |
|
|||||
| start | integer |
|
|||||
| status | string |
|
|||||
| userId | integer |
|
|||||
Member_Update
Update a member
Parameters
| Name | Type | Rules | Description | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| anniversaryDate | string |
|
|||||||||||||||||
| birthDate | string |
|
|||||||||||||||||
| categoryId[] | array | None | |||||||||||||||||
Item Rules
|
|||||||||||||||||||
| customField[] | array |
|
|||||||||||||||||
Item Rules
Item Properties
|
|||||||||||||||||||
| string |
|
||||||||||||||||||
| firstName | string |
|
|||||||||||||||||
| id | integer |
|
|||||||||||||||||
| lastName | string |
|
|||||||||||||||||
| replaceCategories | string |
|
|||||||||||||||||
| replaceCustomFieldData | boolean |
|
|||||||||||||||||
Sent_Count
Count sent emails
Parameters
| Name | Type | Rules | Description | ||||
|---|---|---|---|---|---|---|---|
| campaignId | integer |
|
|||||
| categoryId[] | array |
|
|||||
Item Rules
|
|||||||
| includeAutoSendings | boolean |
|
|||||
| includeBulkSendings | boolean |
|
|||||
| issueNumber[] | integer |
|
|||||
| memberId[] | array |
|
|||||
Item Rules
|
|||||||
| sendingEndDate | string |
|
|||||
| sendingStartDate | string |
|
|||||
Test_Ping
Unauthenticated ping
Parameters
None
Response Codes
| ID | Name |
|---|---|
| 0 | SUCCESS |
| 1 | SYSTEM_ERROR |
| 2 | INVALID_ACTION |
| 3 | VALIDATION_ERROR |
| 4 | AUTH_REQUIRED |
| 5 | ACCESS_DENIED |
| 6 | AUTH_INVALID_SESSION |
| 7 | AUTH_INVALID_USERNAME_AND_PASSWORD |
| 8 | AUTH_API_KEY_NOT_FOUND |
| 9 | AUTH_API_KEY_EXPIRED |
| 10 | AUTH_USER_NOT_ACTIVE |
| 100 | APIKEY_INVALID |
| 101 | APIKEY_ALREADY_EXPIRED |
| 102 | APIKEY_KEY_LIMIT_REACHED |
| 200 | MEMBER_INVALID_EMAIL_ADDRESS |
| 201 | MEMBER_INVALID_CATEGORY |
| 202 | MEMBER_ALREADY_EXISTS |
| 203 | MEMBER_NO_CATEGORIES |
| 204 | MEMBER_LIMIT_EXCEEDED |
| 205 | MEMBER_INVALID |
| 300 | CATEGORY_NAME_ALREADY_EXISTS |
| 301 | CATEGORY_INVALID |
| 302 | CATEGORY_LIMIT_EXCEEDED |
| 303 | CATEGORY_ORPHANED_MEMBERS_NEED_NEW_CATEGORY |
| 400 | CUSTOM_FIELD_LABEL_ALREADY_EXISTS |
| 401 | CUSTOM_FIELD_INVALID |
| 402 | CUSTOM_FIELD_LIMIT_EXCEEDED |
| 500 | CAMPAIGN_NAME_ALREADY_EXISTS |
| 501 | CAMPAIGN_INVALID |
| 502 | CAMPAIGN_LIMIT_EXCEEDED |
| 503 | CAMPAIGN_INVALID_CATEGORY |
| 504 | CAMPAIGN_INVALID_MEMBER_LIST |
| FireDrum Internet Marketing 1.877.347.3376 7898 E. Acoma Drive Scottsdale , Arizona 85260 |