For the complete documentation index, see llms.txt. This page is also available as Markdown.

Worlds

Operations for Decentraland Worlds - privately owned virtual spaces that exist outside Genesis City. Worlds can be accessed via unique URLs and have their own rules and configurations.

List Decentraland Worlds

get
/worlds

Retrieve a paginated list of Decentraland Worlds with filtering and sorting.

Worlds vs Places: Worlds are privately owned virtual spaces accessed via unique URLs, while Places are scenes in Genesis City at specific coordinates.

Common Queries:

  • Most active worlds: ?order_by=most_active

  • Search by name: ?search=party

  • Specific worlds: ?names=world-name-1&names=world-name-2

Query parameters
limitinteger Β· max: 100Optional

Maximum number of worlds to return (max 100)

Default: 100
offsetintegerOptional

Number of worlds to skip for pagination

Default: 0
namesstring[] Β· max: 1000Optional

Filter by specific world names (exact match, case-insensitive). Multiple names return worlds matching ANY name (OR logic).

Example: ["my-world","art-space"]
only_highlightedbooleanOptional

Show only worlds marked as highlighted by moderators

Default: falseExample: false
only_excluded_from_rankingbooleanOptional

Show only worlds the automated daily ranking is not allowed to touch. Those worlds are listed normally by every other query; this is how to audit which ones carry the exclusion, since the catalogue is far larger than the page limit and scanning it would miss them.

Default: falseExample: false
only_favoritesbooleanOptional

Show only authenticated user's favorite worlds (requires auth)

Default: false
order_bystring Β· enumOptional

Sort worlds by:

  • like_score: Best rated (VP-weighted, default)
  • most_active: Current user count
  • created_at: Newest first
Default: like_scorePossible values:
orderstring Β· enumOptional

Sort direction

Default: descPossible values:
searchstring Β· min: 3Optional

Full-text search in world title, description (min 3 chars)

categoriesstring[]Optional

Filter by categories

disabledbooleanOptional

Include disabled/opt-out worlds in results

Default: false
ownerstringOptional

Filter by owner's Ethereum address

Pattern: ^0x[a-fA-F0-9]{40}$
Responses
200

Worlds retrieved successfully

application/json
okbooleanOptionalExample: true
totalintegerOptional

Total number of worlds matching the query

