Surveillance Watch

API Documentation

Our API provides access to the underlying data that is used to provide the Surveillance Watch visualisations. This API enables you to integrate our data with your own endpoints.

The documentation below provides information regarding the endpoints required to start making API requests.

The API Endpoints

The following endpoints are available to retrieve specific collection data. These final path will be a composite of the Surveillance Watch URL https://www.surveillancewatch.io/ appended with an API request path stated below.

TypeMethodPath
Entities
GET
/api/v1/entities
Entity Types
GET
/api/v1/entity-types
Countries
GET
/api/v1/countries
Cities
GET
/api/v1/cities
Funders
GET
/api/v1/funders

Response Types

CodeDescription / Example
200

Successful operation.

429

Rate limit exceeded.

{
  message: "Rate limit exceeded."
}
500

Server error.

{
  message: Server error."
}

Entities

Endpoints for surveilling entities data.

MethodPathDescription / Response
GET
/api/v1/entities

Retrieve a collection of all surveilling entities.

{
  items: [
    {
      id: string;
      name: string;
      types: EntityType | null;
      headquarters: (string | null) | Country;
      headquartersCity?: City | null;
      notes: string | null;
      hasDirectTargets: boolean;
      surveilling: Country[] | null;
      providingTo: Country[] | null;
      funders: Funder[] | null;
      affiliations: string | null;
      affiliationsList?: {
          label?: string | null;
          entity?: (string | null) | Entity;
          id?: string | null;
        }[] | null;
      affiliations?: string | null;
      subsidiariesList?: {
          label?: string | null;
          entity?: (string | null) | Entity;
          id?: string | null;
         }[] | null;
      sources: {
          url: string;
          title: string;
          id?: string | null;
        }[] | null;
      otherData?: {
          url: string;
          title: string;
          id?: string | null;
        }[] | null;
      updatedAt: string;
      createdAt: string;
    }
  ]
}

Entity Types

Endpoints for surveilling entity categories.

MethodPathDescription / Response
GET
/api/v1/entity-types

Retrieve a collection of all surveilling entity type categories.

{
  items: [
    {
      id: string;
      name: string;
      updatedAt: string;
      createdAt: string;
    }
  ]
}

Countries

Endpoints for countries.

MethodPathDescription / Response
GET
/api/v1/countries

Retrieve a collection of all countries.

{
  id: string;
  name: string;
  alpha2: string;
  latitude: number;
  longitude: number;
  updatedAt: string;
  createdAt: string;
}

Cities

Endpoints for cities.

MethodPathDescription / Response
GET
/api/v1/cities

Retrieve a collection of all cities.

{
  id: string;
  name: string;
  country: string | Country;
  latitude: number;
  longitude: number;
  updatedAt: string;
  createdAt: string;
}

Funders

Endpoints for funders.

MethodPathDescription / Response
GET
/api/v1/funders

Retrieve a collection of all funding organisations.

{
  id: string;
  name: string;
  description?: string | null;
  headquarters?: (string | null) | Country;
  headquartersCity?: City | null;
  updatedAt: string;
  createdAt: string;
}