diff --git a/honeypot.api.php b/honeypot.api.php
new file mode 100644
index 0000000..2b6f2e7
--- /dev/null
+++ b/honeypot.api.php
@@ -0,0 +1,43 @@
+<?php
+
+/**
+ * @file
+ *
+ * API Functionality for Honeypot module.
+ */
+
+/**
+ * @addtogroup hooks
+ * @{
+ */
+
+/**
+ * Add time to the Honeypot time limit.
+ *
+ * In certain circumstances (for example, on forms routinely targeted by
+ * spammers), you may want to add an additional time delay. You can use this
+ * hook to return additional time (in seconds) to honeypot when it is calculates
+ * the time limit for a particular form.
+ *
+ * @param $honeypot_time_limit
+ *   The current honeypot time limit (in seconds), to which any additions you
+ *   return will be added.
+ * @param $form_values
+ *   Array of form values (may be empty).
+ * @param $number
+ *   Number of times the current user has already fallen into the honeypot trap.
+ *
+ * @return $additions
+ *   Additional time to add to the honeypot_time_limit, in seconds (integer).
+ */
+function hook_honeypot_time_limit($honeypot_time_limit, $form_values, $number) {
+  // If 'some_interesting_value' is set in your form, add 10 seconds to limit.
+  if (!empty($form_values['some_interesting_value']) && $form_values['some_interesting_value']) {
+    $additions = 10;
+  }
+  return $additions;
+}
+
+/**
+ * @} End of "addtogroup hooks".
+ */
diff --git a/honeypot.module b/honeypot.module
index 14ca2c0..ffe5c19 100644
--- a/honeypot.module
+++ b/honeypot.module
@@ -194,13 +194,13 @@ function _honeypot_time_restriction_validate($form, &$form_state) {
   $honeypot_time = $form_state['values']['honeypot_time'];
 
   // Get the honeypot_time_limit.
-  $time_limit = honeypot_get_time_limit();
+  $time_limit = honeypot_get_time_limit($form_state['values']);
 
   // Make sure current time - (time_limit + form time value) is greater than 0.
   // If not, throw an error.
   if (time() < ($honeypot_time + $time_limit)) {
     _honeypot_log($form_state['values']['form_id'], 'honeypot_time');
-    $time_limit = honeypot_get_time_limit();
+    $time_limit = honeypot_get_time_limit($form_state['values']);
     $form_state['values']['honeypot_time'] = time();
     form_set_error('', t('There was a problem with your form submission. Please wait @limit seconds and try again.', array('@limit' => $time_limit)));
   }
@@ -231,8 +231,11 @@ function _honeypot_log($form_id, $type) {
 
 /**
  * Look up the time limit for the current user.
+ *
+ * @param $form_values
+ *   Array of form values (optional).
  */
-function honeypot_get_time_limit() {
+function honeypot_get_time_limit($form_values = array()) {
   global $user;
   $honeypot_time_limit = variable_get('honeypot_time_limit', 5);
 
@@ -247,6 +250,10 @@ function honeypot_get_time_limit() {
       $number = db_result(db_query("SELECT COUNT(*) FROM {flood} WHERE event = '%s' AND hostname = '%s' AND timestamp > %d", 'honeypot', ip_address(), time() - variable_get('honeypot_expire', 300)));
     }
     $honeypot_time_limit = $honeypot_time_limit + (int) exp($number);
+    $additions = module_invoke_all('honeypot_time_limit', $honeypot_time_limit, $form_values, $number);
+    if (count($additions)) {
+      $honeypot_time_limit += array_sum($additions);
+    }
   }
   return $honeypot_time_limit;
 }
