Creative Economy & Cultural Vibrancy Index API

Overview

The Creative Economy & Cultural Vibrancy Index (ACCVI) API provides open access to data measuring the cultural vibrancy and creative economy performance of African cities.

This API is a Digital Public Good (DPG) — freely accessible, openly licensed, and designed to support researchers, policymakers, developers, and the public.

What you can do

  • Query city performance rankings across cultural and creative indicators
  • Compare cities across focus areas (Cultural Vibrancy, Creative Economy, Enabling Environment)
  • Retrieve map-based data for cultural venues, festivals, museums, and more
  • Filter by African region, indicator type, and sort order

Authentication

This API is publicly accessible. No authentication is required for read operations.

Data License

Data is made available under the Creative Commons Attribution 4.0 International (CC BY 4.0) license.

License

CC BY 4.0
https://creativecommons.org/licenses/by/4.0/

API Endpoints
Live Data:
https://api.creativevibrancyindex.africa/graphql
Version: 1.0.0

Queries

getAllDimensionsForFocusArea

Get all dimensions for a focus area
Returns [String!]!

Name Description
input - FocusAreaInput!

Example

Query
query getAllDimensionsForFocusArea($input: FocusAreaInput!) {
  getAllDimensionsForFocusArea(input: $input)
}
Variables
{"input": FocusAreaInput}
Response
{"data": {"getAllDimensionsForFocusArea": ["abc123"]}}

getCities

Get all cities
Returns [String!]!

Example

Query
query getCities {
  getCities
}
Response
{"data": {"getCities": ["abc123"]}}

getFocusAreas

Get all Focus Areas
Returns [String!]!

Example

Query
query getFocusAreas {
  getFocusAreas
}
Response
{"data": {"getFocusAreas": ["xyz789"]}}

getIndicatorListForDimensions

Get list of indicators formats for a dimension
Returns [String!]!

Name Description
input - DimensionInput!

Example

Query
query getIndicatorListForDimensions($input: DimensionInput!) {
  getIndicatorListForDimensions(input: $input)
}
Variables
{"input": DimensionInput}
Response
{"data": {"getIndicatorListForDimensions": ["xyz789"]}}

getIndicators

Get all indicators
Returns [String!]!

Example

Query
query getIndicators {
  getIndicators
}
Response
{"data": {"getIndicators": ["abc123"]}}

getMapInfo

Get all map info based on query
Returns [MapInfo!]!

Name Description
input - GetMapInfoInput!

Example

Query
query getMapInfo($input: GetMapInfoInput!) {
  getMapInfo(input: $input) {
    id
    createdAt
    updatedAt
    city
    indicator
    name
    place_id
    rating
    icon
    business_status
    formatted_address
    lat
    lng
    website
    international_phone_number
  }
}
Variables
{"input": GetMapInfoInput}
Response
{
  "data": {
    "getMapInfo": [
      {
        "id": ID,
        "createdAt": DateTime,
        "updatedAt": DateTime,
        "city": "abc123",
        "indicator": "xyz789",
        "name": "abc123",
        "place_id": "xyz789",
        "rating": "xyz789",
        "icon": "abc123",
        "business_status": "abc123",
        "formatted_address": "xyz789",
        "lat": "abc123",
        "lng": "xyz789",
        "website": "xyz789",
        "international_phone_number": "abc123"
      }
    ]
  }
}

getPerformance

Get performance for either indicator. If indicator is not provided, defaults to Rank
Returns [IndexInfo!]!

Name Description
filters - PerformanceMapFilter!

Example

