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
Example
Query
query getAllDimensionsForFocusArea($input: FocusAreaInput!) {
getAllDimensionsForFocusArea(input: $input)
}
Variables
{"input": FocusAreaInput}
Response
{"data": {"getAllDimensionsForFocusArea": ["abc123"]}}
getCities
Example
Query
query getCities {
getCities
}
Response
{"data": {"getCities": ["abc123"]}}
getFocusAreas
Example
Query
query getFocusAreas {
getFocusAreas
}
Response
{"data": {"getFocusAreas": ["xyz789"]}}
getIndicatorListForDimensions
Example
Query
query getIndicatorListForDimensions($input: DimensionInput!) {
getIndicatorListForDimensions(input: $input)
}
Variables
{"input": DimensionInput}
Response
{"data": {"getIndicatorListForDimensions": ["xyz789"]}}
getIndicators
Example
Query
query getIndicators {
getIndicators
}
Response
{"data": {"getIndicators": ["abc123"]}}
getMapInfo
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
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
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 |
|---|---|
|
|
Countries in Northern Africa |
|
|
Countries in Southern Africa |
|
|
Countries in Eastern Africa |
|
|
Countries in Western Africa |
|
|
Countries in Central Africa |
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 |
|---|---|
|
|
Physical spaces for cultural activity (theatres, museums, hubs, etc.) |
|
|
Engagement levels and attractiveness of cultural offerings |
|
|
Degree of censorship affecting creative freedom |
|
|
Social openness and public trust indicators |
|
|
Quality and effectiveness of governance structures |
|
|
Degree of international cultural and economic connections |
|
|
Human capital and education levels supporting creative industries |
|
|
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 |
|---|---|
|
|
Measures cultural participation, venues, and attractiveness |
|
|
Measures infrastructure, governance, and openness |
|
|
Measures innovation, media, and economic output |
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 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
|---|---|
|
|
Sort from lowest to highest |
|
|
Sort from highest to lowest |