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
}

POST/content/v1/:catalog_id

Create a content object

Required attributes

  • Name
    data
    Type
    object
    Description

    The data of the Content object.

POST /content/v1/:catalog_id

API KEY SCOPE
content:write
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/content/v1/:catalog_id/:id

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

API KEY SCOPE
content:read
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
}

PUT/content/v1/:catalog_id/:id

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 data object.

  • Name
    profile_pic_key
    Type
    string
    Description

    The key of the profile picture in the data object.

  • 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 data object.

PUT /content/v1/:catalog_id/:id

API KEY SCOPE
content:write
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/content/v1/:catalog_id/:id

Delete a content object

This endpoint allows you to delete a Content object from your account.

DELETE /content/v1/:catalog_id/:id

API KEY SCOPE
content:delete
curl -X DELETE https://api.waygomaps.com/content/v1/hSIhXBhNe8X1d8Et/hSIhXBhNe8X1d8Et \
  -H "Waygo-API-Key: eyJhbGciOiJIU...sXSJE_1AJgMEnI_g-WTerk" \
  -H "Waygo-Account: n33f9h0fh9324hf9h439fh9h2f9h93h9"

GET/content/v1/:catalog_id

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

API KEY SCOPE
content:read
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/v1/:catalog_id/external-id/:external_id

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

API KEY SCOPE
content:read
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
}

PUT/content/v1/:catalog_id/external-id/:external_id

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

API KEY SCOPE
content:write
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/v1/:catalog_id/external-id/:external_id

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.

DELETE /content/v1/:catalog_id/external-id/:external_id

API KEY SCOPE
content:delete
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"