Query
query getPerformance($filters: PerformanceMapFilter!) {
  getPerformance(filters: $filters) {
    UnitCode
    UnitName
    Rank
    Vibrancy_Index
    CulturalVibrancy
    Cultural_Index
    CreativeEconomy
    EnablingEnvironment
    Venues_Facilities
    Participation_and_Attractiveness
    Intellectual_Innovation
    Governance_Qual
    Openness_Trust
    International_Connections
    Censorship
    Education_Cap
    Group_Region
    Group_Free
    UniversityRankingArtsHumanities
    KnowledgeDiffusion
    LocalFilms
    PctPatentsByOriginPpGdp
    EntertainmentAndMediaMarketPpPop
    QualityOfRoads
    QualityOfRailroads
    AverageOnlineEventsParticipant2021
    AverageInPersonParticipant2021
    SightsAndLandmarks
    Museums
    Cinemas
    Theatres
    ConcertsMusicHalls
    ArtsCulturalFestivals
    CultureCreativeHubs
    FreedomIndex
    QualityOfGovernance
    NationalCulturalPolicy
    TouristVisits
    ForeignBornPopulation
    DenPopulation
    MobileInternetPercentage
  }
}
Variables
{"filters": PerformanceMapFilter}
Response
{
  "data": {
    "getPerformance": [
      {
        "UnitCode": "abc123",
        "UnitName": "xyz789",
        "Rank": "xyz789",
        "Vibrancy_Index": "xyz789",
        "CulturalVibrancy": "abc123",
        "Cultural_Index": "abc123",
        "CreativeEconomy": "xyz789",
        "EnablingEnvironment": "abc123",
        "Venues_Facilities": "abc123",
        "Participation_and_Attractiveness": "xyz789",
        "Intellectual_Innovation": "abc123",
        "Governance_Qual": "xyz789",
        "Openness_Trust": "abc123",
        "International_Connections": "xyz789",
        "Censorship": "xyz789",
        "Education_Cap": "abc123",
        "Group_Region": "abc123",
        "Group_Free": "xyz789",
        "UniversityRankingArtsHumanities": "abc123",
        "KnowledgeDiffusion": "xyz789",
        "LocalFilms": "xyz789",
        "PctPatentsByOriginPpGdp": "xyz789",
        "EntertainmentAndMediaMarketPpPop": "xyz789",
        "QualityOfRoads": "xyz789",
        "QualityOfRailroads": "xyz789",
        "AverageOnlineEventsParticipant2021": "xyz789",
        "AverageInPersonParticipant2021": "xyz789",
        "SightsAndLandmarks": "abc123",
        "Museums": "xyz789",
        "Cinemas": "abc123",
        "Theatres": "xyz789",
        "ConcertsMusicHalls": "abc123",
        "ArtsCulturalFestivals": "abc123",
        "CultureCreativeHubs": "abc123",
        "FreedomIndex": "abc123",
        "QualityOfGovernance": "xyz789",
        "NationalCulturalPolicy": "xyz789",
        "TouristVisits": "abc123",
        "ForeignBornPopulation": "xyz789",
        "DenPopulation": "abc123",
        "MobileInternetPercentage": "xyz789"
      }
    ]
  }
}

getPerformanceByCity

Compare performance of cities
Returns a PerformanceByCity!

Name Description
input - GetPerformanceByCityInput!

Example

Query
query getPerformanceByCity($input: GetPerformanceByCityInput!) {
  getPerformanceByCity(input: $input) {
    dataByCity
  }
}
Variables
{"input": GetPerformanceByCityInput}
Response
{
  "data": {
    "getPerformanceByCity": {"dataByCity": JSONObject}
  }
}

Types

AfricanRegions

The five African regions used to group cities in the index

Enum Value Description

NOTHERN_AFRICA

Countries in Northern Africa

SOUTHERN_AFRICA

Countries in Southern Africa

EASTERN_AFRICA

Countries in Eastern Africa

WESTERN_AFRICA

Countries in Western Africa

CENTRAL_AFRICA

Countries in Central Africa

Boolean

The Boolean scalar type represents true or false.

Example
false

DateTime

A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the date-time format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.

Example
object

DimensionInput

Input to retrieve indicators available under a dimension

Input Field Description
dimensionType - DimensionTypes!

The dimension to retrieve indicators for

Example
{"dimensionType": DimensionTypes}

DimensionTypes

Dimensions within each focus area used to drill down into specific metrics

Enum Value Description

VENUES_AND_FACILITIES

Physical spaces for cultural activity (theatres, museums, hubs, etc.)

PARTICIPATION_AND_ATTRACTIVENESS

Engagement levels and attractiveness of cultural offerings

CENSORSHIP

Degree of censorship affecting creative freedom

OPENNESS_AND_TRUST

Social openness and public trust indicators

GOVERNANCE_QUALITY

Quality and effectiveness of governance structures

INTERNATIONAL_CONNECTIONS

Degree of international cultural and economic connections

EDUCATION_CAPITAL

Human capital and education levels supporting creative industries

INTELLECTUAL_INNOVATION

Innovation output including patents, research, and knowledge diffusion

FocusAreaInput

Input to retrieve all dimensions available under a focus area

Input Field Description
focusArea - FocusAreaTypes!

