We the People API

The We the People API currently provides methods to submit signatures to We the People, the White House petitions system, and to access publicly available data on petitions.

Quick Links:

  • Submitting signatures to White House petitions requires an API key. Request one here.
  • Use of the write-API methods is governed by an additional Terms of Use.
  • Users issuing requests/posts in excess of 1,500 per minute may experience degraded performance and may be blocked entirely.
  • For those who don't need live data, we've provided a historical SQL dump of the dataset exposed via the API. You can download it here: https://api.whitehouse.gov/v1/downloads/data.sql.zip (404.5 MB, May 31 2015)

We've also published a gallery of projects using the We the People API, including links to live examples and GitHub repositories.

To learn more about open data and open source projects at the White House, visit WhiteHouse.gov/developers or follow our tech team on Twitter @WHWeb

Contact us if you have any questions about the API.

petitions

GET /v1/petitions

Returns a list of petitions, individual petitions, and signatures attached to an individual petition.

Details

  • Non-Latin characters are replaced with an "x".
  • Limits: 10 requests per second.
  • Developers who need historic data on all public petitions should consider using our bulk data download, described above.

Arguments
  • int isPublic GET (optional)
    When set to 1, this will only return petitions that are public.
  • int isSignable GET (optional)
    When set to 1, this will only return petitions accepting signatures. When set to 0, returns only un-signable petitions.
  • int createdBefore GET * (optional)
    Filters results to display items created before specified time. Accepts Unix timestamp. (There's a handy unix timestamp converter here.)

    createdBefore will not be supported in API version 2.

  • int createdAfter GET * (optional)
    Filters results to display items created after specified time. Accepts Unix timestamp. (There's a handy unix timestamp converter here.)

    createdAfter will not be supported in API version 2.

  • int createdAt GET * (optional)
    Filters results to display items created (or published) at specified time. Accepts Unix timestamp. (There's a handy unix timestamp converter here.)

    createdAt will not be supported in API version 2.

  • int limit GET (optional)
    The maximum number of results that may be returned. E.g., to return results 10-20, an offset of 10 and limit of 10 would be passed. Maximum limit is 1000; developers who need historic data on all public petitions should consider using our bulk data download, described above.
  • int offset GET (optional)
    Offset the returned results by this number. E.g., to return results 10-20, an offset of 10 and limit of 10 would be passed.
  • string title GET (optional)
    Filters results by keyword or phrase in the Title.
  • string body GET (optional)
    Filters results by keyword or phrase in the Body.
  • int signatureThresholdCeiling GET (optional)
    Filters results by maximum Signature Threshold.
  • int signatureThreshold GET (optional)
    Filters results by exact Signature Threshold.
  • int signatureThresholdFloor GET (optional)
    Filters results by minimum Signature Threshold.
  • int signatureCountCeiling GET (optional)
    Filters results by maximum Signature Count.
  • int signatureCount GET (optional)
    Filters results by exact Signature Count.
  • int signatureCountFloor GET (optional)
    Filters results by minimum Signature Count.
  • string url GET (optional)
    Filters results by Petition URL.
  • string status GET (optional)
    Filters results by Status. Allowed values are "open", "pending response", "responded", and "closed".
  • int responseID GET (optional)
    Filters results by Response ID .
  • int responseAssociationTimeBefore GET (optional)
    Filters results to display items with a Response Assocation before a specified time. Accepts Unix timestamp.
  • int mock GET (optional)
    When set to 1, this will cause the service to return a mock response.
Response Example
{
  "metadata": {
    "responseInfo": {
      "status": 200,
      "developerMessage": "OK",
      "userMessage": "",
      "errorCode": "",
      "moreInfo": ""
    },
    "requestInfo": {
      "apiVersion": 1,
      "resource": "petitions",
      "query": {
        "body": null,
        "createdAfter": null,
        "createdAt": null,
        "createdBefore": "1352924535",
        "isPublic": 1,
        "isSignable": null,
        "limit": "3",
        "mock": 0,
        "offset": "0",
        "petitionsDefaultLimit": 1000,
        "publicThreshold": 149,
        "responseId": null,
        "signatureCount": null,
        "signatureCountCeiling": null,
        "signatureCountFloor": 0,
        "signatureThreshold": null,
        "signatureThresholdCeiling": null,
        "signatureThresholdFloor": null,
        "status": null,
        "title": null,
        "url": null,
        "websiteUrl": "https://petitions.whitehouse.gov"
      }
    },
    "resultset": {
      "count": 809,
      "limit": 3,
      "offset": 0
    }
  },
  "results": [
    {
      "id": "50a3fd762f2c88cd65000015",
      "type": "petition",
      "title": "Secure resources and funding, and begin construction of a Death Star by 2016.",
      "body": "Those who sign here petition the United States government to secure funding and resources, and begin construction on a Death Star by 2016.\r\n\r\nBy focusing our defense resources into a space-superiority platform and weapon system such as a Death Star, the government can spur job creation in the fields of construction, engineering, space exploration, and more, and strengthen our national defense.\r\n\r\n",
      "issues": [
        {
          "id": "12",
          "name": "Defense"
        },
        {
          "id": "97",
          "name": "Job Creation"
        },
        {
          "id": "139",
          "name": "Science and Space Policy"
        }
      ],
      "signatureThreshold": 25000,
      "signatureCount": 34435,
      "signaturesNeeded": 0,
      "url": "https://petitions.whitehouse.gov/petition/secure-resources-and-funding-and-begin-construction-death-star-2016/wlfKzFkN",
      "deadline": 1355516534,
      "status": "responded",
      "response": {
        "id": "716",
        "url": "https://petitions.whitehouse.gov/response/isnt-petition-response-youre-looking",
        "associationTime": "1357944472"
      },
      "created": 1352924534,
      "isSignable": false,
      "isPublic": true
    },
    {
      "id": "50a3ee296ce61c7f7100000b",
      "type": "petition",
      "title": "Ban the practice of circumcising individuals under the age of 18.",
      "body": "Circumcision is a barbaric tribal practice that amounts to child abuse. Before any individual under go any permanent body modification such as tattooing or sex reassignment surgery they must be considered old enough to understand the consequences. You cannot understand the ramifications of this act to your physical being until after puberty, when your genitals have fully developed. ",
      "issues": [
        {
          "id": "4",
          "name": "Civil Rights and Liberties"
        },
        {
          "id": "25",
          "name": "Health Care"
        },
        {
          "id": "28",
          "name": "Human Rights"
        }
      ],
      "signatureThreshold": 25000,
      "signatureCount": 3085,
      "signaturesNeeded": 21915,
      "url": "https://petitions.whitehouse.gov/petition/ban-practice-circumcising-individuals-under-age-18/DbCyTjRH",
      "deadline": 1355512617,
      "status": "closed",
      "response": null,
      "created": 1352920617,
      "isSignable": false,
      "isPublic": true
    },
    {
      "id": "50a3e438adfd95740f000011",
      "type": "petition",
      "title": "Remove HEMP (Non-Psychoactive Cannabis) from the Federal governments banned substance list. Make it Legal to Grow in USA",
      "body": "There is no reason for it to be illegal. It won't make you high. It is Not Marijuana, and it alone could make enough oil to free the nation. Hemp is the most versatile plant in the Universe, its strong enough to make rope, and diverse enough to make oil. This plant will grow almost everywhere with very little maintenance and without watering.And it is insect resistant naturally. It grows quickly and the steps to turn it into gasoline are very simple. We could replace our need for anything other than hemp in a matter of Months, not years.\r\n\r\nFuel:\r\n\r\n* Hemp can produce 10 times more methanol than corn. \r\n* Hemp is Earth's number-one biomass resource; it is capable of producing 10 tons per acre in four months.\r\n",
      "issues": [
        {
          "id": "1",
          "name": "Agriculture"
        },
        {
          "id": "3",
          "name": "Budget and Taxes"
        },
        {
          "id": "20",
          "name": "Environment"
        }
      ],
      "signatureThreshold": 25000,
      "signatureCount": 5091,
      "signaturesNeeded": 19909,
      "url": "https://petitions.whitehouse.gov/petition/remove-hemp-non-psychoactive-cannabis-federal-governments-banned-substance-list-make-it-legal-grow/yr51rXsx",
      "deadline": 1355510072,
      "status": "closed",
      "response": null,
      "created": 1352918072,
      "isSignable": false,
      "isPublic": true
    }
  ]
}
Errors
What happens in case of an unknown error?
If the request fails due to an unpredicted problem, what will the response look like?
{
  "metadata": {
    "responseInfo": {
      "status": "599",
      "developerMessage:": "Sorry. Something went wrong. We're not sure what. And we're not sure 599 is an accurate status code for your error. Please file a ticket in the issue queue to help us understand what caused this error: https://github.com/whitehouse/petitions/issues?state=open",
      "userMessage": "",
      "errorCode": "",
      "moreInfo": ""
    }
  }
}
    

GET /v1/petitions/{petition_id}

Returns a petition matching the petition id.

Arguments
  • string petition_id URL
    The petition id of the petition to get.
  • int mock GET (optional)
    When set to 1, this will cause the service to return a mock response.
Response Example
{
  "metadata": {
    "responseInfo": {
      "status": 200,
      "developerMessage": "OK",
      "userMessage": "",
      "errorCode": "",
      "moreInfo": ""
  },
  "resultset": {
    "count": 1,
    "limit": 1,
    "offset": 0
  }
},
"results": [
  {
    "id": "50a3fd762f2c88cd65000015",
    "type": "petition",
    "title": "Secure resources and funding, and begin construction of a Death Star by 2016.",
    "body": "Those who sign here petition the United States government to secure funding and resources, and begin construction on a Death Star by 2016.\r\n\r\nBy focusing our defense resources into a space-superiority platform and weapon system such as a Death Star, the government can spur job creation in the fields of construction, engineering, space exploration, and more, and strengthen our national defense.\r\n\r\n",
    "issues": [
      {
        "id": "12",
        "name": "Defense"
      },
      {
        "id": "97",
        "name": "Job Creation"
      },
      {
        "id": "139",
        "name": "Science and Space Policy"
      }
    ],
    "signatureThreshold": 25000,
    "signatureCount": 34435,
    "signaturesNeeded": 0,
    "url": "https://petitions.whitehouse.gov/petition/secure-resources-and-funding-and-begin-construction-death-star-2016/wlfKzFkN",
    "deadline": 1355516840,
    "status": "responded",
    "response": {
        "id": "716",
        "url": "/response/isnt-petition-response-youre-looking",
        "associationTime": "1357944472"
      },
      "created": 1352924840,
      "isSignable": false,
      "isPublic": true
    }
  ]
}
Errors
What happens if an invalid petition ID is requested?
If the request specifies an invalid petition ID, what will the response look like?
{
  "metadata": {
    "responseInfo": {
      "status": "404",
      "developerMessage:": "Petition {petition_id} not found.",
      "userMessage": "The petition that you requested does not exist.",
      "errorCode": "84",
      "moreInfo": "See the documentation: https://petitions.whitehouse.gov/developers#petitions-retrieve-error-404"
    }
  }
}
    
What happens in case of server error?
If the request fails due to a server problem, what will the response look like?
{
  "metadata": {
    "responseInfo": {
      "status": "599",
      "developerMessage:": "Class could not be instantiated.",
      "userMessage": "The resource that you requested is temporarily unavailable.",
      "errorCode": "83",
      "moreInfo": "See the documentation: https://petitions.whitehouse.gov/developers#petitions-retrieve-error-599"
    }
  }
}
    
Implementation Examples
JavaScript
Thermometer
Display the status of a petition as a thermometer.

GET /v1/petitions/{petition_id}/signatures

Display signatures attached to a petition. Unsupported non-Latin characters are replaced with an "x".

Arguments
  • string petition_id URL
    The petition id of the petition whose signatures we are getting.
  • string city GET (optional)
    Filters results by associated city.
  • string state GET (optional)
    Filters results by associated state.
  • int zipcode GET (optional)
    Filters results by associated zipcode.
  • string country GET (optional)
    Filters results by associated country.
  • int createdBefore GET * (optional)
    Filters results to display items created before specified time. Accepts Unix timestamp. (There's a handy unix timestamp converter here.)

    createdBefore will not be supported in API version 2.

  • int createdAfter GET * (optional)
    Filters results to display items created after specified time. Accepts Unix timestamp. (There's a handy unix timestamp converter here.)

    createdAfter will not be supported in API version 2.

  • int createdAt GET * (optional)
    Filters results to display items created before specified time. Accepts Unix timestamp. (There's a handy unix timestamp converter here.)

    createdAt will not be supported in API version 2.

  • int limit GET (optional)
    The maximum number of results that may be returned. E.g., to return results 10-20, an offset of 10 and limit of 10 would be passed. Maximum limit is 1000; developers who need historic data on all public petitions should consider using our bulk data download, described above.
  • int offset GET (optional)
    Offset the returned results by this number. E.g., to return results 10-20, an offset of 10 and limit of 10 would be passed.
  • int mock GET (optional)
    When set to 1, this will cause the service to return a mock response.
Response Example
{
  "metadata": {
    "responseInfo": {
      "status": 200,
      "developerMessage": "OK",
      "userMessage": "",
      "errorCode": "",
      "moreInfo": ""
    },
    "resultset": {
      "count": 24533539,
      "limit": 16,
      "offset": 0
    }
  },
  "results": [
    {
      "id": "4e7b218a4bd504c17a000001",
      "type": "signature",
      "petitionId": "4e7b21632ee8d04577000000",
      "name": "K. S.",
      "city": "",
      "state": "",
      "zip": "",
      "created": 1316692362
    },
    {
      "id": "4e7b2269709f03747a000001",
      "type": "signature",
      "petitionId": "4e7b21632ee8d04577000000",
      "name": "A. J.",
      "city": "Washington",
      "state": "DC",
      "zip": "20502",
      "created": 1316692585
    },
    {
      "id": "4e7b229f709f036f7a000002",
      "type": "signature",
      "petitionId": "4e7b21632ee8d04577000000",
      "name": "C. B.",
      "city": "Alexandria",
      "state": "VA",
      "zip": "22193",
      "created": 1316692639
    },
    {
      "id": "4e7b22b58d8c37d875000001",
      "type": "signature",
      "petitionId": "4e7b21632ee8d04577000000",
      "name": "B. B.",
      "city": "Washington",
      "state": "DC",
      "zip": "20502",
      "created": 1316692661
    },
    {
      "id": "4e7b23768d8c37d775000000",
      "type": "signature",
      "petitionId": "4e7b21632ee8d04577000000",
      "name": ". .",
      "city": "",
      "state": "",
      "zip": "",
      "created": 1316692854
    },
    {
      "id": "4e7b23d011fb9c3e7a000001",
      "type": "signature",
      "petitionId": "4e7b21632ee8d04577000000",
      "name": "E. M.",
      "city": "Washington",
      "state": "DC",
      "zip": "20502",
      "created": 1316692944
    },
    {
      "id": "4e7b23efcf436a2274000002",
      "type": "signature",
      "petitionId": "4e7b21632ee8d04577000000",
      "name": "A. J.",
      "city": "Arlington",
      "state": "MA",
      "zip": "02476",
      "created": 1316692975
    },
    {
      "id": "4e7b23f8ec309e5f76000001",
      "type": "signature",
      "petitionId": "4e7b21632ee8d04577000000",
      "name": "B. B.",
      "city": "Augusta",
      "state": "GA",
      "zip": "30907",
      "created": 1316692984
    },
    {
      "id": "4e7b23fc4bd5043606000000",
      "type": "signature",
      "petitionId": "4e7b21632ee8d04577000000",
      "name": "S. P.",
      "city": "Montgomery Village",
      "state": "MD",
      "zip": "20886",
      "created": 1316692988
    },
    {
      "id": "4e7b2406cf436a2874000001",
      "type": "signature",
      "petitionId": "4e7b23c2ec309e5e76000001",
      "name": "T. C.",
      "city": "Washington",
      "state": "DC",
      "zip": "20010",
      "created": 1316692998
    },
    {
      "id": "4e7b241d709f036d7a000001",
      "type": "signature",
      "petitionId": "4e7b21632ee8d04577000000",
      "name": "C. B.",
      "city": "Woodbridge",
      "state": "VA",
      "zip": "22193",
      "created": 1316693021
    },
    {
      "id": "4e7b25fd11fb9c3c7a000001",
      "type": "signature",
      "petitionId": "4e7b21632ee8d04577000000",
      "name": "A. T.",
      "city": "Arlington",
      "state": "MA",
      "zip": "02476",
      "created": 1316693501
    },
    {
      "id": "4e7b268c4bd504c37a000001",
      "type": "signature",
      "petitionId": "4e7b21632ee8d04577000000",
      "name": "K. S.",
      "city": "Washington",
      "state": "DC",
      "zip": "20009",
      "created": 1316693644
    },
    {
      "id": "4e7b2730cf436a2574000001",
      "type": "signature",
      "petitionId": "4e7b21632ee8d04577000000",
      "name": "E. L.",
      "city": "Washington",
      "state": "DC",
      "zip": "20008",
      "created": 1316693808
    },
    {
      "id": "4e7b273a8d8c37dc75000000",
      "type": "signature",
      "petitionId": "4e7b2719b25636dd79000001",
      "name": "T. C.",
      "city": "Washington",
      "state": "DC",
      "zip": "20010",
      "created": 1316693818
    },
    {
      "id": "4e7b27ee709f03727a000000",
      "type": "signature",
      "petitionId": "4e7b21632ee8d04577000000",
      "name": "E. L.",
      "city": "Washington",
      "state": "DC",
      "zip": "20001",
      "created": 1316693998
    }
  ]
}
Errors
What happens if an invalid petition ID is requested?
If the request specifies an invalid petition ID, what will the response look like?
{
  "metadata": {
    "responseInfo": {
      "status": "404",
      "developerMessage:": "Petition {petition_id} not found.",
      "userMessage": "The petition that you requested does not exist.",
      "errorCode": "84",
      "moreInfo": "See the documentation: https://petitions.whitehouse.gov/developers#petitions-signatures-error-404"
    }
  }
}
    
What happens in case of server error?
If the request fails due to a server problem, what will the response look like?
{
  "metadata": {
    "responseInfo": {
      "status": "599",
      "developerMessage:": "Class could not be instantiated.",
      "userMessage": "The resource that you requested is temporarily unavailable.",
      "errorCode": "83",
      "moreInfo": "See the documentation: https://petitions.whitehouse.gov/developers#petitions-signatures-error-599"
    }
  }
}
    

signatures

POST /v1/signatures Authentication Required

Send an independently gathered signature to a petition.

Arguments
  • string api_key GET
    The API Key.
  • array d POST
    The signature array. The following array keys are required: petition_id, email, first_name, last_name. Accepted request content types: application/json, application/xml, text/xml, application/x-www-form-urlencoded, application/vnd.php.serialized
Request Example
{
  "petition_id": "PetitionIdGoesHere",
  "email": "john.doe@example.com",
  "first_name": "John",
  "last_name": "Doe",
  "zip": 55555
}
Response Example
{
  "metadata": {
    "responseInfo": {
      "status": 200,
      "developerMessage": "OK",
      "userMessage": "",
      "errorCode": "",
      "moreInfo": ""
    }
  }
}
Errors
What happens if my submission does not include all the required fields?
I am building a web application that will post petition signatures via the write API. I can definitely foresee a scenario where all of the required fields were not gathered. If I am trying to post a signature via the API at http://api.whitehouse.gov/v1/signatures that does not contain all of the required fields, will I get an error response?
{
  "metadata": {
    "responseInfo": {
      "status": "400",
      "developerMessage:": "Missing required fields. These fields are required: signature_source_api_key, petition_id, email, first_name, last_name.",
      "userMessage": "Missing required fields. These fields are required: signature_source_api_key, petition_id, email, first_name, last_name.",
      "errorCode": "75",
      "moreInfo": "See the documentation: https://petitions.whitehouse.gov/developers#signatures-create-error-400"
    }
  }
}
    
What happens when I pass an invalid API key with my request?
I am building a web application that will submit signatures via the write API and confirm that signatures have been validated via the validations resource. If I pass an invalid API key with my request, will I get a response?
{
  "metadata": {
    "responseInfo": {
      "status": "401",
      "developerMessage:": "Invalid key.",
      "userMessage": "The key provided is not valid.",
      "errorCode": "85",
      "moreInfo": "See the documentation: https://petitions.whitehouse.gov/developers#signatures-create-error-401"
    }
  }
}
    
What happens when I try to sign a petition that is closed?
I am building a web application that will post petition signatures via the write API. If I am trying to post a signature via the API at http://api.whitehouse.gov/v1/signatures to a petition that is more then 30 days old and has since been closed, will I get a response? If so, is there a different response if the petition was closed prior to the 30 days?
{
  "metadata": {
    "responseInfo": {
      "status": "403",
      "developerMessage:": "Petition {petition_id} cannot accept more signatures. (If you believe this petition was not open for a full 30 days, it's possible that it was flagged and removed for violation of terms of service.)",
      "userMessage": "This petition cannot accept more signatures. You can open a new petition on this issue here: https://edit.dev8.petitions.whitehouse.gov/.",
      "errorCode": "74",
      "moreInfo": "See the documentation: https://petitions.whitehouse.gov/developers#signatures-create-error-403"
    }
  }
}
    
What happens when I try to sign a petition that doesn't exist?
I am building a web application that will post petition signatures via the write API. If I am trying to post a signature via the API at http://api.whitehouse.gov/v1/signatures for a petition that does not actually exist, will I get an error response?
{
  "metadata": {
    "responseInfo": {
      "status": "404",
      "developerMessage:": "No such petition {petition_id}.",
      "userMessage": "The petition you are trying to sign doesn't exist.",
      "errorCode": "76",
      "moreInfo": "See the documentation: https://petitions.whitehouse.gov/developers#signatures-create-error-404"
    }
  }
}
    
What happens when the API service is not available?
I am building a web application that will post petition signatures via the write API. If I am trying to post a signature via the API at http://api.whitehouse.gov/v1/signatures and the service is down, will I get a response?
{
  "metadata": {
    "responseInfo": {
      "status": "500",
      "developerMessage:": "Sorry. Service is not available right now.",
      "userMessage": "Sorry. We are unable to process your signature right now.",
      "errorCode": "73",
      "moreInfo": "See the documentation: https://petitions.whitehouse.gov/developers#signatures-create-error-500"
    }
  }
}
    

validations

GET /v1/validations Authentication Required

Returns a list of validations matching passed parameters.

Arguments
  • string api_key GET
    The API key.
  • string petition_id GET (optional)
    Optionally filter by Petition ID.
  • int mock GET (optional)
    When set to 1, this will cause the service to return a mock response.
  • int offset GET (optional)
    Offset the returned results by this number. E.g., to return results 10-20, an offset of 10 and limit of 10 would be passed.
  • int limit GET (optional)
    The maximum number of results that may be returned. E.g., to return results 10-20, an offset of 10 and limit of 10 would be passed. Maximum limit is 1000.
Response Example
{
  "metadata": {
    "responseInfo": {
      "status": 200,
      "developerMessage": "OK",
      "userMessage": "",
      "errorCode": "",
      "moreInfo": ""
    },
    "resultset": {
      "count": 10,
      "limit": 10,
      "offset": 0
    }
  },
  "results": [
    {
      "vid": "651",
      "email": "test1@example.com",
      "signature_id": "527be8dc9ccf2c266a000000",
      "petition_id": "52796fe3362c79771d00000e"
    },
    {
      "vid": "656",
      "email": "test2@example.com",
      "signature_id": "527c01bc9ccf2caa41000000",
      "petition_id": "52796fe3362c79771d00000e"
    },
    {
      "vid": "316796",
      "email": "test3@example.com",
      "signature_id": "531759040c7785b81d000000",
      "petition_id": "53175854f514004636000005"
    },
    {
      "vid": "316801",
      "email": "test4@example.com",
      "signature_id": "5317791e0c77855b7b000000",
      "petition_id": "53175854f514004636000005"
    },
    {
      "vid": "316806",
      "email": "test5@example.com",
      "signature_id": "531795f20c77850750000000",
      "petition_id": "53179202f51400463600000a"
    },
    {
      "vid": "316811",
      "email": "test6@example.com",
      "signature_id": "531795f20c77850750000001",
      "petition_id": "531791ae362c790460000007"
    },
    {
      "vid": "316816",
      "email": "test7@example.com",
      "signature_id": "531795f20c77850750000002",
      "petition_id": "5317915e362c790460000006"
    },
    {
      "vid": "316821",
      "email": "test8@example.com",
      "signature_id": "531795f20c77850750000003",
      "petition_id": "531791d7f514004636000008"
    },
    {
      "vid": "316826",
      "email": "test9@example.com",
      "signature_id": "531795f20c77850750000004",
      "petition_id": "53179232f51400463600000c"
    },
    {
      "vid": "316831",
      "email": "test10@example.com",
      "signature_id": "531797d20c77852755000000",
      "petition_id": "531791ae362c790460000007"
    }
  ]
}
Errors
What happens when I pass an invalid API key with my request?
I am building a web application that will submit signatures via the write API and confirm that signatures have been validated via the validations resource. If I pass an invalid API key with my request, will I get a response?
{
  "metadata": {
    "responseInfo": {
      "status": "401",
      "developerMessage:": "Invalid key.",
      "userMessage": "The key provided is not valid.",
      "errorCode": "85",
      "moreInfo": "See the documentation: https://petitions.whitehouse.gov/developers#validations-index-error-401"
    }
  }
}