Skip to content

Arcweave Web API

Arcweave provides a web API for Team workspaces to export project data.

Specifications

The API is currently read-only and supports the following operations:

  • Project List API
  • JSON exports
  • Game engine exports (Unreal, Unity, and Godot)

❕ The API is available to Team workspaces only.

API tokens

In order to use the API, you must have one or more API tokens.

⚠️ Warning: API tokens grant access to your workspace's project data. Store them securely and never expose them in client-side code or public repositories.

Create an API key

To create a new API key, follow these steps:

  • Go to your workspace's API section.
  • Press the button labeled + Create new key.

Edit / delete an API key

To edit or delete an API key, complete the following steps:

  • Go to your workspace's API section.
  • Click the ••• icon next to the key and select Rename or Remove.

🔒 Note: To access the API section in a Team workspace, a member must have the following permissions: View API keys, Create API keys, and Manage API.

Default Headers

To call the API endpoints, include the following headers:

text
Authorization: Bearer [API Token]
Accept: application/json

For example, to make a JSON export request in PHP for a project with hash a1b2c3d4e5, you can use the following code:

php
$response = $client->request('GET', '/api/a1b2c3d4e5/json', [
    'headers' => [
        'Authorization' => 'Bearer '.$token,
        'Accept' => 'application/json',
    ],
 ]);

Available endpoints

The API currently provides the following endpoints:

  • Project List
  • JSON export
  • Unreal Engine export
  • Unity export
  • Godot Engine export
EndpointMethodHeaders
/api/user/projectsGETDefault
/api/{hash}/jsonGETDefault
/api/{hash}/unrealGETDefault
/api/{hash}/unityGETDefault
/api/{hash}/godotGETDefault

The {hash} parameter in each endpoint refers to the project hash, which can be found in the project's URL:

text
arcweave.com/app/project/[hash]?board=[board-id]&scale=1&coords=[x],[v]

For example, consider the following Project URL:

text
https://arcweave.com/app/project/a1b2c3d4e5?board=630fdb8a-48d6-473e-9974-2460f7eb2b41&scale=0.466508&coords=-9919.42,-9879.4

The Project Hash is a1b2c3d4e5, so our endpoints would be /api/a1b2c3d4e5/json, /api/a1b2c3d4e5/godot etc.

Project List endpoint

Success response

In case of success (Code 200), the Project List will respond with an array of your projects, as in the following example:

json
[
  {
    "hash": "ra6XRNxl3G",
    "name": "The Castle",
    "updatedAt": "2023-03-09T18:47:35.000000Z",
    "createdAt": "2023-03-09T13:43:32.000000Z",
    "role": "owner"
  },
  {
    "hash": "VO641d70xY",
    "name": "Untitled project",
    "updatedAt": "2023-03-09T12:57:20.000000Z",
    "createdAt": "2022-11-18T17:37:04.000000Z",
    "role": "editor"
  },
  {
    "hash": "qMEvPRQ08Z",
    "name": "Regrets",
    "updatedAt": "2022-10-03T15:11:58.000000Z",
    "createdAt": "2022-10-03T15:08:36.000000Z",
    "role": "owner"
  },
  {
    "hash": "jlMasdlq5e",
    "name": "Restored - The Castle",
    "updatedAt": "2022-9-13T17:24:25.000000Z",
    "createdAt": "2022-8-03T10:28:39.000000Z",
    "role": "commenter"
  }
]

Each project object has 5 fields:

PropertyTypeValue
hashStringThe hash ID of the Project
nameStringThe name of the Project
updatedAtStringThe time of the last update (UTC)
createdAtStringThe creation datetime for the project (UTC)
roleStringThe user's role in the project. Can be owner, editor, commenter

The returned list is ordered by the updatedAt field in descending order.

Error response

If the request fails, the endpoint responds with one of the following error codes:

  • Code 500: There was an error retrieving the user's projects.
  • Code 403: You have insufficient permissions to make this request. Please make sure you are still on a Team Account.

JSON endpoint

You may include a query string with boardIds[] parameters to limit the response to specific boards:

text
/api/{hash}/json?boardIds[]={boardId1}&boardIds[]={boardId2}&...

Success response

In case of success (Code 200), the JSON endpoint responds with the JSON of the project, similar to the file you get from Arcweave's Export project > JSON menu.