The focus area to retrieve dimensions for

Example
{"focusArea": FocusAreaTypes}

FocusAreaTypes

The three high-level focus areas of the Creative Vibrancy Index

Enum Value Description

CULTURAL_VIBRANCY

Measures cultural participation, venues, and attractiveness

ENABLING_ENVIRONMENT

Measures infrastructure, governance, and openness

CREATIVE_ECONOMY

Measures innovation, media, and economic output

GetMapInfoInput

Input for querying map locations by city and indicator type

Input Field Description
city - String!

Name of the city to retrieve map data for

indicator - String!

Indicator category to filter locations by (e.g. Museums, Theatres)

Example
{"city": "xyz789", "indicator": "abc123"}

GetPerformanceByCityInput

Input for comparing a city's performance within a specific focus area and dimension

Input Field Description
city - String!

Name of the city to query

focusArea - FocusAreaTypes!

The high-level focus area to filter by

dimension - DimensionTypes!

The specific dimension within the focus area

Example
{
  "city": "xyz789",
  "focusArea": FocusAreaTypes,
  "dimension": DimensionTypes
}

ID

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.

Example
object

IndexInfo

Represents the index score and ranking data for a city across all cultural and creative dimensions.

Field Name Description
UnitCode - String ISO or internal unit code identifying the city
UnitName - String Full name of the city or unit
Rank - String Overall rank of the city in the index
Vibrancy_Index - String Composite vibrancy index score
CulturalVibrancy - String Score for the Cultural Vibrancy focus area
Cultural_Index - String Sub-index score for cultural indicators
CreativeEconomy - String Score for the Creative Economy focus area
EnablingEnvironment - String Score for the Enabling Environment focus area
Venues_Facilities - String Score for venues and facilities dimension
Participation_and_Attractiveness - String Score for participation and attractiveness dimension
Intellectual_Innovation - String Score for intellectual innovation dimension
Governance_Qual - String Score for governance quality dimension
Openness_Trust - String Score for openness and trust dimension
International_Connections - String Score for international connections dimension
Censorship - String Score for censorship dimension (lower is better)
Education_Cap - String Score for education capital dimension
Group_Region - String African region the city belongs to
Group_Free - String Freedom classification group
UniversityRankingArtsHumanities - String University ranking score for arts and humanities
KnowledgeDiffusion - String Knowledge diffusion score
LocalFilms - String Number or score for local films produced
PctPatentsByOriginPpGdp - String Patents by origin as a percentage of GDP (PPP)
EntertainmentAndMediaMarketPpPop - String Entertainment and media market size per population (PPP)
QualityOfRoads - String Quality of roads infrastructure score
QualityOfRailroads - String Quality of railroads infrastructure score
AverageOnlineEventsParticipant2021 - String Average number of participants in online events (2021)
AverageInPersonParticipant2021 - String Average number of participants in in-person events (2021)
SightsAndLandmarks - String Number or score for sights and landmarks
Museums - String Number or score for museums
Cinemas - String Number or score for cinemas
Theatres - String Number or score for theatres
ConcertsMusicHalls - String Number or score for concert and music halls
ArtsCulturalFestivals - String Number or score for arts and cultural festivals
CultureCreativeHubs - String Number or score for culture and creative hubs
FreedomIndex - String Freedom index score
QualityOfGovernance - String Quality of governance score
NationalCulturalPolicy - String National cultural policy score
TouristVisits - String Number of tourist visits
ForeignBornPopulation - String Percentage of foreign-born population
DenPopulation - String Population density
MobileInternetPercentage - String Percentage of population with mobile internet access
Example
{
  "UnitCode": "abc123",
  "UnitName": "abc123",
  "Rank": "abc123",
  "Vibrancy_Index": "xyz789",
  "CulturalVibrancy": "xyz789",
  "Cultural_Index": "abc123",
  "CreativeEconomy": "abc123",
  "EnablingEnvironment": "xyz789",
  "Venues_Facilities": "abc123",
  "Participation_and_Attractiveness": "xyz789",
  "Intellectual_Innovation": "xyz789",
  "Governance_Qual": "abc123",
  "Openness_Trust": "abc123",
  "International_Connections": "abc123",
  "Censorship": "xyz789",
  "Education_Cap": "abc123",
  "Group_Region": "abc123",
  "Group_Free": "xyz789",
  "UniversityRankingArtsHumanities": "abc123",
  "KnowledgeDiffusion": "abc123",
  "LocalFilms": "xyz789",
  "PctPatentsByOriginPpGdp": "abc123",
  "EntertainmentAndMediaMarketPpPop": "abc123",
  "QualityOfRoads": "abc123",
  "QualityOfRailroads": "abc123",
  "AverageOnlineEventsParticipant2021": "xyz789",
  "AverageInPersonParticipant2021": "xyz789",
  "SightsAndLandmarks": "xyz789",
  "Museums": "xyz789",
  "Cinemas": "xyz789",
  "Theatres": "abc123",
  "ConcertsMusicHalls": "abc123",
  "ArtsCulturalFestivals": "abc123",
  "CultureCreativeHubs": "abc123",
  "FreedomIndex": "xyz789",
  "QualityOfGovernance": "abc123",
  "NationalCulturalPolicy": "abc123",
  "TouristVisits": "xyz789",
  "ForeignBornPopulation": "abc123",
  "DenPopulation": "xyz789",
  "MobileInternetPercentage": "xyz789"
}

