The NationBuilder class allows you to interact with the NationBuilder API. Users of this Parsons integration can download a full list of people, update and upsert people.
In order to use this class you need your nation slug and access token. To get your access token login to your nation and navigate to
Settings > Developer > API Tokenand create a new token. You can get more info in the NationBuilder API docs.
To instantiate the NationBuilder class, you can either store your
NB_ACCESS_TOKEN keys as environment
variables or pass them in as arguments:
from parsons import NationBuilder # First approach: Use API key environment variables # In bash, set your environment variables like so: # export NB_SLUG='my-nation-slug' # export NB_ACCESS_TOKEN='MY_ACCESS_TOKEN' nb = NationBuilder() # Second approach: Pass API keys as arguments nb = NationBuilder(slug='my-nation-slug', access_token='MY_ACCESS_TOKEN')
You can then make a request to get all people and save its data to a Parsons table using the method,
# Create Parsons table with people data from API parsons_table = nb.get_people() # Save people as CSV parsons_table.to_csv('people.csv')
The above example shows how to create a Parsons table with all people registered in your NationBuilder nation.
- class parsons.NationBuilder(slug: Optional[str] = None, access_token: Optional[str] = None)
Instantiate the NationBuilder class
- slug: str
The Nation Builder slug Not required if
NB_SLUGenv variable set. The slug is the nation slug of the nation from which your application is requesting approval to retrieve data via the NationBuilder API. For example, your application’s user could provide this slug via a text field in your application.
- access_token: str
The Nation Builder access_token Not required if
NB_ACCESS_TOKENenv variable set.
- update_person(person_id: str, person: Dict[str, Any]) Dict[str, Any]
This method updates a person with the provided id to have the provided data. It returns a full representation of the updated person.
- upsert_person(person: Dict[str, Any]) Tuple[bool, Optional[Dict[str, Any]]]
Updates a matched person or creates a new one if the person doesn’t exist.
This method attempts to match the input person resource to a person already in the nation. If a match is found, the matched person is updated. If a match is not found, a new person is created. Matches are found by including one of the following IDs in the request: