Newer
Older
# REST API integration for CiviCRM
This code exposes CiviCRM's [extern](https://github.com/civicrm/civicrm-core/tree/master/extern) scripts as WordPress REST endpoints.
### Requirements
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
- WordPress 4.7+
- CiviCRM to be installed and activated.
### Endpoints
1. `civicrm/v3/rest` - a wrapper around `civicrm_api3()`
**Parameters**:
- `key` - **required**, the site key
- `api_key` - **required**, the contact api key
- `entity` - **required**, the API entity
- `action` - **required**, the API action
- `json` - **optional**, json formatted string with the API parameters/argumets, or `1` as in `json=1`
By default all calls to `civicrm/v3/rest` return XML formatted results, to get `json` formatted result pass `json=1` or a json formatted string with the API parameters, like in the example 2 below.
**Examples**:
1. `https://example.com/wp-json/civicrm/v3/rest?entity=Contact&action=get&key=<site_key>&api_key=<api_key>&group=Administrators`
2. `https://example.com/wp-json/civicrm/v3/rest?entity=Contact&action=get&key=<site_key>&api_key=<api_key>&json={"group": "Administrators"}`
2. `civicrm/v3/url` - a substition for `civicrm/extern/url.php` mailing tracking
3. `civicrm/v3/open` - a substition for `civicrm/extern/open.php` mailing tracking
4. `civicrm/v3/authorizeIPN` - a substition for `civicrm/extern/authorizeIPN.php` (for testing Authorize.net as per [docs](https://docs.civicrm.org/sysadmin/en/latest/setup/payment-processors/authorize-net/#shell-script-testing-method))
**_Note_**: this endpoint has **not been tested**
5. `civicrm/v3/ipn` - a substition for `civicrm/extern/ipn.php` (for PayPal Standard and Pro live transactions)
**_Note_**: this endpoint has **not been tested**
6. `civicrm/v3/cxn` - a substition for `civicrm/extern/cxn.php`
7. `civicrm/v3/pxIPN` - a substition for `civicrm/extern/pxIPN.php`
**_Note_**: this endpoint has **not been tested**
8. `civicrm/v3/widget` - a substition for `civicrm/extern/widget.php`
**_Note_**: this endpoint has **not been tested**
### Settings
Set the `CIVICRM_WP_REST_REPLACE_MAILING_TRACKING` constant to `true` to replace mailing url and open tracking calls with their counterpart REST endpoints, `civicrm/v3/url` and `civicrm/v3/open`.
_Note: use this setting with caution, it may affect performance on large mailings, see `CiviCRM_WP_REST\Civi\Mailing_Hooks` class._