Synth (v1alpha1)

Download OpenAPI specification:Download

Synth is an API to provision fully managed synthetic data environments.

List existing models

Synth data models consist of two parts: a model manifest and a model blob. The model manifest is a general human-readable specification of the data to be synthesized. The model blob is the serialized result of training a model manifest against real data. The model blob format depends on the underlying data synthesization technology (SDV, VAE, etc) and is generally managed by the Synth platform (altough the training always happens locally for privacy).

Responses

200

OK

get/models

Synth v1alpha1

https://getsynth.com/api/v1alpha1/models

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "resources":
    [
    ]
}

Create a new model

Request Body schema: application/json
manifest
object (ModelManifest)

An opaque data model specification. See manifest.schema.json for the JSON schema of model manifests. They are typically generated by the Synth client from data sources.

Responses

200

OK

post/models

Synth v1alpha1

https://getsynth.com/api/v1alpha1/models

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "manifest":
    {
    }
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "modelId": "c8a9259b1718407fadaaff738c5d0dc6"
}

Retrieve metadata of a model

Responses

200

OK

get/models/{modelId}

Synth v1alpha1

https://getsynth.com/api/v1alpha1/models/{modelId}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "metadata":
    {
    }
}

Update a model blob

Request Body schema: application/json
blob
string <bytes>

The packed model blob (base64 encoded)

Responses

200

OK

put/models/{modelId}

Synth v1alpha1

https://getsynth.com/api/v1alpha1/models/{modelId}

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "blob": "aGVsbG8sIGhvdyBjdXJpb3..."
}

Delete a model resource

Warning: this will remove all data associated with this model (the manifest, the model blob, the model's history and all the attached metadata).

Responses

200

OK

delete/models/{modelId}

Synth v1alpha1

https://getsynth.com/api/v1alpha1/models/{modelId}

Retrieve a model's manifest

Responses

200

OK

get/models/{modelId}/manifest

Synth v1alpha1

https://getsynth.com/api/v1alpha1/models/{modelId}/manifest

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "manifest":
    {
    }
}

Update a model's manifest

Note: updating a model's data manifest (e.g adding or removing a column or changing a semantic data type) might require retraining the model's blob on the data.

Request Body schema: application/json
manifest
object (ModelManifest)

An opaque data model specification. See manifest.schema.json for the JSON schema of model manifests. They are typically generated by the Synth client from data sources.

Responses

200

OK

put/models/{modelId}/manifest

Synth v1alpha1

https://getsynth.com/api/v1alpha1/models/{modelId}/manifest

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "manifest":
    {
    }
}

Get a sample of synthetic data

query Parameters
size
integer >= 0
Default: 1000

The desired size of the requested sample. For models of SQL/relational data, this is the number of rows that will be sampled from each table in the request.

filter
Array of strings
Example: filter=customers

A filter to put on the data generated from this model. For models of SQL/relational data, this is a collection of table names. Tables specified in this filter must be defined in the model specification. If not specified, all tables specified in the model will be sampled.

Responses

200

OK

get/models/{modelId}/data

Synth v1alpha1

https://getsynth.com/api/v1alpha1/models/{modelId}/data

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "sample":
    {
    }
}

Submit a new (synchronous) job on this model

Synth will use the supplied connectionString to establish a connection to the desired DB and inject it with a sample of synthetic data from the specified model. The size and filter parameters are the same as in GetModelSample. Note: should only be used on empty infrastructure. It may otherwise fail as Synth will refuse to overwrite existing data.

Request Body schema: application/json
connectionString
string
size
integer
filter
Array of strings

Responses

200

Job has completed successfully

post/models/{modelId}/jobs

Synth v1alpha1

https://getsynth.com/api/v1alpha1/models/{modelId}/jobs

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "connectionString": "string",
  • "size": 0,
  • "filter":
    [
    ]
}

List all active instances

Responses

200
get/instances

Synth v1alpha1

https://getsynth.com/api/v1alpha1/instances

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "resources":
    [
    ]
}

Create a new instance from a model

Will provision a new instance of a specified database system (and version, if desired) and populate it with data sampled from the given modelId.

Request Body schema: application/json
databaseSystem
string (DatabaseSystem)
Enum: "mssql" "postgresql" "mysql"
databaseVersion
string

Database system's version to be deployed

databaseName
string
Default: "synth"

Name of the synthesized database (or schema)

modelId
string
size
integer
filter
Array of strings

Responses

200

The metadata of the newly created instance.

post/instances

Synth v1alpha1

https://getsynth.com/api/v1alpha1/instances

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "databaseSystem": "mssql",
  • "databaseVersion": "12.3",
  • "databaseName": "synth",
  • "modelId": "string",
  • "size": 0,
  • "filter":
    [
    ]
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "instanceId": "string",
  • "databaseSystem": "mssql",
  • "databaseVersion": "12.3",
  • "databaseName": "synth",
  • "address": "string",
  • "port": 1,
  • "username": "string",
  • "password": "string",
  • "createdOn": "2020-08-11T16:27:20Z",
  • "expiresOn": "2020-08-11T16:27:20Z",
  • "state": "string"
}

Get the metadata of an active instance

Responses

200

OK

get/instances/{instance_id}

Synth v1alpha1

https://getsynth.com/api/v1alpha1/instances/{instance_id}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "metadata":
    {
    }
}

Delete an instance

Responses

200

OK

delete/instances/{instance_id}

Synth v1alpha1

https://getsynth.com/api/v1alpha1/instances/{instance_id}