Go to Dark mode
Go to Light mode

Save Configuration API Documentation - V1.0.0

API keys

Generate temporary public key

This is a POST method that generates a temporary public key

POST https://save-configuration.unlimited3d.com/api/key/generate

Headers Parameters:

Name Type Required
secret_key string yes
public_key string yes

Body Parameters:

Name Type Required Description
ttl integer no Time to leave in seconds. Default 600 (10 minutes). Maximum 7200(2 hours).
group_scope array yes Array of groups that key can be used for

Example response:

{
   "public_key": "jwt token representing temp public key",
   "expires_at": 1734432950, // Unix timestamp, when key will expire,
   "group_scope": ["test"] // Scope of the key
}

Configuration and files

Save Configuration

This is a POST method that saves a custom configuration.

POST https://save-configuration.unlimited3d.com/api/configurations/save

Headers Parameters:

Name Type Required
Authorization string yes

Body Parameters:

Name Type Required Description
group string yes The name of the group

Example response:

{
   "id": 8, // Id of configuration
   "status": "started", // Status, can be "started" or "confirmed"
   "group": "test", // Group that configuration is assigned to
   "created_at": "2024-12-17T10:48:46.482Z", 
   "updated_at": "2024-12-17T10:48:46.482Z",
   "s3_signed_url": "s3 temp url to PUT json to" // Default expiry 10 minutes
}

Confirm

This is a POST method that confirms a configuration.

POST https://save-configuration.unlimited3d.com/api/configurations/{id}/confirm

Headers Parameters:

Name Type Required
Authorization string yes

Parameters:

Name Type Required Description
id integer yes id of configuration client wants to confirm

Example response:

{
   "id": 8, // Id of configuration
   "status": "confirmed",
   "group": "test",
   "size_bytes": 753, // Size of file uploaded to S3, in bytes
   "created_at": "2024-12-17T10:48:46.000Z",
   "updated_at": "2024-12-17T10:51:59.000Z"
}

Get configurations

This is a POST method that retrieves the paginated list of configurations

POST https://save-configuration.unlimited3d.com/api/configurations

Headers Parameters:

Name Type Required
Authorization string yes

Parameters:

Name Type Required Description
page integer no representing the page of paginated results

Body Parameters:

Name Type Required Description
groups array yes array of groups to get

Example response:

{
   "data": [
       {
           "id": 7,
           "status": "confirmed",
           "group": "test",
           "created_at": "2024-12-16T13:48:25.000Z",
           "updated_at": "2024-12-16T13:48:49.000Z"
       },
       {
           "id": 8,
           "status": "confirmed",
           "group": "test",
           "created_at": "2024-12-17T10:48:46.000Z",
           "updated_at": "2024-12-17T10:51:59.000Z"
       }
   ],
   "pagination": {
       "count": 2, // Number of results on current page
       "pages": 1, // Total number of pages
       "total": 2 // Total number of results
   }
}

Get a specific configuration

This is a GET method that retrieves a specific configuration

GET https://save-configuration.unlimited3d.com/api/configurations/{id}

Headers Parameters:

Name Type Required
Authorization string yes

Parameters:

Name Type Required Description
id integer yes id of configuration client wants to get

Example response:

{
   "id": 8,
   "status": "confirmed",
   "group": "test",
   "size_bytes": 753, // Size of file in bytes
   "tmp_file_url": "https://storage-save-configuration.unlimited3d.com/4ad62fc1-b5d3-49d2-958d-64998f29f66b.json?Policy=eyJT.....", // Cloud front temp url, default expiry 5 days
   "tmp_url_expires_at": 1734865227, // When will the temp url expiry
   "created_at": "2024-12-17T10:48:46.000Z",
   "updated_at": "2024-12-17T10:51:59.000Z"
}

Get files

This is a GET method that retrieves the paginated list of files associated with the configuration.

GET https://save-configuration.unlimited3d.com/api/configurations/{id}/files

Headers Parameters:

Name Type Required
Authorization string yes

Parameters:

Name Type Required Description
id integer yes id of configuration client wants to get files for
page integer no representing the page of paginated results

Example response:

{
   "data": [
       {
           "id": 2,
           "status": "confirmed",
           "size_bytes": 753,
           "created_at": "2024-12-17T11:12:04.000Z",
           "updated_at": "2024-12-17T11:15:35.000Z",
           "tmp_file_url": "https://storage-save-configuration.unlimited3d.com/ed971bb2-2b23-4fcf-af38-19d049fc21cc.png?Policy=eyJT....", // Cloud front temp url, default expiry 5 days
           "tmp_url_expires_at": 1734866209 // When will the temp url expiry
       }
   ],
   "pagination": {
       "count": 1,
       "pages": 1,
       "total": 1
   }
}

Save file

This is a POST method that saves a file for a specific configuration.

POST https://save-configuration.unlimited3d.com/api/configurations/{id}/files/save

Headers Parameters:

Name Type Required
Authorization string yes

Parameters:

Name Type Required Description
id integer yes id of configuration client wants to save file for

Body Parameters:

Name Type Required Description
ext string yes file extension

Example response:

{
   "id": 2, // Id of file
   "status": "started", // Same as configuration, "started" or "confirmed"
   "created_at": "2024-12-17T11:12:04.989Z",
   "updated_at": "2024-12-17T11:12:04.989Z",
   "s3_signed_url": "s3 temp url to PUT file to" // Default expiry 10 minutes
}

Confirm file

This is a POST method that confirms a file for a specific configuration.

POST https://save-configuration.unlimited3d.com/api/configurations/{saved_config_id}/files/{id}/confirm

Headers Parameters:

Name Type Required
Authorization string yes

Parameters:

Name Type Required Description
id integer yes id of the file, returned by previous API

Body Parameters:

Name Type Required Description
saved_config_id integer yes id of configuration client wants to save file for

Example response:

{
   "id": 2,
   "status": "confirmed",
   "size_bytes": 753, // Size of file, in bytes
   "created_at": "2024-12-17T11:12:04.000Z",
   "updated_at": "2024-12-17T11:15:35.000Z"
}

Get a specific file

This is a GET method that retrieves a file saved for a specific configuration.

GET https://save-configuration.unlimited3d.com/api/configurations/{saved_config_id}/files/{id}

Headers Parameters:

Name Type Required
Authorization string yes

Parameters:

Name Type Required Description
saved_config_id integer yes id of configuration client wants to save file for
id integer yes id of the file, returned by previous API

Example response:

{
   "id": 4,
   "status": "confirmed",
   "size_bytes": 1852368,
   "created_at": "2024-12-17T14:13:40.000Z",
   "updated_at": "2024-12-17T14:14:06.000Z",
   "tmp_file_url": "https://storage-save-configuration.unlimited3d.com/35cb9173-26ec-424c-bcfd-603db1c07a9a.jpg?Policy=eyJTdG....", 
   "tmp_url_expires_at": 1734880024
}