Greenwire Public API icon

Greenwire Public API

Greenpeace Greenwire allows you connect with other volunteers, activists and groups working on environmental campaigns all across the world!

COMMUNITYNO AUTH0 INSTALLS
API Docs
OpenAPI Specificationv3.0
{
  "swagger": "2.0",
  "schemes": [
    "https"
  ],
  "host": "greenwire.greenpeace.org",
  "basePath": "/api/public",
  "info": {
    "contact": {
      "name": "Greenpeace International contact",
      "url": "http://www.greenpeace.org/international/en/about/contactus/",
      "x-twitter": "Greenpeace"
    },
    "description": "Greenpeace Greenwire allows you connect with other volunteers, activists and groups working on environmental campaigns all across the world!",
    "license": {
      "name": "MIT",
      "url": "http://opensource.org/licenses/MIT"
    },
    "termsOfService": "http://www.greenpeace.org/international/en/Help/copyright2/",
    "title": "Greenwire Public API",
    "version": "1.0.0",
    "x-apisguru-categories": [
      "collaboration"
    ],
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_twitter.com_Greenpeace_profile_image.png"
    },
    "x-origin": [
      {
        "format": "swagger",
        "url": "https://raw.githubusercontent.com/greenpeace/ggw_api_test/master/swagger.yaml",
        "version": "2.0"
      }
    ],
    "x-providerName": "greenpeace.org"
  },
  "consumes": [
    "application/json"
  ],
  "produces": [
    "application/json"
  ],
  "paths": {
    "/events": {
      "get": {
        "description": "Return the upcoming events (e.g. start date >= today). Gets an array of `Event` object. Mandatory query param of **domain** determines the site / country the event belongs to.",
        "parameters": [
          {
            "description": "the site the groups belongs to, example: netherlands",
            "in": "query",
            "name": "domain",
            "required": true,
            "type": "string"
          },
          {
            "description": "the number of desired records",
            "in": "query",
            "name": "limit",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "schema": {
              "properties": {
                "body": {
                  "items": {
                    "$ref": "#/definitions/Event"
                  },
                  "type": "array"
                },
                "header": {
                  "$ref": "#/definitions/HeaderSuccess"
                }
              }
            }
          }
        }
      }
    },
    "/events/{UUID}": {
      "get": {
        "description": "Get one `Event` object by specifying its UUID in the url path.",
        "parameters": [
          {
            "in": "path",
            "name": "UUID",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "schema": {
              "properties": {
                "data": {
                  "$ref": "#/definitions/Event"
                },
                "header": {
                  "$ref": "#/definitions/HeaderSuccess"
                }
              }
            }
          },
          "400": {
            "description": "Not found",
            "schema": {
              "properties": {
                "body": {
                  "type": "object"
                },
                "header": {
                  "$ref": "#/definitions/HeaderError"
                }
              }
            }
          }
        }
      }
    },
    "/groups": {
      "get": {
        "description": "Gets an array of `Group` object. Mandatory query param of **domain** determines the site / country the group belongs to.",
        "parameters": [
          {
            "description": "the site the groups belongs to, example: netherlands",
            "in": "query",
            "name": "domain",
            "required": true,
            "type": "string"
          },
          {
            "description": "the number of desired records",
            "in": "query",
            "name": "limit",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "schema": {
              "properties": {
                "body": {
                  "items": {
                    "$ref": "#/definitions/Group"
                  },
                  "type": "array"
                },
                "header": {
                  "$ref": "#/definitions/HeaderSuccess"
                }
              }
            }
          }
        }
      }
    },
    "/groups/{UUID}": {
      "get": {
        "description": "Get one `Group` object by specifying its UUID in the url path.",
        "parameters": [
          {
            "in": "path",
            "name": "UUID",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "schema": {
              "properties": {
                "data": {
                  "$ref": "#/definitions/Group"
                },
                "header": {
                  "$ref": "#/definitions/HeaderSuccess"
                }
              }
            }
          },
          "400": {
            "description": "Not found",
            "schema": {
              "properties": {
                "body": {
                  "type": "object"
                },
                "header": {
                  "$ref": "#/definitions/HeaderError"
                }
              }
            }
          }
        }
      }
    },
    "/volunteers": {
      "get": {
        "description": "Gets an array of `Volunteer` object. Mandatory query param of **domain** determines the site / country the volunteers are from.",
        "parameters": [
          {
            "description": "the site the users are registered on, example: netherlands",
            "in": "query",
            "name": "domain",
            "required": true,
            "type": "string"
          },
          {
            "description": "the number of desired records. Default is 5.",
            "in": "query",
            "name": "limit",
            "required": false,
            "type": "string"
          },
          {
            "description": "1 or 0. filter on people that have the default avatar or not.",
            "in": "query",
            "name": "must_have_default_avatar",
            "type": "boolean"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "schema": {
              "properties": {
                "body": {
                  "items": {
                    "$ref": "#/definitions/Volunteer"
                  },
                  "type": "array"
                },
                "header": {
                  "$ref": "#/definitions/HeaderSuccess"
                }
              }
            }
          }
        }
      }
    },
    "/volunteers/{UUID}": {
      "get": {
        "description": "Get one specific `Volunteer` object by specifying its UUID in the url path.",
        "parameters": [
          {
            "in": "path",
            "name": "UUID",
            "required": true,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "schema": {
              "properties": {
                "body": {
                  "$ref": "#/definitions/Volunteer"
                },
                "header": {
                  "$ref": "#/definitions/HeaderSuccess"
                }
              }
            }
          },
          "400": {
            "description": "Not found",
            "schema": {
              "properties": {
                "body": {
                  "type": "object"
                },
                "header": {
                  "$ref": "#/definitions/HeaderError"
                }
              }
            }
          }
        }
      }
    }
  },
  "definitions": {
    "Coordinates": {
      "properties": {
        "latitude": {
          "description": "Signed decimal format, example: 52.1234",
          "type": "string"
        },
        "longitude": {
          "description": "Signed decimal format, example -77.022223",
          "type": "string"
        }
      },
      "type": "object"
    },
    "DateTime": {
      "description": "The date in YYYY-MM-DD HH:MM:SS format, example: 2015-12-31 23:59:59",
      "type": "string"
    },
    "Event": {
      "properties": {
        "created": {
          "$ref": "#/definitions/DateTime"
        },
        "description": {
          "$ref": "#/definitions/HTML"
        },
        "end_date": {
          "$ref": "#/definitions/DateTime"
        },
        "groups": {
          "items": {
            "$ref": "#/definitions/GroupLite"
          },
          "type": "array"
        },
        "location": {
          "$ref": "#/definitions/Location"
        },
        "modified": {
          "$ref": "#/definitions/DateTime"
        },
        "name": {
          "type": "string"
        },
        "organizers": {
          "items": {
            "$ref": "#/definitions/VolunteerLite"
          },
          "type": "array"
        },
        "picture": {
          "$ref": "#/definitions/URL"
        },
        "serial": {
          "$ref": "#/definitions/Serial"
        },
        "start_date": {
          "$ref": "#/definitions/DateTime"
        },
        "uuid": {
          "$ref": "#/definitions/UUID"
        }
      },
      "type": "object"
    },
    "Group": {
      "properties": {
        "created": {
          "$ref": "#/definitions/DateTime"
        },
        "description": {
          "$ref": "#/definitions/HTML"
        },
        "group_type": {
          "$ref": "#/definitions/GroupType"
        },
        "location": {
          "$ref": "#/definitions/Location"
        },
        "mission": {
          "type": "string"
        },
        "modified": {
          "$ref": "#/definitions/DateTime"
        },
        "name": {
          "type": "string"
        },
        "picture": {
          "$ref": "#/definitions/URL"
        },
        "serial": {
          "$ref": "#/definitions/Serial"
        },
        "uuid": {
          "$ref": "#/definitions/UUID"
        }
      },
      "type": "object"
    },
    "GroupLite": {
      "properties": {
        "name": {
          "type": "string"
        },
        "serial": {
          "$ref": "#/definitions/Serial"
        },
        "uuid": {
          "$ref": "#/definitions/UUID"
        }
      },
      "type": "object"
    },
    "GroupType": {
      "enum": [
        "Country group",
        "Campaign Project group",
        "Local group",
        "Discussion group",
        "Interest group",
        "Skills-based group"
      ],
      "type": "string"
    },
    "HTML": {
      "description": "A string containing sanitized HTML code",
      "type": "string"
    },
    "HTTP_Code": {
      "description": "https://en.wikipedia.org/wiki/List_of_HTTP_status_codes",
      "type": "string"
    },
    "HTTP_Status": {
      "description": "https://en.wikipedia.org/wiki/List_of_HTTP_status_codes",
      "type": "integer"
    },
    "HeaderError": {
      "properties": {
        "code": {
          "$ref": "#/definitions/HTTP_Code"
        },
        "error": {
          "description": "the error message",
          "type": "string"
        },
        "id": {
          "description": "transaction nonce",
          "type": "integer"
        },
        "pagination": {
          "type": "object"
        },
        "resources": {
          "$ref": "#/definitions/ResourceType"
        },
        "status": {
          "$ref": "#/definitions/HTTP_Status"
        }
      },
      "type": "object"
    },
    "HeaderSuccess": {
      "properties": {
        "code": {
          "$ref": "#/definitions/HTTP_Code"
        },
        "error": {
          "type": "null"
        },
        "id": {
          "description": "transaction nonce",
          "type": "integer"
        },
        "pagination": {
          "$ref": "#/definitions/Pagination"
        },
        "resources": {
          "$ref": "#/definitions/ResourceType"
        },
        "status": {
          "$ref": "#/definitions/HTTP_Status"
        }
      },
      "type": "object"
    },
    "ISO_3166-1_alpha-2": {
      "description": "Country code see. https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2",
      "type": "string"
    },
    "Location": {
      "properties": {
        "city": {
          "type": "string"
        },
        "coordinates": {
          "$ref": "#/definitions/Coordinates"
        },
        "country": {
          "type": "string"
        },
        "postcode": {
          "type": "string"
        },
        "state": {
          "type": "string"
        },
        "streetname": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "LocationSimple": {
      "properties": {
        "country": {
          "$ref": "#/definitions/ISO_3166-1_alpha-2"
        }
      },
      "type": "object"
    },
    "Pagination": {
      "properties": {
        "limit": {
          "description": "the nubmer of items per page",
          "type": "integer"
        },
        "page": {
          "description": "the current page",
          "type": "integer"
        },
        "total": {
          "description": "the total number of pages",
          "type": "integer"
        }
      },
      "type": "object"
    },
    "ResourceType": {
      "description": "The name of the requested object/model/resource. Plural if a collection.",
      "enum": [
        "group",
        "groups",
        "event",
        "events",
        "volunteer",
        "volunteers"
      ],
      "type": "string"
    },
    "Serial": {
      "description": "The primary key in Drupal, e.g the entity/node id",
      "type": "string"
    },
    "URL": {
      "description": "A resource location, example: https://greenwire.greenpeace.org",
      "type": "string"
    },
    "UUID": {
      "description": "Universally unique identifier in canonical format, example: de305d54-75b4-431b-adb2-eb6b9e546014",
      "type": "string"
    },
    "Volunteer": {
      "properties": {
        "avatar": {
          "$ref": "#/definitions/URL"
        },
        "locations": {
          "items": {
            "$ref": "#/definitions/LocationSimple"
          },
          "type": "array"
        },
        "uuid": {
          "$ref": "#/definitions/UUID"
        }
      },
      "type": "object"
    },
    "VolunteerLite": {
      "properties": {
        "serial": {
          "$ref": "#/definitions/Serial"
        },
        "uuid": {
          "$ref": "#/definitions/UUID"
        }
      },
      "type": "object"
    }
  }
}