import { writeFile } from "node:fs/promises";
const response = await fetch("https://makeseamless.com/v1/jobs/job_2432c1827f32450f800694e552e9915c/visible_mask", {
method: "GET",
});
if (!response.ok) throw new Error(await response.text());
await writeFile("visible_mask.png", Buffer.from(await response.arrayBuffer()));
<?php
$ch = curl_init("https://makeseamless.com/v1/jobs/job_2432c1827f32450f800694e552e9915c/visible_mask");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
curl_close($ch);
if ($status !== 200) {
exit($response);
}
file_put_contents("visible_mask.png", $response);
import requests
response = requests.get(
"https://makeseamless.com/v1/jobs/job_2432c1827f32450f800694e552e9915c/visible_mask",
)
response.raise_for_status()
with open("visible_mask.png", "wb") as out:
out.write(response.content)
require "net/http"
require "uri"
uri = URI("https://makeseamless.com/v1/jobs/job_2432c1827f32450f800694e552e9915c/visible_mask")
request = Net::HTTP::Get.new(uri)
response = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
http.request(request)
end
raise response.body unless response.is_a?(Net::HTTPSuccess)
File.binwrite("visible_mask.png", response.body)
package main
import (
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://makeseamless.com/v1/jobs/job_2432c1827f32450f800694e552e9915c/visible_mask", nil)
if err != nil {
panic(err)
}
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
if res.StatusCode != http.StatusOK {
panic(string(body))
}
if err := os.WriteFile("visible_mask.png", body, 0o644); err != nil {
panic(err)
}
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.file.Files;
import java.nio.file.Path;
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://makeseamless.com/v1/jobs/job_2432c1827f32450f800694e552e9915c/visible_mask"))
.GET()
.build();
HttpResponse<byte[]> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofByteArray());
if (response.statusCode() != 200) {
throw new RuntimeException(new String(response.body()));
}
Files.write(Path.of("visible_mask.png"), response.body());
using System.Net.Http;
var request = new HttpRequestMessage(HttpMethod.Get, "https://makeseamless.com/v1/jobs/job_2432c1827f32450f800694e552e9915c/visible_mask");
var client = new HttpClient();
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
File.WriteAllBytes("visible_mask.png", await response.Content.ReadAsByteArrayAsync());
curl -X GET "https://makeseamless.com/v1/jobs/job_2432c1827f32450f800694e552e9915c/visible_mask" \
-o visible_mask.png
"<string>"{
"error": {
"code": "validation_error",
"message": "<string>",
"retryable": true,
"details": {}
}
}{
"error": {
"code": "validation_error",
"message": "<string>",
"retryable": true,
"details": {}
}
}Download the mask of the area a fix visibly changed
A grayscale PNG with the uploaded image’s exact width and height: white (255) where the
result looks different from the upload and black (0) where it looks the same. It lies inside
the changed area. Its white share is result.visible_changed_share. A result without
visible_changed_mask_url has none and answers 404.
GET
/
v1
/
jobs
/
{job_id}
/
visible_mask
import { writeFile } from "node:fs/promises";
const response = await fetch("https://makeseamless.com/v1/jobs/job_2432c1827f32450f800694e552e9915c/visible_mask", {
method: "GET",
});
if (!response.ok) throw new Error(await response.text());
await writeFile("visible_mask.png", Buffer.from(await response.arrayBuffer()));
<?php
$ch = curl_init("https://makeseamless.com/v1/jobs/job_2432c1827f32450f800694e552e9915c/visible_mask");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
curl_close($ch);
if ($status !== 200) {
exit($response);
}
file_put_contents("visible_mask.png", $response);
import requests
response = requests.get(
"https://makeseamless.com/v1/jobs/job_2432c1827f32450f800694e552e9915c/visible_mask",
)
response.raise_for_status()
with open("visible_mask.png", "wb") as out:
out.write(response.content)
require "net/http"
require "uri"
uri = URI("https://makeseamless.com/v1/jobs/job_2432c1827f32450f800694e552e9915c/visible_mask")
request = Net::HTTP::Get.new(uri)
response = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
http.request(request)
end
raise response.body unless response.is_a?(Net::HTTPSuccess)
File.binwrite("visible_mask.png", response.body)
package main
import (
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://makeseamless.com/v1/jobs/job_2432c1827f32450f800694e552e9915c/visible_mask", nil)
if err != nil {
panic(err)
}
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
if res.StatusCode != http.StatusOK {
panic(string(body))
}
if err := os.WriteFile("visible_mask.png", body, 0o644); err != nil {
panic(err)
}
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.file.Files;
import java.nio.file.Path;
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://makeseamless.com/v1/jobs/job_2432c1827f32450f800694e552e9915c/visible_mask"))
.GET()
.build();
HttpResponse<byte[]> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofByteArray());
if (response.statusCode() != 200) {
throw new RuntimeException(new String(response.body()));
}
Files.write(Path.of("visible_mask.png"), response.body());
using System.Net.Http;
var request = new HttpRequestMessage(HttpMethod.Get, "https://makeseamless.com/v1/jobs/job_2432c1827f32450f800694e552e9915c/visible_mask");
var client = new HttpClient();
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
File.WriteAllBytes("visible_mask.png", await response.Content.ReadAsByteArrayAsync());
curl -X GET "https://makeseamless.com/v1/jobs/job_2432c1827f32450f800694e552e9915c/visible_mask" \
-o visible_mask.png
"<string>"{
"error": {
"code": "validation_error",
"message": "<string>",
"retryable": true,
"details": {}
}
}{
"error": {
"code": "validation_error",
"message": "<string>",
"retryable": true,
"details": {}
}
}import { writeFile } from "node:fs/promises";
const response = await fetch("https://makeseamless.com/v1/jobs/job_2432c1827f32450f800694e552e9915c/visible_mask", {
method: "GET",
});
if (!response.ok) throw new Error(await response.text());
await writeFile("visible_mask.png", Buffer.from(await response.arrayBuffer()));
<?php
$ch = curl_init("https://makeseamless.com/v1/jobs/job_2432c1827f32450f800694e552e9915c/visible_mask");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
curl_close($ch);
if ($status !== 200) {
exit($response);
}
file_put_contents("visible_mask.png", $response);
import requests
response = requests.get(
"https://makeseamless.com/v1/jobs/job_2432c1827f32450f800694e552e9915c/visible_mask",
)
response.raise_for_status()
with open("visible_mask.png", "wb") as out:
out.write(response.content)
require "net/http"
require "uri"
uri = URI("https://makeseamless.com/v1/jobs/job_2432c1827f32450f800694e552e9915c/visible_mask")
request = Net::HTTP::Get.new(uri)
response = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
http.request(request)
end
raise response.body unless response.is_a?(Net::HTTPSuccess)
File.binwrite("visible_mask.png", response.body)
package main
import (
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest("GET", "https://makeseamless.com/v1/jobs/job_2432c1827f32450f800694e552e9915c/visible_mask", nil)
if err != nil {
panic(err)
}
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
if res.StatusCode != http.StatusOK {
panic(string(body))
}
if err := os.WriteFile("visible_mask.png", body, 0o644); err != nil {
panic(err)
}
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.file.Files;
import java.nio.file.Path;
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://makeseamless.com/v1/jobs/job_2432c1827f32450f800694e552e9915c/visible_mask"))
.GET()
.build();
HttpResponse<byte[]> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofByteArray());
if (response.statusCode() != 200) {
throw new RuntimeException(new String(response.body()));
}
Files.write(Path.of("visible_mask.png"), response.body());
using System.Net.Http;
var request = new HttpRequestMessage(HttpMethod.Get, "https://makeseamless.com/v1/jobs/job_2432c1827f32450f800694e552e9915c/visible_mask");
var client = new HttpClient();
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
File.WriteAllBytes("visible_mask.png", await response.Content.ReadAsByteArrayAsync());
curl -X GET "https://makeseamless.com/v1/jobs/job_2432c1827f32450f800694e552e9915c/visible_mask" \
-o visible_mask.png
Path Parameters
The job's id, from POST /v1/fix.
Pattern:
^job_[0-9a-f]{32}$Response
The visibly changed area.
The response is of type file.
⌘I