Example: 42
get/worlds
GET /api/worlds HTTP/1.1
Host: places.decentraland.org
Accept: */*
{
  "ok": true,
  "data": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "title": "text",
      "description": "text",
      "image": "https://example.com",
      "owner": "text",
      "positions": [
        "text"
      ],
      "base_position": "text",
      "contact_name": "text",
      "contact_email": "text",
      "content_rating": "text",
      "likes": 1,
      "dislikes": 1,
      "like_score": 1,
      "like_rate": 1,
      "ranking": 0,
      "highlighted": true,
      "exclude_from_ranking": false,
      "favorites": 1,
      "disabled": true,
      "disabled_at": "2026-01-01T00:00:00.000Z",
      "created_at": "2026-01-01T00:00:00.000Z",
      "updated_at": "2026-01-01T00:00:00.000Z",
      "deployed_at": "2026-01-01T00:00:00.000Z",
      "user_like": true,
      "user_dislike": true,
      "user_favorite": true,
      "user_count": 1,
      "user_visits": 1,
      "creator_address": "text",
      "sdk": "7",
      "connected_addresses": [
        "text"
      ]
    }
  ],
  "total": 42
}

Update world ranking πŸ”’ (Service token)

put
/worlds/{world_id}/ranking

Update the ranking score for a world. Requires service token authentication.

This is the endpoint that moves a world in browse. Worlds are ordered by their own ranking column, which is not the same column as a place's: writing to PUT /places/{place_id}/ranking for the place row that backs a world succeeds and changes nothing in browse. Address a world by its name, lowercased, which is its id.

Higher ranking values appear first, after highlighted worlds. Send null to remove the ranking.

Authentication: Accepts the value of either the DATA_TEAM_AUTH_TOKEN or the PLACES_ADMIN_AUTH_TOKEN environment variable in the Authorization header.

Curated rankings are editorial. Two states make a ranking off limits to the data team token, which gets a 403: while a world is highlighted its ranking is the order the curated shelf is shown in, and a world carrying exclude_from_ranking must stay browsable while the automated score leaves it alone.

Authorizations
AuthorizationstringRequired

Pre-configured service token for service-to-service authentication.

This authentication method is used for internal service calls, such as the data team's ranking updates. The token value must match either the DATA_TEAM_AUTH_TOKEN or the PLACES_ADMIN_AUTH_TOKEN environment variable configured on the server.

To authenticate: Include in requests: Authorization: Bearer <service-token> or Authorization: <service-token>

Path parameters
world_idstringRequired

World id, which is the world name lowercased (for example gather.dcl.eth)

Body
rankingnumber Β· nullableRequired

Ranking score for ordering places. Higher values appear first in listings (after highlighted places). Set to null to remove ranking.

Example: 0.85
Responses
201

Ranking updated successfully

application/json

A Decentraland World - privately owned virtual space

idstring Β· uuidOptional

Unique world identifier

titlestring Β· max: 50 Β· nullableOptional

World name

descriptionstring Β· max: 5000 Β· nullableOptional

World description

imagestring Β· uri Β· nullableOptional

World thumbnail URL

ownerstring Β· max: 42 Β· nullableOptional

Owner's Ethereum address

positionsstring[]Optional

Coordinate placeholders (worlds don't use Genesis City coordinates)

base_positionstringOptional

Base coordinate placeholder

Pattern: ^-?\d{1,3},-?\d{1,3}$
contact_namestring Β· max: 5000 Β· nullableOptional
contact_emailstring Β· max: 5000 Β· nullableOptional
content_ratingstring Β· max: 5000 Β· nullableOptional

Content rating

likesintegerOptional
dislikesintegerOptional
like_scorenumber Β· max: 1 Β· nullableOptional
like_ratenumber Β· max: 1 Β· nullableOptional
rankingnumber Β· nullableOptional

External ranking value for custom ordering

Default: 0
highlightedbooleanOptional

True if this world is highlighted/featured by administrators

exclude_from_rankingbooleanOptional

True if the automated discovery score must not rank this entity. It stays browsable and keeps appearing in listings; only the scheduled scoring job is refused, with a 403 on the ranking endpoint. Distinct from highlighted, which moves where the entity shows, and from hidden and disabled, which take it out of browse and out of the catalogue. Survives a redeployment.

Default: falseExample: false
favoritesintegerOptional
disabledbooleanOptional

True if world opted out of listing

disabled_atstring Β· date-time Β· nullableOptional
created_atstring Β· date-timeOptional
updated_atstring Β· date-timeOptional
deployed_atstring Β· date-timeOptional
user_likebooleanOptional
user_dislikebooleanOptional
user_favoritebooleanOptional
user_countintegerOptional

Current users in the world

user_visitsintegerOptional

Visits in last 30 days

creator_addressstring Β· max: 42 Β· nullableOptional

The creator's wallet address

Pattern: ^0x[a-fA-F0-9]{40}$
sdkstring Β· nullableOptional

SDK/runtime version (e.g., "7" for SDK7)

Example: 7
connected_addressesstring[]Optional

List of wallet addresses currently connected to this world. Only included when with_connected_users=true query parameter is set.

put/worlds/{world_id}/ranking
PUT /api/worlds/{world_id}/ranking HTTP/1.1
Host: places.decentraland.org
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 16

{
  "ranking": 1800
}
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "title": "text",
  "description": "text",
  "image": "https://example.com",
  "owner": "text",
  "positions": [
    "text"
  ],
  "base_position": "text",
  "contact_name": "text",
  "contact_email": "text",
  "content_rating": "text",
  "likes": 1,
  "dislikes": 1,
  "like_score": 1,
  "like_rate": 1,
  "ranking": 0,
  "highlighted": true,
  "exclude_from_ranking": false,
  "favorites": 1,
  "disabled": true,
  "disabled_at": "2026-01-01T00:00:00.000Z",
  "created_at": "2026-01-01T00:00:00.000Z",
  "updated_at": "2026-01-01T00:00:00.000Z",
  "deployed_at": "2026-01-01T00:00:00.000Z",
  "user_like": true,
  "user_dislike": true,
  "user_favorite": true,
  "user_count": 1,
  "user_visits": 1,
  "creator_address": "text",
  "sdk": "7",
  "connected_addresses": [
    "text"
  ]
}

Exclude a world from the automated ranking πŸ”’ (Service token)

put
/worlds/{world_id}/ranking-exclusion

Mark a world as browsable but out of reach of the automated discovery score. Same semantics as the places endpoint: the world keeps appearing in listings and only the scheduled scoring job is refused, with a 403 on the world ranking endpoint.

Setting the exclusion also clears the stored ranking to 0.

Authentication: requires the value of PLACES_ADMIN_AUTH_TOKEN.

Authorizations
AuthorizationstringRequired

Pre-configured service token for service-to-service authentication.

This authentication method is used for internal service calls, such as the data team's ranking updates. The token value must match either the DATA_TEAM_AUTH_TOKEN or the PLACES_ADMIN_AUTH_TOKEN environment variable configured on the server.

To authenticate: Include in requests: Authorization: Bearer <service-token> or Authorization: <service-token>

Path parameters
world_idstringRequired

World id, which is the world name lowercased (for example gather.dcl.eth)

Responses
201

World excluded from the automated ranking

application/json

A Decentraland World - privately owned virtual space

idstring Β· uuidOptional

Unique world identifier

titlestring Β· max: 50 Β· nullableOptional

World name

descriptionstring Β· max: 5000 Β· nullableOptional

World description

imagestring Β· uri Β· nullableOptional

World thumbnail URL

ownerstring Β· max: 42 Β· nullableOptional

Owner's Ethereum address

positionsstring[]Optional

Coordinate placeholders (worlds don't use Genesis City coordinates)

base_positionstringOptional

Base coordinate placeholder

Pattern: ^-?\d{1,3},-?\d{1,3}$
contact_namestring Β· max: 5000 Β· nullableOptional
contact_emailstring Β· max: 5000 Β· nullableOptional
content_ratingstring Β· max: 5000 Β· nullableOptional

Content rating

likesintegerOptional
dislikesintegerOptional
like_scorenumber Β· max: 1 Β· nullableOptional
like_ratenumber Β· max: 1 Β· nullableOptional
rankingnumber Β· nullableOptional

External ranking value for custom ordering

Default: 0
highlightedbooleanOptional

True if this world is highlighted/featured by administrators

exclude_from_rankingbooleanOptional

True if the automated discovery score must not rank this entity. It stays browsable and keeps appearing in listings; only the scheduled scoring job is refused, with a 403 on the ranking endpoint. Distinct from highlighted, which moves where the entity shows, and from hidden and disabled, which take it out of browse and out of the catalogue. Survives a redeployment.

Default: falseExample: false
favoritesintegerOptional
disabledbooleanOptional

True if world opted out of listing

disabled_atstring Β· date-time Β· nullableOptional
created_atstring Β· date-timeOptional
updated_atstring Β· date-timeOptional
deployed_atstring Β· date-timeOptional
user_likebooleanOptional
user_dislikebooleanOptional
user_favoritebooleanOptional
user_countintegerOptional

Current users in the world

user_visitsintegerOptional

Visits in last 30 days

creator_addressstring Β· max: 42 Β· nullableOptional

The creator's wallet address

Pattern: ^0x[a-fA-F0-9]{40}$
sdkstring Β· nullableOptional

SDK/runtime version (e.g., "7" for SDK7)

Example: 7
connected_addressesstring[]Optional

List of wallet addresses currently connected to this world. Only included when with_connected_users=true query parameter is set.

put/worlds/{world_id}/ranking-exclusion
PUT /api/worlds/{world_id}/ranking-exclusion HTTP/1.1
Host: places.decentraland.org
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "title": "text",
  "description": "text",
  "image": "https://example.com",
  "owner": "text",
  "positions": [
    "text"
  ],
  "base_position": "text",
  "contact_name": "text",
  "contact_email": "text",
  "content_rating": "text",
  "likes": 1,
  "dislikes": 1,
  "like_score": 1,
  "like_rate": 1,
  "ranking": 0,
  "highlighted": true,
  "exclude_from_ranking": false,
  "favorites": 1,
  "disabled": true,
  "disabled_at": "2026-01-01T00:00:00.000Z",
  "created_at": "2026-01-01T00:00:00.000Z",
  "updated_at": "2026-01-01T00:00:00.000Z",
  "deployed_at": "2026-01-01T00:00:00.000Z",
  "user_like": true,
  "user_dislike": true,
  "user_favorite": true,
  "user_count": 1,
  "user_visits": 1,
  "creator_address": "text",
  "sdk": "7",
  "connected_addresses": [
    "text"
  ]
}

Return a world to the automated ranking πŸ”’ (Service token)

delete
/worlds/{world_id}/ranking-exclusion

Clear the exclusion so the automated discovery score may rank this world again.

Authentication: requires the value of PLACES_ADMIN_AUTH_TOKEN.

Authorizations
AuthorizationstringRequired

Pre-configured service token for service-to-service authentication.

This authentication method is used for internal service calls, such as the data team's ranking updates. The token value must match either the DATA_TEAM_AUTH_TOKEN or the PLACES_ADMIN_AUTH_TOKEN environment variable configured on the server.

To authenticate: Include in requests: Authorization: Bearer <service-token> or Authorization: <service-token>

Path parameters
world_idstringRequired

World id, which is the world name lowercased (for example gather.dcl.eth)

Responses
200

World returned to the automated ranking

application/json

A Decentraland World - privately owned virtual space

idstring Β· uuidOptional

Unique world identifier

titlestring Β· max: 50 Β· nullableOptional

World name

descriptionstring Β· max: 5000 Β· nullableOptional

World description

imagestring Β· uri Β· nullableOptional

World thumbnail URL

ownerstring Β· max: 42 Β· nullableOptional

Owner's Ethereum address

positionsstring[]Optional

Coordinate placeholders (worlds don't use Genesis City coordinates)

base_positionstringOptional

Base coordinate placeholder

Pattern: ^-?\d{1,3},-?\d{1,3}$
contact_namestring Β· max: 5000 Β· nullableOptional
contact_emailstring Β· max: 5000 Β· nullableOptional
content_ratingstring Β· max: 5000 Β· nullableOptional

Content rating

likesintegerOptional
dislikesintegerOptional
like_scorenumber Β· max: 1 Β· nullableOptional
like_ratenumber Β· max: 1 Β· nullableOptional
rankingnumber Β· nullableOptional

External ranking value for custom ordering

Default: 0
highlightedbooleanOptional

True if this world is highlighted/featured by administrators

exclude_from_rankingbooleanOptional

True if the automated discovery score must not rank this entity. It stays browsable and keeps appearing in listings; only the scheduled scoring job is refused, with a 403 on the ranking endpoint. Distinct from highlighted, which moves where the entity shows, and from hidden and disabled, which take it out of browse and out of the catalogue. Survives a redeployment.

Default: falseExample: false
favoritesintegerOptional
disabledbooleanOptional

True if world opted out of listing

disabled_atstring Β· date-time Β· nullableOptional
created_atstring Β· date-timeOptional
updated_atstring Β· date-timeOptional
deployed_atstring Β· date-timeOptional
user_likebooleanOptional
user_dislikebooleanOptional
user_favoritebooleanOptional
user_countintegerOptional

Current users in the world

user_visitsintegerOptional

Visits in last 30 days

creator_addressstring Β· max: 42 Β· nullableOptional

The creator's wallet address

Pattern: ^0x[a-fA-F0-9]{40}$
sdkstring Β· nullableOptional

SDK/runtime version (e.g., "7" for SDK7)

Example: 7
connected_addressesstring[]Optional

List of wallet addresses currently connected to this world. Only included when with_connected_users=true query parameter is set.

delete/worlds/{world_id}/ranking-exclusion
DELETE /api/worlds/{world_id}/ranking-exclusion HTTP/1.1
Host: places.decentraland.org
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "title": "text",
  "description": "text",
  "image": "https://example.com",
  "owner": "text",
  "positions": [
    "text"
  ],
  "base_position": "text",
  "contact_name": "text",
  "contact_email": "text",
  "content_rating": "text",
  "likes": 1,
  "dislikes": 1,
  "like_score": 1,
  "like_rate": 1,
  "ranking": 0,
  "highlighted": true,
  "exclude_from_ranking": false,
  "favorites": 1,
  "disabled": true,
  "disabled_at": "2026-01-01T00:00:00.000Z",
  "created_at": "2026-01-01T00:00:00.000Z",
  "updated_at": "2026-01-01T00:00:00.000Z",
  "deployed_at": "2026-01-01T00:00:00.000Z",
  "user_like": true,
  "user_dislike": true,
  "user_favorite": true,
  "user_count": 1,
  "user_visits": 1,
  "creator_address": "text",
  "sdk": "7",
  "connected_addresses": [
    "text"
  ]
}

Get all world names

get
/world_names

Retrieve a simple list of all registered world names.

Use Cases:

  • Autocomplete for world search

  • Validation of world name existence

  • Browse all available worlds

Performance: Lightweight endpoint, returns only names as strings.

Responses
200

World names retrieved successfully

application/json
okbooleanOptional
datastring[]Optional

List of world names

get/world_names
GET /api/world_names HTTP/1.1
Host: places.decentraland.org
Accept: */*
{
  "ok": true,
  "data": [
    "art-gallery-world",
    "concert-venue",
    "gaming-arena"
  ]
}

Last updated