API Developers Forum

We're thrilled to see all the great development going on with the NationBuilder API, and want to open this forum up for public feedback, helps and hints, questions and more. This resource is curated by the NationBuilder API Team - our goal is developers helping developers, so we definitely want to hear from you. You can also use the tags to rank posts. Thanks!

Sort by

Basic Pages API: Restricting access to pages

In the GUI I can restrict access to a page, for example pages can be restricted to control panel users. However, I can't see any way of doing that via the Basic Pages API. Am I missing something?

The background is that I am writing an app that will periodically sync a Nation with an external database. I thought a good way to provide feedback on the operation of the app would be to populate a basic page on the Nation with status information. I would prefer that the page was only accessable by control panel users. Any other ideas?

- Andrew

Official response from completed

Setting 'who can view this page' is not an attribute with the basic page/create endpoint. 

1 reaction Share

Link donation to a membership through API

Whenever we assign a membership to a person through API, it always shows "Dues amount" as "Free" under "Memberships" tab ("Edit" > "Memberships") on the person's profile. Is there a way to link a donation to the membership or just show an amount instead of "Free"?

Official response from considering

This issue has been confirmed but does not have a set timeline on when it will be fixed. Please follow this cards if you would like to receive email updates about the status of this issue.

1 reaction Share

Can you assign point person through the API?

Official response from completed
1 reaction Share

Please add Petitions and Petition Signatures to the NationBuilder API

This would be very powerful for a bunch of existing integrations as well as new ones. For example, it would enable a service like CallHub to support members signing petitions via SMS. It would enable email your MP tools to track against petition pages directly within NationBuilder. It would also enable tools to report on a nation's core activities and track successes across a great range of actions.

Ideally, it would allow developers of external tools to work with NationBuilder's petitions as well as petition signatures, in the same way that we can already work with events and RSVPs (that event resource provides the best analogy).

I would say the key components would be:

  1. Index endpoint (to return all petitions per site)
  2. Create endpoint (create a new petition)
  3. Show/update/delete endpoints (these are less important to us, but useful all the same :)
  4. Petition signature Count endpoint (return the number of people who have signed a given petition)
  5. Petition signature Index endpoint (return the NationBuilder IDs, first names and emails of everyone who has signed a given petition)
  6. Petition signature Create endpoint (add a new signatory to a given petition)

Thanks for considering!

Official response from considering

Thanks CodeNation! I'll move this over to the API forum for that team to take a look at! There isn't a timeline on this at the moment but definitely a good suggestion. 

16 reactions Share

Get notes on person's profile via the API

With the current People API you can add a note to a person's profile which is great! However, it would be fantastic if you could also get those notes too via the API.

Official response from considering

This is something we will consider but does not have a timeline at the moment.

9 reactions Share

Suggestion: Address fields as parameters on the people/search endpoint.

At the moment, you can GET people/search with geographical filters City and State. It would be nice to able to also filter (for instance) on Address 1, or Street Number, Name, and Type, or ZIP. (ie. we would like to see more geographical / primary address filters exposed through the API.)

Official response from considering

This is something we will consider but does not have a timeline at the moment.

8 reactions Share

Imports via API and webhooks

The create import endpoint does not offer the option to "Bypass webhooks" that is available when you perform a manual import.

  1. Do imports initiated by via this endpoint the relevant webhooks (ie Person Created and Person Changed)?
  2. Whatever the response to (1) it would be useful to control this behaviour from the API as it is via the manual interface.

 

Official response from incomplete

Andrew,

The ability to bypass webhooks is not available through the import API. Can you please clarify your question, reproduced below:

  1. Do imports initiated by via this endpoint the relevant webhooks (ie Person Created and Person Changed)?
1 reaction Share

Looking for the "right" way to hook into the form submission API

Hi folks, we'd like to add some JS actions—adding content to fields—to an NationBuilder form on submit before the form validation/send is triggered. However binding on the form submit handler triggers after the NationBuilder actions and the data is not captured.

Is there an elegant/sanctioned way to hook into the event dispatcher? Essentially I need a callback before the form submits though NationBuilder XHR channels. Someone has a gist of how to do this, but the timing of this isn't correct (form still submits).

Add your reaction Share

Unable to use Import or People API with non-ascii characters (ie. á or ë with accents)

