Content

A content object is one row of a catalog: an exhibitor, a session, a food stand. Its data holds a value per column. A row becomes a place on the map when its placement column (usually a booth or room number) matches the floor plan; every edit reaches the live map as it lands.

Address rows by Waygo's content_id, or by your identifier through the external-id endpoints when the catalog has an external ID column (content_external_id_key). Scopes: content:read, content:write, content:delete.

ENDPOINTS

POST   /content/v1/:catalog_id
GET    /content/v1/:catalog_id
GET    /content/v1/:catalog_id/:content_id
PUT    /content/v1/:catalog_id/:content_id
DELETE /content/v1/:catalog_id/:content_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
PATCH  /content/v1/:catalog_id/bulk
PUT    /content/v1/:catalog_id/:content_id/:field_name/image

The content object

  • Name
    content_id
    Type
    string
    Description
    Waygo's ID for the row.
  • Name
    catalog_id
    Type
    string
    Description
    Its catalog.
  • Name
    account_id
    Type
    string
    Description
    The account.
  • Name
    data
    Type
    object
    Description
    One value per column, keyed by the column name. Values follow the column's type; an image column holds the image's URL.
  • Name
    created_at / updated_at
    Type
    timestamp
    Description
    Timestamps.

The content object

{
  "content_id": "d7e1f77ece5f493093ccd1d09e009f5c",
  "catalog_id": "exhibitors",
  "account_id": "dash-dev-acct",
  "data": {
    "exhibitor_id": "EXH-4471",
    "Company": "Acme Robotics",
    "Booth": "201",
    "Category": "Robotics",
    "Website": "https://acme.example",
    "Logo": "https://storage.waygomaps.com/…/acme.png"
  },
  "created_at": "2026-07-01T09:00:00",
  "updated_at": "2026-09-18T19:44:21"
}

POST/content/v1/:catalog_id

Create content

Body

  • Name
    data
    Type
    object
    Description
    The row's values. A key that is not a column yet is added to the catalog's columns as a string.

POST /content/v1/:catalog_id

API KEY SCOPE
content:write
curl -X POST https://api.waygomaps.com/content/v1/exhibitors \
  -H "Waygo-API-Key: $WAYGO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "data": { "exhibitor_id": "EXH-4471", "Company": "Acme Robotics", "Booth": "201", "Category": "Robotics" } }'

Response (201)

{ "content_id": "d7e1f77e…", "catalog_id": "exhibitors", "data": { "exhibitor_id": "EXH-4471", "Company": "Acme Robotics", "Booth": "201", "Category": "Robotics" }, "…": "…" }

GET/content/v1/:catalog_id

List content

Optional parameters

  • Name
    skip
    Type
    integer
    Description
    Default 0.
  • Name
    limit
    Type
    integer
    Description
    Default 20.
  • Name
    search_query
    Type
    string
    Description
    Only rows whose values contain this text.
  • Name
    sort
    Type
    string[]
    Description
    Sort by a field; - for descending. Repeat for several.

GET /content/v1/:catalog_id

API KEY SCOPE
content:read
curl "https://api.waygomaps.com/content/v1/exhibitors?search_query=robot&sort=-updated_at&limit=20" \
  -H "Waygo-API-Key: $WAYGO_API_KEY"

Response

{ "contents": [ { "content_id": "d7e1f77e…", "data": { "…": "…" } } ], "total": 1, "skip": 0, "limit": 20 }

GET/content/v1/:catalog_id/:content_id

Retrieve content

One row by Waygo's ID. By your own ID: GET /content/v1/:catalog_id/external-id/:external_id.

GET /content/v1/:catalog_id/:content_id

API KEY SCOPE
content:read
curl https://api.waygomaps.com/content/v1/exhibitors/d7e1f77ece5f493093ccd1d09e009f5c \
  -H "Waygo-API-Key: $WAYGO_API_KEY"

PUT/content/v1/:catalog_id/:content_id

Update content

Merges data into the row: keys you send change, keys you leave out stay. By your own ID: PUT /content/v1/:catalog_id/external-id/:external_id (answers 404 when no row has that ID; create it then).

PUT /content/v1/:catalog_id/:content_id

API KEY SCOPE
content:write
curl -X PUT https://api.waygomaps.com/content/v1/exhibitors/d7e1f77ece5f493093ccd1d09e009f5c \
  -H "Waygo-API-Key: $WAYGO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "data": { "Booth": "205" } }'

DELETE/content/v1/:catalog_id/:content_id

Delete content

Removes the row and its places on every map. By your own ID: DELETE /content/v1/:catalog_id/external-id/:external_id.

DELETE /content/v1/:catalog_id/:content_id

API KEY SCOPE
content:delete
curl -X DELETE https://api.waygomaps.com/content/v1/exhibitors/d7e1f77ece5f493093ccd1d09e009f5c \
  -H "Waygo-API-Key: $WAYGO_API_KEY"

Response

204 No Content

PATCH/content/v1/:catalog_id/bulk

Bulk patch

Apply partial updates to many rows in one request.

Body

  • Name
    updates
    Type
    array
    Description
    { content_id, changes } per row; changes is merged into the row's data.

PATCH /content/v1/:catalog_id/bulk

API KEY SCOPE
content:write
curl -X PATCH https://api.waygomaps.com/content/v1/exhibitors/bulk \
  -H "Waygo-API-Key: $WAYGO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "updates": [
      { "content_id": "d7e1f77ece5f493093ccd1d09e009f5c", "changes": { "Booth": "205" } },
      { "content_id": "85e174403f154871b6b094716515b814", "changes": { "Category": "Components" } }
    ]
  }'

Response

{ "updated": [ { "content_id": "d7e1f77e…", "data": { "…": "…" } }, { "content_id": "85e17440…", "data": { "…": "…" } } ] }

PUT/content/v1/:catalog_id/:content_id/:field_name/image

Upload an image

Upload a file into an image column of a row (multipart file: JPEG, PNG, TIFF, SVG). The stored image's URL becomes the column's value. Alternatively put a public image URL in the column directly with an update.

Errors

  • Name
    404
    Description
    The column does not exist.
  • Name
    400
    Description
    The column is not an image column, or the file type is not accepted.

PUT /content/v1/:catalog_id/:content_id/:field_name/image

API KEY SCOPE
content:write
curl -X PUT https://api.waygomaps.com/content/v1/exhibitors/d7e1f77ece5f493093ccd1d09e009f5c/Logo/image \
  -H "Waygo-API-Key: $WAYGO_API_KEY" \
  -F "file=@acme-logo.png;type=image/png"