Developers
Mostly about Wild Apricot API. Feel free to share examples of your code!
104 results found
-
Creating Bundles with API
All was going very well with the API V2 until I wanted to set up Bundles with the membership. I can create contacts and assign a membership level. But when I try to assign a create a Bundle Administrator or Bundle Member, nothing seems to take. The API says only a Bundle ID and NOT an email address like the Import can use. To automate this process, I don't/can't use the Import process.
Has anyone been successful in using the API to create a Bundle? (Administrator and/or Member)
Any help is greatly appreciated. Our trial is almost over and this…
2 votesNow it is possible.
Step by step:
1. Create bundle admin
2. As a result of POST operation you will get a json of new contact.
So find a record in FieldValues with “FieldName”: “Bundle ID” and take “Value” from that record.
3. Create a bundle member
4. Check we have a bundle and it contains members we expectHere is a complete description with requests you should send: https://gist.github.com/DmitriySmirnov/8b29429d75e9b66eef9c88d4a647a3e8
-
Google Script for Google Apps
Thank you to WildApricot for posting the sample code for an api connection to update a google spreadsheet. https://help.wildapricot.com/display/DOC/Sample+API+V2+applications
I'm now using google scripts to produce (update) 13 regional spreadsheets of members each that has been shared with a regional coordinator so that I don't have to do this manually.
Would love to hear how other organizations are using Google apps and integrating the wa api.
Also would love to collaborate on building some additional Google Code scripts. Example, allowing each regional coordinator to email (mail merge) via gmail the members in their regional spreadsheet.
I am also interested in…
2 votesSample code is shared. If you still have questions, please create new thread on forum.
-
Get Invoice
I'm trying to retrieve an invoice via the API with the endpoint /accounts/{accountId}/invoices/{invoiceId} but in the documentation it is impossible to make the call work:
https://app.swaggerhub.com/apis-docs/WildApricot/wild-apricot_public_api/8.03.0#/Finances.Invoices/GetInvoiceDetailsThe first parameter which should correspond to accountId is replaced by () and in the return example there is only "string".
If I test the endpoint, the accountId parameter is not sent with my value.For information, I tested other API endpoints and they work:
- /
- /accounts
- /accounts/{accountId}
- /accounts/{accountId}/contacts
- /accounts/{accountId}/contacts/{contactId}So I tested a PHP example provided by Wildapricot:
https://github.com/WildApricot/ApiSamples/blob/master/PHP/sampleApplication.php
I replaced the connection values and everything works fine.…
1 vote -
Support Coupon Code for Membership Application Non-Admin API
In the Non-Admin API, the "rpc/{accountId}/ApplyForRenewal" call, the API documentation shows that a "Coupon Code" can be submitted as part of the body of the request. The "rpc/{accountId}/applyForMembership" call does not show a "Coupon Code" in the documentation.
Is it supported? If yes, how should the request be formatted? If it is not supported, is there an alternate way to add a discount code to a membership invoice via API?I have tried the following JSON body. It successfully creates a pending membership with the correct Level, but the discount code is ignored. (no error, it is just ignored). The…
1 voteCouponCode is available as a parameter for Membership Application and Renewal.
-
auth0
I have built a sms portal using Laravel + Auth0/Google_SSO + Wild Apricot (read only) API's, which works great. That Auth0 authenticated users against the Google user repository, but now have started building a second Laravel + Auth0 + Wild Apricot (read & write) API's where I want to first be able to use the Auth0 SSO to authenticate against Wild Apricot. I am using their "oauth capable" social login (URL: https://auth0.com/docs/authenticate/identity-providers/social-identity-providers/oauth2 ), which seems to work. I get the WA username/password login screen and it signs in, but there it stops and seems like the token that is issued…
1 vote -
Authentication for the API call to observe the Contact's privacy settings
We are using the API https://api.wildapricot.org/v2/accounts/\(id)/contacts to get the list of contacts.
We use User login + password authentication for the API call.
If we use an admin account for the API authentication we get all fields for each contact, even fields that the contact has marked as "No access" in privacy. If we use a regular user account for the authentication we get immediately an HTTP 403 unauthorized status to even run the query.
So the question: how do we set up the authentication for this API call so that the query only returns contact fields that the contact…
1 voteIf you need access API on behalf of a user, then you should use API endpoints for non-administrative access. They are described here https://gethelp.wildapricot.com/en/categories/145-wild-apricot-member-api
-
Date timezone?
- Date timezone - If I get a datetime back from an API call in JSON (e.g. an event start date) in which timezone is that date expressed? I was thinking it would be expressed in UTC but that does not seem to be the case. It appears to be expressed in my current timezone PDT. e.g. if my event in California (PDT) starts at 9:00 am PDT then does the event start time JSON string returned come back as 9:00 am or 4:00 pm? (i.e. expressed in the PDT or UTC time zone)
The JSON date string in question has…
1 voteAPI returns dates in ISO 8601 format. Here is an example:
“2019-11-15T15:05:39.453-04:00”
date: 2019-11-15
time: 15:05:39.453
UTC offcet: -04:00AI uses UTC offset of your organization’s timezone.
-
export membership data
I have been reading the doc but I don't see what API call I use to download a variety of member data. I need more than Membership Level.
I want an API call like the Member List Export, where I can choose the fields.
I want to export (for all members) member first,last,level,status, and one custom field we have in our database. Prefer output as CSV, but JSON would be fine.
I need this via the API because I want to automate it to feed into a Access Validation system we have developed, not google docs or Excel, etc.
I…1 voteYou can receive all contacts data by calling the https://api.wildapricot.org/v2.2/accounts/ACCOUNT_ID/Contacts/ endpoint. As it could be a long query, the call will be executed asynchronically. You will receive the result ID and then you will be able to receive actual results by calling the https://api.wildapricot.org/v2.2/accounts/192743/Contacts/?resultId=RESULT_ID
-
Why am I getting 404 error when requesting token? (kotlin/android/retrofit)
(TEMPLATE)
POST /auth/token HTTP/1.1
Host: oauth.wildapricot.org
Authorization: Basic QVBJS0VZOm85c2U4N3Jnb2l5c29lcjk4MDcwOS0=
Content-type: application/x-www-form-urlencodedgranttype=clientcredentials&scope=auto
(My Attempt)--------------------------------------------------------------------
object WAApiCallService {
private const val APIKEY = "xxxxxxxxxxxxxxxxxxxx"
private const val BASEURL = "https://oauth.wildapricot.org"
private val AUTH = "Basic" + Base64.encodeToString(APIKEY.toByteArray(), Base64.NOWRAP)
private const val CONTENT_TYPE = "application/x-www-form-urlencoded"
…private var api:WAApiCall? = null private fun getWAApi(context: Context) : WAApiCall { if(api==null){ val OkHttpClient = OkHttpClient.Builder() val logging = HttpLoggingInterceptor() logging.level = HttpLoggingInterceptor.Level.BODY if(BuildConfig.DEBUG){ OkHttpClient.addInterceptor(logging) } //define and add a cache val cacheSize = 5 * 1024 * 1024L // = 5mb cache val cache = Cache(context.cacheDir, cacheSize)
1 voteAPI endpoint should be https://oauth.wildapricot.org/auth/token
but you post to https://oauth.wildapricot.org/auth/token%20HTTP/1.1 -
1 vote
Wild Apricot does not provide direct access to the database. Please use API instead.
-
Change Event AccessLevel from API
Please provide a way to change Event AccessLevel from API. I clone/create events via programs using API and need to change AccessLevel to Public as final step to enable registration. Thanks!
1 voteHello Steve,
You can change AccessLevel via API.
As it is written in our documentation (https://app.swaggerhub.com/apis/WildApricot/wild-apricot_public_api/2.1.0#/Events/UpdateEvent), this request body will change AccessLevel to Public:{
“Id”: yourEventID,
“Details”: {
“AccessControl”: {
“AccessLevel”: “Public”
}
}
}I hope it helps!
-
Update User's group participation api V2.2
I'm trying to update a user's group participation via the put endpoint /accounts/{accountId}/contacts/{contactId}. I'm getting a 200 returned, but the returned model doesn't reflect the attempted updates. Any advice is appreciated. The following is the relevant section of json for the update.
"FieldValues": [{
"FieldName": "Group participation",
"Value": [
{
"Id": 559646,
"Label": "tmpCardGroup"}],
"SystemCode": "Groups"
}]1 voteFeel free to comment if your issue remains unresolved
-
Get member first name, last name, email address from id
I have tried unsuccessfully to get a user first name, last name, email address from the ID.
Here is what I tried to get the last name:
https://api.wildapricot.org/v2.1/accounts/12345/contacts?async=false&$filter=$async=false&?$select='Last%20Name'%$filter='Member ID' eq 11111111What am I doing wrong?
Thanks,
Jay1 voteThere is a strange mix of parameters and invalid syntax in this example. Please check documentation to find right syntax.
To get a single contact details by id
https://api.wildapricot.org/v2.1/accounts/{ACCOUNT_ID}/contacts/{CONTACT_ID}As an alternative to writing code you can use out module on Integromat https://www.integromat.com/en/integrations/wild-apricot
-
API Documentation
Can someone point me to documentation describing how to get started developing on top of Wild Apricot, including what language to use to interact with the API? I'm a developer but haven't developed on top of a content management system before. I need to be able to display information from the Member table for a specific event.
1 voteAPI specification: https://app.swaggerhub.com/search?query=%20WildApricot
Help pages: https://gethelp.wildapricot.com/en/categories/32-wild-apricot-apis
Code samples: https://github.com/WildApricot/ApiSamples
Instead of writing code you could use Integromat service to implement you custom automation. Here is a link for quick start: https://gethelp.wildapricot.com/en/articles/1653
-
getting an oath token using curl
I am attempting to write a tiny app to download my club's calendar from wild apricot. I plan to write this in python 3, triggered by cron. The first step is to get an oauth token. As a test I tried the following curl command but I receive a 401/unauthorized error. Please note that XXXXX is not my real application ID :-)
I tried variations, and also some similar code in python with the same result.
Any hints?
curl -v -H 'Authorization: Basic BASE64ENCODED("XXXXX")' -H 'Content-Type: application/json' -H 'Transfer-Encoding: chunked' -d '{"granttype":"client_credentials", "scope":"auto"}' https://oauth.wildapricot.org/auth/token
1 voteHere is an example
1 Build your Authorization header.
– Assume you API key is b8gxv-njhci-XXXXXXXXXXXX-50
– encode the line “APIKEY:b8gxv-njhci-XXXXXXXXXXXX-50”, you will get
“QVBJS0VZOmI4Z3h2LW5qaGNpLVhYWFhYWFhYWFhYWC01MA==”2 use this value to make a call
curl -X POST \
https://oauth.wildapricot.org/auth/token \
-H ‘Authorization: Basic QVBJS0VZOmI4Z3h2LW5qaGNpLVhYWFhYWFhYWFhYWC01MA==’ \
-H ‘Content-Type: application/x-www-form-urlencoded’ \
-d ‘scope=auto&grant_type=client_credentials’==
I recommend to use POSTMAN before writing any code. -
GET /accounts/{accountId}/events
The swagger docs do not really show how to add the parameters to the HTTP Get request (e.g., $filter). For example, how do I format the request to get all events that have the substring "XYZ" in a Tags field?
Also what is the syntax of the "TextIndex, Supported operations: substringof." parameter? You have all these good parameters in the Swagger site, but no real examples of how to use the syntax. Are we supposed to guess? Help me out here please. Thanks.1 voteAs described in swagger, $filter parameter should be passed as a query string parameter.
It is not possible to look for substrings in tags.
Here is a good examples of using different kinds of comparison operators: https://gethelp.wildapricot.com/en/articles/499 find ‘Relational operators’ section.
-
API and custom fields - how to reference them in $select or $filter
Hi. According to some of the documentation it implies that I can use a custom fields' name to reference it. I can directly reference common fields as a $select parameter, but can only reference other fields using their custom-xxx tag, like this:
'$select' => 'First name, Last name, Email, custom-8097667,
custom-8097668, custom-8161502, custom-8097675, custom-8017535'The custom field tag does not seem to appear anywhere in Membership fields area of the WA database though so the only way I can find it out is by trawling through json data manually.
Is there a better way to reference those fields, or to…
1 votesee comments
-
How to drive the saggerhub api
Hi. It appears that I should be able to use swaggerhub to pull data from my WA database with the API, but I can't figure out how to do this because the code in the code window of swagger is 'read only'. I can see that I have to change it so that it points to my WA site, and although I have an option to enter API key to authenticate, there seems no way to change the site. Help appreciated
1 vote -
Is it correct that users cannot get their membership data via API?
I'm working with a tool called Cognito Forms that allow some fairly complex form functionality. One great feature is the ability to pass values to a form embedded on a Wild Apricot page.
We are currently working on a feature where a member navigates to a member-only page for expense reimbursement. The page loads an embedded form and pre-fills most of the information.
Right now, I am using the API to use the contacts/me call to load name and email, but I need the contact/{contact-ID} to get the address and phone.
After getting the script completed and pre-populating the form…
1 voteHi Andy,
contacts/me endpoint returns short version of contact data. If you need all field values, just add query string parameter includeDetails=true.
Here is an example:
https://api.wildapricot.org/publicview/v1/accounts/183112/contacts/me?includeDetails=true
-
Swaggerhub returns 403 Forbidden on all requests to API
Real simple: Using Swaggerhub to play with the API. I give it a valid API key, it is able to login/authenticate successfully, but the only function returning code 200 OK is default (/) ... when I try the /accounts function or any other function I get 403. Tried 2 different API keys..... with both read-only and admin level access but No matter what I do I get a 403 trying to test the API using the swaggerhub UI
1 voteThat typically occures if you don’t check “Auto” checkbox in the scopes list (swaggerhub does not allow to check it by default).
So when oAuth service gets your response it creates oAuth token with almost no permissions. Technically it is totally valid situation, but such token is almost useless.
So the solution is to check “Auto” checkbox in the list of scopes.
- Don't see your idea?