Hello. We're unable to import an CSV via the Import API, or update users via the People api when they have a name with a non-ascii character.

For example, if we post this JSON to the People API: 

{
"person": {
"email": "bob@example.com",
"last_name": "José",
"first_name": "Böb",
"sex": "M",
"signup_type": 0,
"employer": "Dexter Labs",
"party": "P",
"registered_address": {
"state": "TX",
"country_code": "US"
}
}
}

we receive a 400 Bad Request response. Can you please advise?

Official response from completed

When sending your request please set the content type in the header to Charset=UTF-8. For example, this is what the full header would look like:

--header "Content-Type: application/json; Charset=UTF-8"

2 reactions Share

Creating a new donation through the API doesn't carry with it the fundraiser info

We are using the donation API and are sending 'recruiter_name_or_email' through our integration to log who the fundraiser of a specific donation is. This data doesn't seem to be entering our nation even though the 'recruiter_name_or_email' field is a writable field.

Official response from considering

This issue has been confirmed but does not have a set timeline on when it will be fixed. Please follow this cards if you would like to receive email updates about the status of this issue.

1 reaction Share

Extend Oauth 2 implementation to include Resource owner credentials grant

For cron jobs or similar we need Nationbuilder to extend it's Oauth2 model to include Resource owner credentials grant

2 reactions Share

Imports via API incorrectly allocating records as prospects

I have imported a number of records via the API, which all have an email address and email_opt_in='Y', but the
records are being imported as PROSPECTS. Whereas http://nationbuilder.com/how_support_status_is_determined says:

"Records imported with:

  * support level = 1
  * support level = 2
  * email address and email opt-in = Y
  * mobile number and mobile opt-in = Y

will always be supporters."

Official response from considering

This issue has been confirmed but does not have a set timeline on when it will be fixed. Please follow this cards if you would like to receive email updates about the status of this issue.

2 reactions Share

When is it safe to delete list after invoking add tag endpoint?

I want to add/delete a bunch of tags from a bunch of people. This involves multiple sequences along the lines

  • Create temporary list
  • Add people to list
  • Add tags to people in list / remove tags from people in list
  • Delete list

The documentation for the add tag endpoint says:

Use this endpoint to apply a tag to the people contained in a list. Note: this endpoint returns a HTTP 204 status code, but the tag is not applied immediately. For larger lists, this operation takes many minutes.

The remove tags endpoint is similar. So when is it safe to delete the list?

Official response from duplicate
2 reactions Share

When is it safe to delete list after invoking add tag endpoint?

I want to add/delete a bunch of tags from a bunch of people. This involves multiple sequences along the lines

  • Create temporary list
  • Add people to list
  • Add tags to people in list / remove tags from people in list
  • Delete list

The documentation for the add tag endpoint says:

Use this endpoint to apply a tag to the people contained in a list. Note: this endpoint returns a HTTP 204 status code, but the tag is not applied immediately. For larger lists, this operation takes many minutes.

The remove tags endpoint is similar. So when is it safe to delete the list?

Official response from completed

Andrew,

