PMDG Content API - Product Overview

The Pest Management Decision Guide (PMDG) Content API and associated endpoints have been created to provide external customers with structured, secure access to CABI Plantwise PMDG (Plantwise Management Decision Guide) content, enabling filtering, discovery, and retrieval of high quality information.

The API is designed to support:

Base URL:https://data.cabi.org/pmdg

Authentication

All requests must include your unique API Key in the header.

Header: x-api-key: YOUR_API_KEY

Note: Your data access (Countries, Crops, Pests, etc.) is automatically scoped based on this key. For example, if you have access only to United Kingdom (UK) data but you include the United States (US) in your request, the response will contain data only for the UK. Same logic applies to Crops and Pests.

GET /countries

Countries with Available PMDG Content

Business Purpose

This endpoint enables customers to understand where PMDG content exists, so partners can present valid country filters in their own applications and prevent users from selecting unsupported locations (Depending on what you have access to).

What this endpoint provides

Why this matters

Request

curl -X GET "{{BASE_URL}}/countries" \
     -H "x-api-key: YOUR_API_KEY"

Response Example

[
  {
    "isO2": "BD",
    "countryName": "Bangladesh"
  },
  {
    "isO2": "BF",
    "countryName": "Burkina Faso"
  },
  {
    "isO2": "BG",
    "countryName": "Bulgaria"
  }
]

POST /croppest

Available Crops and Pests by Country

Business Purpose

This endpoint allows customers to dynamically determine which crops and pests are relevant for one or more selected countries, ensuring that search filters always reflect valid combinations.

What this endpoint provides

Why this matters

Key characteristics

Request Body

Field Type Description
countries Array[String] Mandatory. List of ISO-2 Country Codes (e.g., ["IN", "BD"]). .
Send an empty array [] to retrieve data for all entitled countries.
crops Array[Int] Mandatory. List of Crop IDs. .
Send an empty array [] to retrieve data for all entitled crops.
pests Array[Int] Mandatory. List of Pest IDs. .
Send an empty array [] to retrieve data for all entitled pests.

Example Request

curl -X POST "{{BASE_URL}}/croppest" \
     -H "x-api-key: YOUR_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{
       "countries": ["BD"],
       "crops": [15395],
       "pests": [12331]
     }'
curl -X POST "{{BASE_URL}}/croppest" \
     -H "x-api-key: YOUR_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{
       "countries": ["KE", "BD"], // Selects country Kenya and Bangladesh
       "crops": [], // Empty array selects ALL entitled crops
       "pests": []  // Empty array selects ALL entitled pests
     }'

POST /getpmdg

Retrieve Full PMDG by PAN

Business Purpose

This endpoint allows customers to retrieve the complete PMDG content for a specific guide, once it has been identified via search or other workflows.

What this endpoint provides

Why this matters

Key characteristics

Request Body

Field Type Description
pan BigInt Mandatory. The unique PAN identifier.
Note: The backend returns PMDG based on your entitlement.

Example Request

curl -X POST "{{BASE_URL}}/getpmdg" \
     -H "x-api-key: YOUR_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{
       "pan": 20157801498
     }'

API Principles

All PMDG Content API endpoints share the following characteristics:

Security

Access is controlled via API keys, with protections against malicious queries.

Consistency

Responses use a consistent JSON structure across all endpoints.

Performance

Designed for efficient response times, even with multiple filters applied.

Reliability

Intended for production use by external partners and platforms.

Typical Customer Journey

  1. Select country filters
  2. Retrieve valid crops and pests for those countries
  3. Search for PMDGs using selected filters
  4. Retrieve full PMDG content using PAN

Error Codes

Status Meaning
400 Bad Request: Invalid request JSON or Missing required fields.
403 Access Denied: API Key missing, invalid, or no entitlements found.
404 Not Found: The requested resource or path does not exist.
500 Internal Server Error: An error occurred on the server side.

Appendix

CABI Thesaurus (CABT)

The CABI Thesaurus (CABT) is CABI’s authoritative source for indexing its data. It functions as a controlled vocabulary to ensure consistency across all CABI products. Each crop and pest is assigned a unique CABT identifier along with a preferred label, and this API provides access to those identifiers. More information about the CABI Thesaurus, including the ability to browse the full dataset, is available on the CABI Digital Library.