IndicatorTypes

Individual indicator types that can be used to filter or rank cities. Each value corresponds to a specific cultural, creative, or infrastructure metric.

Enum Value Description

CULTURE_CREATIVE_HUBS

ARTS_CULTURAL_FESTIVALS

CONCERTS_MUSIC_HALLS

THEATRES

CINEMAS

MUSEUMS

SIGHTS_AND_LANDMARKS

QUALITY_OF_ROADS

QUALITY_OF_RAILROADS

MOBILE_INTERNET_PERCENTAGE

AVERAGE_IN_PERSON_PARTICIPANT2021

AVERAGE_ONLINE_EVENTS_PARTICIPANT2021

FREEDOM_INDEX

FOREIGN_BORN_POPULATION

QUALITY_OF_GOVERNANCE

NATIONAL_CULTURAL_POLICY

TOURIST_VISITS

KNOWLEDGE_DIFFUSION

UNIVERSITY_RANKING_ARTS_HUMANITIES

LOCAL_FILMS

PCT_PATENTS_BY_ORIGIN_PP_GDP

ENTERTAINMENT_AND_MEDIA_MARKET_PP_POP

CULTURAL_VIBRANCY

ENABLING_ENVIRONMENT

CREATIVE_ECONOMY

JSONObject

The JSONObject scalar type represents JSON objects as specified by ECMA-404.

Example
object

MapInfo

Represents a physical cultural or creative location on the map, such as a museum, theatre, festival venue, or creative hub.

Field Name Description
id - ID! Unique identifier for the map entry
createdAt - DateTime! Timestamp when this record was created
updatedAt - DateTime! Timestamp when this record was last updated
city - String! Name of the city where this location is situated
indicator - String! Indicator category this location belongs to (e.g. Museums, Theatres)
name - String! Name of the location
place_id - String! Google Places ID for this location
rating - String User rating of the location (if available)
icon - String URL to the location's icon image
business_status - String Operational status (e.g. OPERATIONAL, CLOSED_TEMPORARILY)
formatted_address - String Full formatted address of the location
lat - String Latitude coordinate
lng - String Longitude coordinate
website - String Website URL of the location
international_phone_number - String International phone number for the location
Example
{
  "id": ID,
  "createdAt": DateTime,
  "updatedAt": DateTime,
  "city": "xyz789",
  "indicator": "xyz789",
  "name": "abc123",
  "place_id": "xyz789",
  "rating": "abc123",
  "icon": "xyz789",
  "business_status": "xyz789",
  "formatted_address": "abc123",
  "lat": "abc123",
  "lng": "xyz789",
  "website": "abc123",
  "international_phone_number": "xyz789"
}

PerformanceByCity

City performance data grouped by city name

Field Name Description
dataByCity - JSONObject! A JSON object where each key is a city name and the value contains its performance metrics
Example
{"dataByCity": JSONObject}

PerformanceMapFilter

Filters for querying city performance data

Input Field Description
region - AfricanRegions

Filter results by African region

indicator - IndicatorTypes

Filter and rank by a specific indicator. Defaults to overall Rank if not provided

sortType - SortType

Sort order for results

Example
{
  "region": AfricanRegions,
  "indicator": IndicatorTypes,
  "sortType": SortType
}

SortType

Sort direction for query results

Enum Value Description

ASC

Sort from lowest to highest

DESC

Sort from highest to lowest

String

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.