What is VAN?

VAN CRM is the application that powers EveryAction 8, NGP 8, VoteBuilder, SmartVAN, and other organizing products.

What is NGP?

NGP is a fundraising and compliance application. NGP 8 and EA8 are both VAN CRM based fundraising systems, while NGP 7 or NGP Classic are legacy applications (though still supported).

Why is my API request failing?

There are a few common reasons requests fail.

Did you include the correct content-type header? (It's application/json)

For a VAN requests, did you remember to include the |0 or |1 after your key to indicate database mode? 0 is used with voter file data.

Does your phone number validate? For US and Canadian clients, ^1?[2-9][0-8]\d[2-9]\d{6,6}$ is a handy regular expression.

Why is my SMS or phone application not syncing correctly?

Because we store multiple phone numbers per person, we don't automatically know for any given contact which phone number was used. Having this information is helpful in tracking which phone numbers are still in use, and which ones are truly mobile phones.

In order to ensure this information is tracked, please include the phoneId in the canvass context when making canvass response API calls.

{
  "canvassContext": {
    ...
    "phoneId": 867
  }

That phoneId value is provided in SMS exports, and is available in the phones array on person objects in the API.

One additional note - you can use the resultCodeId to track Do Not Text requests - that is available as resultCodeId 130 on the same endpoint.

  ...
  "resultCodeId": 130,

What is the difference between a sandbox and production API key?

We have a sandbox area which contains fake data – it does not include data about any real people, and is not connected to any client platform. That is in contrast to our production databases, which contain data about real voters (My Voters) and supporters (My Campaign), and are continually updated with real client data. Both the sandbox and production databases use the same APIs, meaning that the sandbox area is a good place to test new code.

New developers will be issued a Tier 1 sandbox key unless otherwise requested.

How does my integration get listed as a ‘default’ option in the CRM?

As part of the supporting ticketing system mentioned above, there is a dropdown that allows clients to select a specific vendor they’re requesting a key for. This autofills the ticket with the default information to speed up the approval process. This system is designed merely to save time and is not an integration marketplace. You should not expect a client find or hear about your product for the first time from within VAN; clients are able to submit a ticket requesting an API key for your integration whether your product is listed by name in that dropdown or not.

If we are getting many API key requests from clients, we may proactively reach out to you about being added to this dropdown list. As a general guideline integration partners who have passed requirements for security tier 2 or above, have 50+ active clients, and are continuing to add new integration clients on a daily or weekly basis may be candidates to be added to this field.

That being said, you should not expect clients to learn about your integration this way. Approved integration partners can reach out about being listed in the integration marketplace or doing co branded blog posts with our team. It’s also great to have marketing materials about your product on hand in case clients ask so please send those our way! Having worked with many successful integrators we’d be happy to set up a quick call to share tips and tricks for what we’ve seen work best.

Are there any APIs available other than those documented on this site?

Yes, there are a number of legacy APIs available for VAN and NGP Classic that may be available for your use. Additionally, we maintain “unofficial” documentation for solutions that other developers have built but NGP VAN does not support directly. Please contact us at [email protected] for more information.

Questions and bug reports

To resolve problems as quickly as possible please include the ref value of the key being used to make the request, the URL and body of the request, the response received, and any other applicable details. Please do not transmit HTTP Basic Authorization headers via email, since the API key can be readily decoded from those headers.

Integration questions and error reporting should come from your staff – not clients. Because clients are generally not aware of the API calls your code is making, they will not be able to provide us with sufficient information to answer questions that arise.

Feedback and suggestions are always appreciated though product suggestions submitted by clients directly will often be prioritized. The best way for a client to submit feedback is by navigating to the “Send Product Feedback” page within the CRM, this allows us to track and record all feedback. If a developer is submitting API related development requests on behalf of a client, please include which client.