Once your done with adding/removing tags from those people you can delete the list. Deleting the list does not delete the people on that list (http://apiexplorer.nationbuilder.com/nationbuilder#Lists) when you hit the /api/v1/lists/:list ID endpoint.

2 reactions Share

Updates and imports not involving emails failing due to email validation errors

I've just come across some unexpected behaviour.

When using the people update API to update a precinct_code, e.g. with the payload:

{'person': {'precinct_name': 'Burton Bradstock'}}

I received a "400 Bad Request" with the response

{"code":"validation_failed","message":"Validation Failed.","validation_errors":["email 'clive@xxxxx.co.ukinvalid' should look like an email address"]}

The same thing happened with imports that didn't involve email addresses failing because of email validation errors.

 

Official response from submitted

Because of the need to replicate this issue and the need for sensitive data to do so, I'm reaching out via email.

1 reaction Share

Trying to do shared Authentication but coming up blank

I have a need to integrate my Nation with an external system also hosted by us (on the same domain as our nation). The external system has user records and its own authentication. The external ids of these records are also present in our Nation.

What I really want is that when a user signs in to the external system they also sign in to our nation - i.e. I want a shared signon, but I cannot see any practical way of doing so.

Is there any avenue I can follow towards making this happen at all?

Official response from completed

David,

SSO might be the best solution here. It is an option available to enterprise customers. Please contact your community strategist to discuss implementation. 

1 reaction Share

Survey API not correct

http://nationbuilder.com/surveys_api

Copying and pasting example code to create a survey generates a warning message. Adding an extra status - associated with the survey as opposed to the question it then works.

 

http://nationbuilder.com/surveys_api

Official response from completed

Luke,

Thanks for the feedback. There was a missing 'status' for the survey page in the example code. It should work now.

2 reactions Share

API bulk tag removal

I'm having problems with the bulk tag removal API. For example, using the API explorer for my nation I send the following:

DELETE | Bulk Tag Removal|

/people/:id/taggings with id = 123 and body:

{ "tagging": { "tag": ["hello"] } }

I get response code: 400 { "code":"missing_parameters","message":"Missing Parameters.","parameters":["tagging"]}

In contrast, the API for adding tags works as expected. This has exactly the same syntax except the request is a PUT not a DELETE.

Official response from considering

Andrew,

The endpoint you're hitting is having issues at the moment and has been triaged for engineering. As a short term work-around, you can add people with the tags you want removed to a list and hit the Lists API/delete tag endpoint to remove tags from all list members. Please let us know if that doesn't work for your particular use case.

5 reactions Share

API Reporting or Permission Levels

In order to ensure the security/privacy of our supporter information we'd like to see a daily report on how third party apps have used the API and/or the ability to restrict apps to read or write. 

There is nothing stopping an app that pushes information to our nation also downloading our entire database without us being aware. Supporters trust us with their personal information so we'd like to ensure we keep it safe.

2 reactions Share

When POSTing to donation API I keep getting a 'slug can't be blank' error

We are trying to hit the following API

token.post('/api/v1/donations', headers: {"Content-Type"=>"application/json", "Accept"=>"application/json"}, body: {:donation=>{:donor_id=>1234, :amount_in_cents=>1000, :payment_type_name=>"Other", :tracking_code_slug=>"", :succeeded_at=>Wed, 07 Sep 2016 23:18:32 EDT -04:00}})

Official response from completed

The tracking_code_slug can't be blank. It needs the tracking code value as a string, a 'null' or just not including the resource in the request. 

1 reaction Share

People/search endpoint only returns exact matches

When I hit the search endpoint for a name, for example, I have to use the exact name to return a result. For example, if I search for first_name=brad it won't return results for 'Bradley'. 

In addition, searching for names of organizations doesn't return results at all.

Official response from considering

This issue has been confirmed but does not have a set timeline on when it will be fixed. Please follow this cards if you would like to receive email updates about the status of this issue.

6 reactions Share

Webhooks are not firing

Webhooks don't seem to be firing for person created and changed webhooks. Possibly other events that trigger webhooks are also effected.

Official response from completed

This issue has been resolved. 

1 reaction Share

API and GUI validation inconsistencies

There appears to be inconsistencies between what is required/validated via the GUI, and what is required/validated via the API.

For example, via the GUI you can create and edit an event that has no location. However, trying to edit one of these events via the API will produce a validation error, as location is required.

This results in needing to add code such as this to all my event editing script:

contact = event["contact"]
contact["name"] = "Default Contact Name" if contact["name"].nil? || contact["name"].empty?
contact["email"] = "default@contact.com" if contact["email"].nil? || contact["email"].empty?
if !event["venue"].nil? && !event["venue"]["address"].nil?


address = event["venue"]["address"]
  address["city"] = "Unknown" if address["city"].nil? || address["city"].empty?
end

Official response from completed

Effy,

I attempted to replicate this issue in my sandbox and didn't encounter the error you described. To test I created an event using the UI without including a location. I then hit the PUT endpoint to update the event with new page tags and contact info and returned a 200 response code.  

1 reaction Share

Sites index returns null for domain

api/v1/sites returns 'null' for domains for all sites, regardless of if the site has a domain set.

Official response from considering

This is a confirmed bug but does not have a set timeline on when it will be fixed. Please follow this cards if you would like to receive email updates about the status of this issue.

1 reaction Share

No search functionality over developers' forum?!

new to NB, but trying to make something work on my 'nation' and this is one way i typically learn a new code base.  wazzup?

Add your reaction Share

Custom Fields list API method needed.

I think a new method is needed to list a nations custom fields and their types. For instance by only being able to view a custom field on a person I am unable to tell the difference between a text and a multiple choice field.

Also I am unable to infer the possible options for a multiple choice field if there is no person with that option. 

Official response from considering

This is something we will consider but does not have a timeline at the moment.

2 reactions Share

Attempts to delete people from a list through the API results in errors

There is some issue with “Delete People Endpoint” in “List API”( http://nationbuilder.com/lists_api ). It always returns 400 error with the message that says:

{"code":"missing_parameters","message":"Missing Parameters.","parameters":["people_ids"]} 

Official response from considering

This is something we are considering but we do not have a set timeline yet.

1 reaction Share

C# API PersonResponse conflict

I'm calling the Person Create endpoint, and receiving back a good response with json reflecting the new user.  But Newtonsoft.Json is returning an error when attempting to deserialize the Json to a NationBuilderAPI.V1.PersonResponse<NationBuilderAPI.V1.Person>.  Has there been an update to the Person Create endpoint that's not reflected in the C# API?  I'm using version NationbuilderAPI version 1.3 from Nuget.

Official response from completed

That is not a NationBuilder library. It is a third party offering that we don't support.

1 reaction Share

Create directory pages via the API

It would be great if this were possible! 

Official response from considering

This is something that we are considering. Please follow this page to get email updates regarding a directory page/create endpoint.

1 reaction Share

Including Paths in the API

Hi, 

It would be a huge help if paths and steps were included in the API.  Then we could automate much more of the importing and tracking that we do.  The feature has been out for a while and it seems intuitive that the feature would be included in the API.  Thanks so much!

Jenny Landon

Represent.Us

Official response from completed

Jenny,

We now have a paths API with the ability to index paths and steps. Please see the documentation.

9 reactions Share

When Installing Field Edge app it disappears from my Control Panel

When I install Field Edge it doesn't appear in Installed Apps or in the app listing. This makes me concerned it's not installed. 

Official response from submitted

We are investigating why FieldEdge doesn't show up under 'Installed Apps.' After testing the integration, it is clear that FieldEdge is syncing with the nation so functionality is not limited due to this issue.

4 reactions Share

Batch updating and importing Blog Posts via API

I would think that many others would have had to migrate from Wordpress or Drupal to Nationbuilder by this point, but I can't seem to find many resources.

Seeing as there is no way to batch import posts I created a script to do so, and categorize them under their respective parent blog within Nationbuilder- attaching an 'external_id'.

So now, to update these same posts (content authors have made edits on old site during NB development) I have to first make a GET request to /sites/:site_slug/pages/blogs/:id/match to get the external id, then another UPDATE request to /sites/:site_slug/pages/blogs/:blog_id/posts/:blog_post_id .

Is there was an UPDATE or DELETE by 'external_id' method available or in the works? Many developers will be migrating to Nationbuilder and these functions alone will make the migration process easier- and open the doors to CSV batch editing for larger sites.

Official response from considering

This is something we will consider but does not have a timeline at the moment.

However we are paying close attention to the most popular suggestions so please share and encourage others to follow and comment!

1 reaction Share

Permissions on API

I would like to be able to do more with the API than just searches, such as creating and updating people. Currently this is possible with the test token, but not an OAuth token.

A global permission level for the API would be enough, along with a flag on users to specify if they can OAuth and use the API's extended permissions. That way I could grant fine-grained permissions to the API, then give just a few users access to the API through OAuth. I would really like to stop using the test token because that's terrible security long-term.

Official response from completed

Grigory,

You can limit access to staffers by toggling their permission set. If you navigate through the control panel to Settings > Permission sets > select the permission set you want to limit authentication for > and scroll to the bottom you will see the option under API. Toggle this to 'no' and then assign that permission set to staffers you want to limit app authentication for.

 

1 reaction Share

Primary Address Create/Update through API

I would like to update a person's primary address through the API, and also be able to create a new person with an address. 

Official response from completed

Grigory,

Being able to update primary address via the API has been confirmed but does not have a set timeline on when it will be added to the people API. With regard to creating a new person with only an address, you must supply at least a first and last name, an email address, or a phone number.

 

3 reactions Share

Is Theme Sync dead?

Used it quite a bit 2 years ago to great effect. Now it loops between choose site page and back to login page. Choosing a site seems to log me back out.

Still working for other people?

Official response from started

Jedd,

ThemeSync still works and I recommend uninstalling/reinstalling it to get past the hiccup you're experiencing. Also, we have started working on a different solution that utilizes a Dropbox integration.

4 reactions Share

I am trying to set up my paypal account....what is an API signature?

Official response from completed

An API signature is an API credential assigned by PayPal. 

2 reactions Share

Extend tags API to include tag counts

Right now, the only way to find out how many people are tagged with a specific tag in your nation, via the API, is to call the people method, which returns a paginated list of people with that tag. You then have to go through every page, incrementing the counter for every person. Needless to say this involves a fair few API calls for large tags.

There's already a tag index where you can see a list of tags - we just need that index to include a number too.

Official response from considering

This is something we will consider but does not have a timeline at the moment.

However we are paying close attention to the most popular suggestions so please share and encourage others to follow and comment!

4 reactions Share

Webhooks: Support for Events

Hello,

I'm suggesting support for webhooks for changes (creation, update, deletion) to events administered within NationBuilder.

My use case is I'm building a web app to index political events around the country. If groups, who are NationBuilder customers, could connect to it and submit new events and updates, that would have a huge impact on adoption, which would in turn impact event attendance for those customers, and subsequent volunteering, contributions and other engagement from the supporters. I can imagine other third party sites might be interested in this functionality too.

I'm a developer myself, so I'm happy to submit a pull request or sample code if that would be useful, but I'd be curious to hear NationBuilder's thoughts on adding this feature.

Thank you!

Jon

Official response from submitted

Jon,

Have you considered setting up your app so that customers can authenticate it against their nation and then you can use our events API to index events in any nation that authenticates on a rolling basis? It seems like that would be a work-around that would require as much, if not less, work on the part of the nation owner to setup.

2 reactions Share

Incomplete API for blog posts

Issue :

The API for blog posts (https://apiexplorer.nationbuilder.com/nationbuilder#Blog-Posts) is only serving content excerpt and not the all page html content.

Official response from submitted

Thanks! I'm going to move this to our API Developer Forum for a reply from our API folks. 

2 reactions Share

PHP vs. C++

The folks who are building our store and automation are redoing some of the programing they did  in PHP in C++  because it runs faster and can handle a lot more data.  Would doing that help with the speed of loading into your system?  I don't know how it is programed now, but thought I'd pass that along.

Official response from completed

Generally speaking, performance of API access is mostly limited by network connectivity and I/O time so it’s unlikely that you will see a major performance difference accessing our APIs using PHP or C++.

2 reactions Share

Expose more functionality via API

We have tried to integrate our donation management system with NationBuilder and have had some limitations in your api preventing this. It would be nice to have NationBuilder expose via API:

  1. A way for an unfulfilled pledge (i.e. non paid pledge) to be created into a nation
  2. Get a list of unpaid pledges
  3. submit payment for a pledge and mark the pledge as fulfilled

This would allow us support NationBuilder as a possible persistence backend in our application

http://nationbuilder.com/suggest?utm_campaign=public_issues&utm_medium=email&utm_source=3dna

Official response from completed

Hakeen,

This is currently possible with our existing APIs as described below:

1. You can use the people API / push endpoint and the donations_pledged_amount_in_cents resource to create an unpaid pledge. 

2. This is rather complicated, but you could use the people API / show endpoint to get a full representation of a record including pledge amount and then cross-reference this using the donation API / index endpoint for whether a pledge_id exists. Records with a pledge amount but without a pledge_id will be everyone in the nation who has an unpaid pledge.

3. This is possible using our donation API/pledge_id resource. This resource is the id of the pledge a donation submitted via the donation API fulfills.

2 reactions Share

How to check if someone is logged in via the api

Hi,

I've got a simple PHP app running on our site but I want to know who is using it and ensure obviously only the right people can use it.

Can someone point me to the docs on doing just that please?

Mat

 

Add your reaction Share

Marital status field on import API

When running an import through the import API, if a single marital status field is wrong (eg is 'Inferred Married' or similar rather than 'Married' or 'M'), it rejects the entire import with a status 400 bad request. Is it possible to silently ignore than like with other fields?

Official response from considering

This is something we will consider but does not have a timeline at the moment.

However we are paying close attention to the most popular suggestions so please share and encourage others to follow and comment!

1 reaction Share

Has anyone used Formidable API (WordPress) with the Nationbuilder API?

I am working with a group that has a WordPress  website with the Formidable plug-in. They want to create forms in WordPress and have the information passed to Nationbuilder in real time. Does anyone have knowledge or experience in setting up the Formidable API to connect with the Nationbuilder API?

Official response from submitted

Tom,

I don't have experience with Formidable but you will want to start out with our people API if you want to build your own integration. Something else you may consider is Gravity Forms. Someone built an integration with Gravity Forms so that data entered into one of their forms will sync back to the nation.

2 reactions Share

Getting the code with PHP

I think there is a problem with the quickstart for PHP.

Someone with access to the Nation's resources will have to visit that url in a browser, accept the application and retrieve the authorization code from the page url. That page url will look something like:

GET http://yourapp.example.com/oauth_callback?code=123456abcdef

Use the code to generate an access token:

But it doesn't make sense, this a program, not a person accessing a browser and getting the code. How can I get the code 

using PHP, not someone visiting the url in a browser?

 

Anthony

1 reaction Share

Accessing blog posts of edited blog

Hello,

When editing a blog, the blog posts themselves are not deleted and can still be viewed on the site by their URL and found via search.

Add your reaction Share

Encoding of API responses

The headers in responses from the API specify "Content-type: application/json", but don't specify an encoding. As other aspects of the system use utf-8, I'm assuming that it should be "Content-type: application/json; charset=utf-8".  Am I right? If so it would be helpful if this could be fixed or documented.

 

Add your reaction Share

Accessing blog posts of deleted blog

Hello,

When deleting a blog, the blog posts themselves are not deleted and can still be viewed on the site by their URL and found via search. How do we use the NationBuilder API to access blog posts of a deleted blog? All of the blog post methods require a blog ID.

Official response from not planned

Jonathan,

Thanks for bringing this to our attention. After testing this it is clear that deleting the blog post is difficult after deleting the blog if you don't have the blog_id because the ability to index blog pages goes away when you delete the page. It is possible to delete the posts through the control panel. To do this, please go to your nation's control panel and select the Website tab and then toggle the drop down for 'page type' to 'blog post.' Once here you should see all blog posts including the posts that were subpages of the blog page you deleted and can choose to delete the posts here.

4 reactions Share

How we can use tracking_code_slug on Leaderboards?

I want to limit Leaderboard entries with respect to the tracking_code_slug in donations.
How to use this variable in Leaderboard template?

Add your reaction Share

Help of C# api sample code

Hi

Can you please advise what the reference of EndPointProvider and ServiceRequest<PersonContainer>, it shows error (both object are not existing) when I build the PesonSerivce.cs file.

publicPerson CreatePerson(Person person)

{

string endpoint = EndPointProvider.GetCreatePersonEndPoint();

var container = newPersonContainer(person);

var request = new ServiceRequest<PersonContainer>(endpoint, container);

PersonContainer result = PostWithResult<PersonContainer, PersonContainer>(request);

return result.Person;

}

 

And same issue happens on the Service.cs,  Task<HttpResponseMessage>,

ConfigProvider and MediaTypeWithQualityHeaderValue("application/json") cannot be found.

Such as code below

 

 

privatevoid SendRequest<T>(ServiceRequest<T> request, Func<HttpClient, Task<HttpResponseMessage>> sendFunc)

whereT : class

{

using (var client = newHttpClient())

{

client.Timeout = ConfigProvider.ServiceTimeout;

client.DefaultRequestHeaders.Accept.Clear();

client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

Task<HttpResponseMessage> postTask = sendFunc(client);

Task.WaitAll(postTask);

HttpResponseMessage response = postTask.Result;

if (response.IsSuccessStatusCode)

{

return;

}

Task<string> responseTask = response.Content.ReadAsStringAsync();

Task.WaitAll(responseTask);

string responseText = responseTask.Result;

string payloadString = request.Payload != null ? JsonConvert.SerializeObject(request.Payload) : null;

Logger.Error("Error sending {0} to: {1}. Response: {2}", payloadString, request.Endpoint, responseText);

thrownewInvalidOperationException("API call failed.");

}

}

 

 

regards

Stanley

Add your reaction Share

Like this page to spread the word