Neon CRM API v2 Rate Limits

API v2 requests are rate-limited to prevent abuse of the APIs. Exceeding a request method's rate limit will result in a 429 Too Many Requests response. Refer to the table below for the rate limits of each method.

What are rate limits?

Rate limits in the Neon CRM API define the number of simultaneous requests that can be submitted to an API at once.

In contrast to other APIs that define rate limits in terms of the number of requests per unit of time, the Neon CRM API defines rate limits in terms of number of requests per thread pool. In practical terms, this means an app can make up to a certain number of simultaneous requests to a single endpoint, as defined in the table below.

Every Neon CRM organization (a.k.a. "instance") and every endpoint has independent rate limits, which means that simultaneous requests to one endpoint do not count toward the rate limit for a different endpoint or for the same endpoint in a different Neon CRM system.

In general, if you expect your app to need to process many simultaneous requests to the Neon CRM API, we recommend implementing sleep functions or a rate-managed queuing system in order to avoid 429 Too Many Requests responses.

Rate Limits

Request Method Rate Limit
POST /accounts/{id}/contacts 5
GET /accounts/{id}/contacts/{contactId} 5
POST /accounts/search 1
GET /accounts/search/outputFields 5
GET /accounts/search/searchFields 5
GET /addresses/{addressId} 5
GET /accounts/{id}/contacts 5
POST /accounts 5
PUT /accounts/{id} 5
PUT /accounts/{id}/contacts/{contactId} 5
DELETE /accounts/{id}/contacts/{contactId} 5
PATCH /accounts/{id}/contacts/{contactId} 5
POST /accounts/link 5
POST /accounts/unlink 5
POST /addresses 5
PUT /addresses/{addressId} 5
PATCH /addresses/{addressId} 5
DELETE /addresses/{addressId} 5
GET /accounts/{id}/donations 5
GET /accounts/{id}/pledges 5
GET /pledges/{id} 5
POST /pledges 5
PUT /pledges/{id} 5
DELETE /pledges/{id} 5
GET /pledges/{id}/pledgePayments 5
POST /pledges/{id}/pledgePayments 5
GET /pledges/{id}/pledgePayments/{paymentId} 5
DELETE /pledges/{id}/pledgePayments/{paymentId} 5
PATCH /pledges/{id} 5
GET /recurring 5
GET /recurring/{id} 5
POST /recurring 5
PUT /recurring/{id} 5
DELETE /recurring/{id} 5
PATCH /recurring/{id} 5
GET /campaigns 5
GET /campaigns/{id} 5
POST /donations/search 1
GET /donations/search/outputFields 5
GET /donations/search/searchFields 5
POST /campaigns 5
PUT /campaigns/{id} 5
PATCH /campaigns/{id} 5
DELETE /campaigns/{id} 5
POST /donations 5
GET /donations/{id} 5
PUT /donations/{id} 5
PATCH /donations/{id} 5
DELETE /donations/{id} 5
POST /events/search 1
DELETE /events/{id} 5
GET /events/search/searchFields 5
GET /events/search/outputFields 5
POST /events 5
GET /events/{id} 5
PUT /events/{id} 5
GET /events/{id}/tickets 5
GET /events/{id}/attendees 5
POST /events/{id}/tickets 5
GET /events/{id}/tickets/{ticketId} 5
PUT /events/{id}/tickets/{ticketId} 5
DELETE /events/{id}/tickets/{ticketId} 5
GET /events/{id}/eventRegistrations 5
PATCH /events/{id} 5
PATCH /events/{id}/tickets/{ticketId} 5
GET /eventRegistrations/{registrationId} 5
POST /eventRegistrations 5
PUT /eventRegistrations/{registrationId} 5
PATCH /eventRegistrations/{registrationId} 5
POST /eventRegistrations/calculate 5
DELETE /eventRegistrations/{registrationId} 5
GET /payments/creditCardTypes 5
GET /payments/tenders 5
GET /payments/processorSettings 5
GET /properties/individualTypes 5
GET /properties/companyTypes 5
GET /properties/addressTypes 5
GET /properties/countries 5
GET /properties/states 5
GET /properties/genders 5
GET /properties/prefixes 5
GET /properties/sources 5
GET /properties/relationTypes 5
GET /properties/funds 5
GET /properties/purposes 5
GET /properties/activityStatuses 5
GET /properties/solicitationMethods 5
GET /properties/eventCategories 5
GET /properties/eventTopics 5
GET /properties/systemTimezones 5
POST /webhooks 5
GET /webhooks 5
GET /webhooks/{id} 5
PUT /webhooks/{id} 5
DELETE /webhooks/{id} 5
PATCH /webhooks/{id} 5