json
{
  "startingElement": "38375689-9e4d-430e-954c-65205eb622fe",
  "boards": {
    "2ad15ff6-f2ba-4f1d-9d9d-68938c683d7e": {
      "name": "Root",
      "root": true,
      "children": [
        "630fdb8a-48d6-473e-9974-2460f7eb2b41",
        "733b1cc4-6d51-4ad6-9fba-444b4f2d98f3"
      ]
    },
    "630fdb8a-48d6-473e-9974-2460f7eb2b41": {
      "name": "Main Board",
      "notes": [
        "eda3ed5a-bdd5-4981-a72f-c7847630310a",
        "585c89a5-a16c-44db-9346-6e2725afcd88",
        "5f45b936-1a0f-4834-87c3-579fb72329b1",
        "0d580890-add4-4750-9b0c-64a9be4bd9be",
        "045fcf7a-0e29-4f29-a6b3-f1be825832ed",
        "27bcf38e-cef9-4413-b4c9-97e6c7300ec3",
        "c917680a-9884-41fb-832c-7ac41f87c520"
      ],
    [...]
 }

Error response

If the request fails, the endpoint responds with one of the following error codes:

  • Code 500: There was an error during the export of the project.
  • Code 403: You have insufficient permissions for exporting this project. Please make sure you are still on a Team Account, you are using the correct Hash ID and you are an Owner/Editor of the project.

Unity endpoint

This endpoint is used by the Arcweave for Unity plugin to update the project's resources.

Success response

In case of success (Code 200), the Unity endpoint responds with a JSON containing the project settings in a key called project. The project settings are similar to the file you get from Arcweave's Export project > Engine > Export for Unity menu.

json
{
  "project": {
    "startingElement": "38375689-9e4d-430e-954c-65205eb622fe",
    "boards": {
      "2ad15ff6-f2ba-4f1d-9d9d-68938c683d7e": {
        "name": "Root",
        "root": true,
        "children": [
          "630fdb8a-48d6-473e-9974-2460f7eb2b41",
          "733b1cc4-6d51-4ad6-9fba-444b4f2d98f3"
        ]
      },
      "630fdb8a-48d6-473e-9974-2460f7eb2b41": {
        "name": "Main Board",
        "notes": [
          "eda3ed5a-bdd5-4981-a72f-c7847630310a",
          "585c89a5-a16c-44db-9346-6e2725afcd88",
          "5f45b936-1a0f-4834-87c3-579fb72329b1",
          "0d580890-add4-4750-9b0c-64a9be4bd9be",
          "045fcf7a-0e29-4f29-a6b3-f1be825832ed",
          "27bcf38e-cef9-4413-b4c9-97e6c7300ec3",
          "c917680a-9884-41fb-832c-7ac41f87c520"
        ],
      [...]
 }

Error response

If the request fails, the endpoint responds with one of the following error codes:

  • Code 500: There was an error during the export of the project.
  • Code 403: You have insufficient permissions for exporting this project. Please make sure you are still on a Team Account, you are using the correct Hash ID and you are an Owner/Editor of the project.

Unreal Engine endpoint

This endpoint is used by the Arcweave Plugin for Unreal Engine to update the project's resources.

Success response

In case of success (Code 200) the Unreal Engine endpoint responds with a JSON containing the project settings in a key called project. The project settings are similar to the file you get from Arcweave's Export project > Engine > Export for Unreal menu.

json
{
  "project": {
    "startingElement": "38375689-9e4d-430e-954c-65205eb622fe",
    "boards": {
      "2ad15ff6-f2ba-4f1d-9d9d-68938c683d7e": {
        "name": "Root",
        "root": true,
        "children": [
          "630fdb8a-48d6-473e-9974-2460f7eb2b41",
          "733b1cc4-6d51-4ad6-9fba-444b4f2d98f3"
        ]
      },
      "630fdb8a-48d6-473e-9974-2460f7eb2b41": {
        "name": "Main Board",
        "notes": [
          "eda3ed5a-bdd5-4981-a72f-c7847630310a",
          "585c89a5-a16c-44db-9346-6e2725afcd88",
          "5f45b936-1a0f-4834-87c3-579fb72329b1",
          "0d580890-add4-4750-9b0c-64a9be4bd9be",
          "045fcf7a-0e29-4f29-a6b3-f1be825832ed",
          "27bcf38e-cef9-4413-b4c9-97e6c7300ec3",
          "c917680a-9884-41fb-832c-7ac41f87c520"
        ],
      [...]
 }

Error response

If the request fails, the endpoint responds with one of the following error codes:

  • Code 500: There was an error during the export of the project.
  • Code 403: You have insufficient permissions for exporting this project. Please make sure you are still on a Team Account, you are using the correct Hash ID and you are an Owner/Editor of the project.

Godot Engine endpoint

This endpoint is used by the Arcweave Godot Plugin to update the project's resources.

Success response

In case of success (Code 200), the Godot endpoint will respond with a JSON containing the project settings in a key called project. The project settings are similar to the file you get from Arcweave's Export project > Engine > Export for Godot menu.

json
{
  "project": {
    "startingElement": "38375689-9e4d-430e-954c-65205eb622fe",
    "boards": {
      "2ad15ff6-f2ba-4f1d-9d9d-68938c683d7e": {
        "name": "Root",
        "root": true,
        "children": [
          "630fdb8a-48d6-473e-9974-2460f7eb2b41",
          "733b1cc4-6d51-4ad6-9fba-444b4f2d98f3"
        ]
      },
      "630fdb8a-48d6-473e-9974-2460f7eb2b41": {
        "name": "Main Board",
        "notes": [
          "eda3ed5a-bdd5-4981-a72f-c7847630310a",
          "585c89a5-a16c-44db-9346-6e2725afcd88",
          "5f45b936-1a0f-4834-87c3-579fb72329b1",
          "0d580890-add4-4750-9b0c-64a9be4bd9be",
          "045fcf7a-0e29-4f29-a6b3-f1be825832ed",
          "27bcf38e-cef9-4413-b4c9-97e6c7300ec3",
          "c917680a-9884-41fb-832c-7ac41f87c520"
        ],
      [...]
 }

Error response

If the request fails, the endpoint responds with one of the following error codes:

  • Code 500: There was an error during the export of the project.
  • Code 403: You have insufficient permissions for exporting this project. Please make sure you are still on a Team Account, you are using the correct Hash ID and you are an Owner/Editor of the project.