Content
On this page, we'll explore the Content API that let you programmatically manage the Content objects in your Catalogs.
Content objects are the individual items that make up a Catalog. For example an 'Exhibitors' Catalog would consist of a collection of exhibitors - each one being its own Content object.
Content from a Catalog can be added to the map individually, or as a part of an Attachment Rule.
ENDPOINTS
POST /content/v1/:catalog_id
GET /content/v1/:catalog_id/:id
PUT /content/v1/:catalog_id/:id
DELETE /content/v1/:catalog_id/:id
GET /content/v1/:catalog_id
GET /content/v1/:catalog_id/external-id/:external_id
PUT /content/v1/:catalog_id/external-id/:external_id
DELETE /content/v1/:catalog_id/external-id/:external_id
The Content object
Properties
- Name
content_id- Type
- string
- Description
Unique identifier for the Content object.
- Name
catalog_id- Type
- string
- Description
The ID of the Catalog that the Content object belongs to.
- Name
data- Type
- object
- Description
The data of the Content object.
- Name
created_at- Type
- timestamp
- Description
The timestamp of when the API key was created.
- Name
updated_at- Type
- timestamp
- Description
The timestamp of when the API key was last updated.
The Content object
{
"content_id": "hSIhXBhNe8X1d8Et",
"catalog_id": "hSIhXBhNe8X1d8Et",
"data": {
"external_id": "435",
"Title": "Exhibitor 1",
"Booth Number": "435",
"profile_picture": "https://example.com/profile.jpg",
"description": "I am an exhibitor for Comic Con San Diego 2025",
"type": "Exhibitor"
},
"created_at": 692233200,
"updated_at": 705103200
}
Create a content object
You can create a Content object from scratch using this endpoint, or you can bulk create Content objects from a CSV file.
Required attributes
- Name
data- Type
- object
- Description
The data of the Content object.
POST /content/v1/:catalog_id
curl https://api.waygomaps.com/content/v1/hSIhXBhNe8X1d8Et \
-X POST \
-H "Waygo-API-Key: eyJhbGciOiJIU...sXSJE_1AJgMEnI_g-WTerk" \
-H "Waygo-Account: n33f9h0fh9324hf9h439fh9h2f9h93h9" \
-d '{
"data": {
"external_id": "435",
"title": "Exhibitor 1",
"profile_picture": "https://example.com/profile.jpg",
"description": "I am an exhibitor for Comic Con San Diego 2025",
"type": "Exhibitor"
}
}'
Response
{
"content_id": "hSIhXBhNe8X1d8Et",
"catalog_id": "hSIhXBhNe8X1d8Et",
"data": {
"external_id": "435",
"title": "Exhibitor 1",
"profile_picture": "https://example.com/profile.jpg",
"description": "I am an exhibitor for Comic Con San Diego 2025",
"type": "Exhibitor"
},
"created_at": 692233200,
"updated_at": 705103200
}
Get a content object
This endpoint allows you to retrieve a Content object by providing its Content ID.
Note that if your content object has a data.external_id, you can retrieve it using the Get a content object by external ID endpoint.
GET /content/v1/:catalog_id/:id
curl https://api.waygomaps.com/content/v1/hSIhXBhNe8X1d8Et/hSIhXBhNe8X1d8Et \
-H "Waygo-API-Key: eyJhbGciOiJIU...sXSJE_1AJgMEnI_g-WTerk" \
-H "Waygo-Account: n33f9h0fh9324hf9h439fh9h2f9h93h9"
Response
{
"content_id": "hSIhXBhNe8X1d8Et",
"catalog_id": "hSIhXBhNe8X1d8Et",
"data": {
"title": "Exhibitor 1",
"profile_picture": "https://example.com/profile.jpg",
"description": "I am an exhibitor for Comic Con San Diego 2025",
"type": "Exhibitor"
},
"title_key": "title",
"profile_pic_key": "profile_picture",
"description_key": "description",
"type_key": "type",
"profile_picture_url": "https://example.com/profile.jpg",
"created_at": 692233200,
"updated_at": 705103200
}
Update a content object
This endpoint allows you to perform an update on a Content object.
Only the attributes included in the request will be updated in the Content object, ie. whichever attributes are not included in the request will not be changed.
Optional attributes
- Name
data- Type
- object
- Description
The data of the Content object.
- Name
title_key- Type
- string
- Description
The key of the title in the
dataobject.
- Name
profile_pic_key- Type
- string
- Description
The key of the profile picture in the
dataobject.
- Name
description_key- Type
- string
- Description
The URLs that the API key is allowed to make requests from.
- Name
type_key- Type
- string
- Description
The key of the type in the
dataobject.
PUT /content/v1/:catalog_id/:id
curl -X PUT https://api.waygomaps.com/content/v1/hSIhXBhNe8X1d8Et/hSIhXBhNe8X1d8Et \
-H "Waygo-API-Key: eyJhbGciOiJIU...sXSJE_1AJgMEnI_g-WTerk" \
-H "Waygo-Account: n39q9h0ph9324hf9h4vksh9h2f9h03hl" \
-d '{
"data": {
"title": "Exhibitor 1",
"profile_picture": "https://example.com/profile.jpg",
"description": "I am an exhibitor for Comic Con San Diego 2025",
"type": "Exhibitor"
},
"title_key": "title",
"profile_pic_key": "profile_picture",
"description_key": "description",
"type_key": "type"
}'
Response
{
"content_id": "hSIhXBhNe8X1d8Et",
"catalog_id": "hSIhXBhNe8X1d8Et",
"data": {
"title": "Exhibitor 1",
"profile_picture": "https://example.com/profile.jpg",
"description": "I am an exhibitor for Comic Con San Diego 2025",
"type": "Exhibitor"
},
"title_key": "title",
"profile_pic_key": "profile_picture",
"description_key": "description",
"type_key": "type",
"profile_picture_url": "https://example.com/profile.jpg",
"created_at": 692233200,
"updated_at": 705103200
}
Delete a content object
This endpoint allows you to delete a Content object from your account.
Be extremely cautious using this endpoint on any Content object.
DELETE /content/v1/:catalog_id/:id
curl -X DELETE https://api.waygomaps.com/content/v1/hSIhXBhNe8X1d8Et/hSIhXBhNe8X1d8Et \
-H "Waygo-API-Key: eyJhbGciOiJIU...sXSJE_1AJgMEnI_g-WTerk" \
-H "Waygo-Account: n33f9h0fh9324hf9h439fh9h2f9h93h9"
List content objects
This endpoint allows you to retrieve a paginated list of Content objects in a specific Catalog. Use can use the optional query parameter search_query to search only for content that have content.data values that contain the search query.
If the limit parameter is not included, this endpoint will return 20 content objects at a time by default.
Optional parameters
- Name
sort- Type
- list[string]
- Description
Sort content by any content property. Use property name for ascending order (e.g. 'created_at' for oldest first) or prepend with minus for descending order (e.g. '-created_at' for newest first). String fields are sorted alphabetically.
- Name
skip- Type
- integer
- Description
Number of records to skip. Defaults to 0 if not specified.
- Name
limit- Type
- integer
- Description
Maximum number of records to return. Defaults to 20 if not specified.
- Name
search_query- Type
- string
- Description
Search term to filter content by data values.
GET /content/v1/:catalog_id
curl "https://api.waygomaps.com/content/v1/hSIhXBhNe8X1d8Et?sort=-updated_at&skip=20&limit=10&search_query=exhibitor" \
-H "Waygo-API-Key: eyJhbGciOiJIU...sXSJE_1AJgMEnI_g-WTerk" \
-H "Waygo-Account: n33f9h0fh9324hf9h439fh9h2f9h93h9"
Response
{
"contents": [
{
"content_id": "hSIhXBhNe8X1d8Et",
"catalog_id": "hSIhXBhNe8X1d8Et",
"data": {
"external_id": "435",
"title": "Exhibitor 1",
"profile_picture": "https://example.com/profile.jpg",
"description": "I am an exhibitor for Comic Con San Diego 2025",
"type": "Exhibitor"
},
"created_at": 692233200,
"updated_at": 705103200
},
{
"content_id": "hSIhXBhNe8X1d8Et2",
"catalog_id": "hSIhXBhNe8X1d8Et",
"data": {
"external_id": "436",
"title": "Exhibitor 2",
"profile_picture": "https://example.com/profile2.jpg",
"description": "Another exhibitor for Comic Con San Diego 2025",
"type": "Exhibitor"
},
"created_at": 692233201,
"updated_at": 705103201
}
],
"total": 45,
"skip": 20,
"limit": 10
}
Get content by external ID
This endpoint allows you to retrieve a Content object by providing the External ID included in the content's data object as a key.
GET /content/v1/:catalog_id/external-id/:external_id
curl https://api.waygomaps.com/content/v1/hSIhXBhNe8X1d8Et/external-id/435 \
-H "Waygo-API-Key: eyJhbGciOiJIU...sXSJE_1AJgMEnI_g-WTerk" \
-H "Waygo-Account: n33f9h0fh9324hf9h439fh9h2f9h93h9"
Response
{
"content_id": "hSIhXBhNe8X1d8Et",
"catalog_id": "hSIhXBhNe8X1d8Et",
"data": {
"external_id": "435",
"title": "Exhibitor 1",
"profile_picture": "https://example.com/profile.jpg",
"description": "I am an exhibitor for Comic Con San Diego 2025",
"type": "Exhibitor"
},
"created_at": 692233200,
"updated_at": 705103200
}
Update content by external ID
This endpoint allows you to perform an update on a Content object, using the External ID included in the content's data object to identify the Content object.
Only the attributes included in the request will be updated in the Content object, ie. whichever attributes are not included in the request will not be changed.
Optional attributes
- Name
data- Type
- object
- Description
The data of the Content object.
PUT /content/v1/:catalog_id/external-id/:external_id
curl -X PUT https://api.waygomaps.com/content/v1/hSIhXBhNe8X1d8Et/external-id/435 \
-H "Waygo-API-Key: eyJhbGciOiJIU...sXSJE_1AJgMEnI_g-WTerk" \
-H "Waygo-Account: n39q9h0ph9324hf9h4vksh9h2f9h03hl" \
-d '{
"data": {
"title": "Exhibitor 3",
}
}'
Response
{
"content_id": "hSIhXBhNe8X1d8Et",
"catalog_id": "hSIhXBhNe8X1d8Et",
"data": {
"external_id": "435",
"title": "Exhibitor 3",
"profile_picture": "https://example.com/profile.jpg",
"description": "I am an exhibitor for Comic Con San Diego 2025",
"type": "Exhibitor"
},
"created_at": 692233200,
"updated_at": 705103200
}
Delete content by external ID
This endpoint allows you to delete a Content object from your account, using the External ID included in the content's data object to identify the Content object.
Be extremely cautious using this endpoint on any Content object.
DELETE /content/v1/:catalog_id/external-id/:external_id
curl -X DELETE https://api.waygomaps.com/content/v1/hSIhXBhNe8X1d8Et/external-id/435 \
-H "Waygo-API-Key: eyJhbGciOiJIU...sXSJE_1AJgMEnI_g-WTerk" \
-H "Waygo-Account: n33f9h0fh9324hf9h439fh9h2f9h93h9"