Service record

StableStudio

https://stablestudio.dev/
activeaimedia

Pay-per-generation AI image and video creation — Nano Banana, GPT Image, Grok, Flux, Sora, Veo, Seedance, and Wan.

Implementation fingerprint
custom 35% confidence
Fingerprint evidence
valid 402 Payment challenge observed without implementation-specific marker
First seen
Aug 25, 2026, 6:43 PM UTC
Last seen
Oct 9, 2026, 6:20 PM UTC
Origin
https://stablestudio.dev
Tags
imagevideogenerationnano-bananagpt-imagegrokfluxsoraveoseedancewan

Payment surface

38 MPP endpoints

This count includes endpoints established by catalog, OpenAPI, or valid runtime 402 evidence. It does not count every URL the harmless scanner attempted.

This bounded detail view shows 25 endpoints. Continue with the next API page or the endpoint index.

JSON record →
POST
https://stablestudio.dev/api/generate/arrow-1.1-max/vectorize
Convert an image to SVG with Image to SVG Max. Provide any public image URL, then poll jobId for the SVG result. Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is complete or failed.
Status: not probedTLS: not-testedRedirects: unknownChallenge: not observedLast probe: unknown time
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
POST
https://stablestudio.dev/api/generate/arrow-1.1/vectorize
Convert an image to SVG with Image to SVG. Provide any public image URL, then poll jobId for the SVG result. Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is complete or failed.
Status: not probedTLS: not-testedRedirects: unknownChallenge: not observedLast probe: unknown time
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
POST
https://stablestudio.dev/api/generate/flux-2-max/edit
edit with Flux 2 Max Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is complete or failed.
Status: not probedTLS: not-testedRedirects: unknownChallenge: not observedLast probe: unknown time
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
POST
https://stablestudio.dev/api/generate/flux-2-max/generate
generate with Flux 2 Max Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is complete or failed.
Status: not probedTLS: not-testedRedirects: unknownChallenge: not observedLast probe: unknown time
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
POST
https://stablestudio.dev/api/generate/flux-2-pro/edit
Flux 2 Pro image editing
Status: not probedTLS: not-testedRedirects: unknownChallenge: not observedLast probe: unknown time
tempochargecatalogamount unknown 0x20c000000000000000000000b9537d11c60e8b50
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · dynamic
true
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
POST
https://stablestudio.dev/api/generate/flux-2-pro/generate
Flux 2 Pro image generation
Status: not probedTLS: not-testedRedirects: unknownChallenge: not observedLast probe: unknown time
tempochargecatalogamount unknown 0x20c000000000000000000000b9537d11c60e8b50
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · dynamic
true
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
POST
https://stablestudio.dev/api/generate/gpt-image-1.5/edit
GPT Image 1.5 editing
Status: not probedTLS: not-testedRedirects: unknownChallenge: not observedLast probe: unknown time
tempochargecatalogamount unknown 0x20c000000000000000000000b9537d11c60e8b50
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · dynamic
true
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
POST
https://stablestudio.dev/api/generate/gpt-image-1.5/generate
GPT Image 1.5 generation
Status: not probedTLS: not-testedRedirects: unknownChallenge: not observedLast probe: unknown time
tempochargecatalogamount unknown 0x20c000000000000000000000b9537d11c60e8b50
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · dynamic
true
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
POST
https://stablestudio.dev/api/generate/gpt-image-1/edit
GPT Image 1 editing
Status: not probedTLS: not-testedRedirects: unknownChallenge: not observedLast probe: unknown time
tempochargecatalogamount unknown 0x20c000000000000000000000b9537d11c60e8b50
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · dynamic
true
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
POST
https://stablestudio.dev/api/generate/gpt-image-1/generate
GPT Image 1 generation
Status: not probedTLS: not-testedRedirects: unknownChallenge: not observedLast probe: unknown time
tempochargecatalogamount unknown 0x20c000000000000000000000b9537d11c60e8b50
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · dynamic
true
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
POST
https://stablestudio.dev/api/generate/gpt-image-2.5-flare/edit
edit with GPT Image 2.5 Flare Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is complete or failed.
Status: not probedTLS: not-testedRedirects: unknownChallenge: not observedLast probe: unknown time
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
POST
https://stablestudio.dev/api/generate/gpt-image-2.5-flare/generate
generate with GPT Image 2.5 Flare Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is complete or failed.
Status: not probedTLS: not-testedRedirects: unknownChallenge: not observedLast probe: unknown time
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
POST
https://stablestudio.dev/api/generate/gpt-image-2.5-sunburst/edit
edit with GPT Image 2.5 Sunburst Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is complete or failed.
Status: not probedTLS: not-testedRedirects: unknownChallenge: not observedLast probe: unknown time
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
POST
https://stablestudio.dev/api/generate/gpt-image-2.5-sunburst/generate
generate with GPT Image 2.5 Sunburst Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is complete or failed.
Status: not probedTLS: not-testedRedirects: unknownChallenge: not observedLast probe: unknown time
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
POST
https://stablestudio.dev/api/generate/gpt-image-2/edit
edit with GPT Image 2. Best default image model; can take minutes. Poll jobId, do not resubmit pending jobs. Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is complete or failed.
Status: not probedTLS: not-testedRedirects: unknownChallenge: not observedLast probe: unknown time
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
POST
https://stablestudio.dev/api/generate/gpt-image-2/generate
generate with GPT Image 2. Best default image model; can take minutes. Poll jobId, do not resubmit pending jobs. Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is complete or failed.
Status: not probedTLS: not-testedRedirects: unknownChallenge: not observedLast probe: unknown time
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
POST
https://stablestudio.dev/api/generate/grok-video/generate
Grok video generation
Status: not probedTLS: not-testedRedirects: unknownChallenge: not observedLast probe: unknown time
tempochargecatalogamount unknown 0x20c000000000000000000000b9537d11c60e8b50
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · dynamic
true
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
POST
https://stablestudio.dev/api/generate/grok/edit
Grok image editing
Status: not probedTLS: not-testedRedirects: unknownChallenge: not observedLast probe: unknown time
tempochargecatalog22000 0x20c000000000000000000000b9537d11c60e8b50
Recipient
not observed
Chain
not observed
Unit type
not observed
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
POST
https://stablestudio.dev/api/generate/grok/generate
Grok image generation
Status: not probedTLS: not-testedRedirects: unknownChallenge: not observedLast probe: unknown time
tempochargecatalog70000 0x20c000000000000000000000b9537d11c60e8b50
Recipient
not observed
Chain
not observed
Unit type
not observed
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
POST
https://stablestudio.dev/api/generate/nano-banana-pro/edit
Nano Banana Pro image editing (up to 4K)
Status: not probedTLS: not-testedRedirects: unknownChallenge: not observedLast probe: unknown time
tempochargecatalogamount unknown 0x20c000000000000000000000b9537d11c60e8b50
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · dynamic
true
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
POST
https://stablestudio.dev/api/generate/nano-banana-pro/generate
Nano Banana Pro image generation (up to 4K)
Status: not probedTLS: not-testedRedirects: unknownChallenge: not observedLast probe: unknown time
tempochargecatalogamount unknown 0x20c000000000000000000000b9537d11c60e8b50
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · dynamic
true
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
POST
https://stablestudio.dev/api/generate/nano-banana/edit
Nano Banana image editing
Status: not probedTLS: not-testedRedirects: unknownChallenge: not observedLast probe: unknown time
tempochargecatalog39000 0x20c000000000000000000000b9537d11c60e8b50
Recipient
not observed
Chain
not observed
Unit type
not observed
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
POST
https://stablestudio.dev/api/generate/nano-banana/generate
Nano Banana image generation
Status: not probedTLS: not-testedRedirects: unknownChallenge: not observedLast probe: unknown time
tempochargecatalog39000 0x20c000000000000000000000b9537d11c60e8b50
Recipient
not observed
Chain
not observed
Unit type
not observed
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
10.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
POST
https://stablestudio.dev/api/generate/seedance-fast/i2v
Seedance Fast image-to-video
Status: not probedTLS: not-testedRedirects: unknownChallenge: not observedLast probe: unknown time
tempochargecatalogamount unknown 0x20c000000000000000000000b9537d11c60e8b50
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · dynamic
true
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
20.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
20.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
POST
https://stablestudio.dev/api/generate/seedance-fast/t2v
Seedance Fast text-to-video
Status: not probedTLS: not-testedRedirects: unknownChallenge: not observedLast probe: unknown time
tempochargecatalogamount unknown 0x20c000000000000000000000b9537d11c60e8b50
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · dynamic
true
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
20.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.
unknownchargeopenapiamount unknown USD
Recipient
not observed
Chain
not observed
Unit type
not observed
Session · mode
dynamic
Session · min
0
Session · max
20.00
Economic exposure: unknown — the public observation does not contain enough session or authorization inputs to calculate it.

Probe coverage

19 harmless observations

These are bounded unauthenticated requests and scanner-policy stops. A response without MPP evidence remains a discovery result, not a security failure.

GET https://stablestudio.dev/.well-known/api-catalog

HTTP 404

33,344 response bytes · 0 redirects · HTTPS fetch completed with platform certificate validation

Oct 9, 2026, 6:20 PM UTC

GET https://stablestudio.dev/openapi.json

HTTP 200

90,497 response bytes · 0 redirects · HTTPS fetch completed with platform certificate validation

Oct 9, 2026, 12:22 PM UTC

GET https://stablestudio.dev/api/jobs

HTTP 402

1,482 response bytes · 0 redirects · HTTPS fetch completed with platform certificate validation

Oct 9, 2026, 6:23 AM UTC

GET https://stablestudio.dev/api/jobs/:jobId

HTTP 402

1,478 response bytes · 0 redirects · HTTPS fetch completed with platform certificate validation

Oct 9, 2026, 6:20 AM UTC

GET https://stablestudio.dev/

HTTP 200

35,185 response bytes · 0 redirects · HTTPS fetch completed with platform certificate validation

Oct 1, 2026, 6:22 AM UTC

GET https://stablestudio.dev/.well-known/api-catalog

HTTP 404

33,344 response bytes · 0 redirects · HTTPS fetch completed with platform certificate validation

Sep 30, 2026, 6:21 PM UTC

GET https://stablestudio.dev/openapi.json

HTTP 200

90,497 response bytes · 0 redirects · HTTPS fetch completed with platform certificate validation

Sep 30, 2026, 6:19 PM UTC

GET https://stablestudio.dev/api/jobs

HTTP 402

1,482 response bytes · 0 redirects · HTTPS fetch completed with platform certificate validation

Sep 30, 2026, 6:24 AM UTC

GET https://stablestudio.dev/api/jobs/:jobId

HTTP 402

1,478 response bytes · 0 redirects · HTTPS fetch completed with platform certificate validation

Sep 30, 2026, 12:21 AM UTC

GET https://stablestudio.dev/

HTTP 200

35,185 response bytes · 0 redirects · HTTPS fetch completed with platform certificate validation

Sep 22, 2026, 12:22 AM UTC

GET https://stablestudio.dev/.well-known/api-catalog

HTTP 404

33,344 response bytes · 0 redirects · HTTPS fetch completed with platform certificate validation

Sep 21, 2026, 12:24 PM UTC

GET https://stablestudio.dev/openapi.json

HTTP 200

90,497 response bytes · 0 redirects · HTTPS fetch completed with platform certificate validation

Sep 21, 2026, 12:23 PM UTC

GET https://stablestudio.dev/api/jobs

HTTP 402

1,482 response bytes · 0 redirects · HTTPS fetch completed with platform certificate validation

Sep 21, 2026, 12:25 AM UTC

GET https://stablestudio.dev/api/jobs/:jobId

HTTP 402

1,478 response bytes · 0 redirects · HTTPS fetch completed with platform certificate validation

Sep 20, 2026, 6:21 PM UTC

GET https://stablestudio.dev/

HTTP 200

35,185 response bytes · 0 redirects · HTTPS fetch completed with platform certificate validation

Sep 12, 2026, 6:26 PM UTC

GET https://stablestudio.dev/.well-known/api-catalog

HTTP 404

33,344 response bytes · 0 redirects · HTTPS fetch completed with platform certificate validation

Sep 12, 2026, 12:22 PM UTC

GET https://stablestudio.dev/openapi.json

HTTP 200

90,497 response bytes · 0 redirects · HTTPS fetch completed with platform certificate validation

Sep 12, 2026, 12:21 PM UTC

GET https://stablestudio.dev/api/jobs

HTTP 402

1,482 response bytes · 0 redirects · HTTPS fetch completed with platform certificate validation

Sep 12, 2026, 12:24 AM UTC

GET https://stablestudio.dev/api/jobs/:jobId

HTTP 402

1,478 response bytes · 0 redirects · HTTPS fetch completed with platform certificate validation

Sep 11, 2026, 6:22 PM UTC

Evidence model

Security properties

Every result names its evidence state. Unknown and not tested never mean secure.

api_catalog_parse

Observed

No RFC 9727 API catalog was available at this URL (HTTP 404); prior advertised links were withdrawn

Basis: RFC 9727 discovery response · Oct 9, 2026, 6:20 PM UTC

authorization_delivery_settlement

Not tested

Requires paid or state-changing behavior outside scanner scope

Basis: Tempo Aug 24 research class · Prior art: https://github.com/wevm/mppx/pull/510#discussion_r3377899233 · Oct 9, 2026, 6:20 PM UTC

bounded_response

Tested — pass

33344 bytes within scanner limit

Basis: harmless scanner · Oct 9, 2026, 6:20 PM UTC

challenge_parse

Unknown

No MPP Payment challenge observed

Basis: unauthenticated HTTP response · Oct 9, 2026, 6:20 PM UTC

channel_lifecycle_binding

Not tested

Channel and settlement lifecycle require credentials or payments

Basis: public economic-security prior art · Oct 9, 2026, 6:20 PM UTC

concurrency_single_winner

Not tested

Concurrency and paid state changes are prohibited

Basis: public economic-security prior art · Oct 9, 2026, 6:20 PM UTC

credential_replay

Not tested

Scanner never sends credentials or payments

Basis: methodology · Prior art: https://github.com/advisories/GHSA-fxc9-7j2w-vx54 · Oct 9, 2026, 6:20 PM UTC

economic_exposure_metadata

Unknown

No current Payment challenge exposes session or authorization inputs

Basis: observable challenge values only · Oct 9, 2026, 6:20 PM UTC

fee_payer_cosigner_binding

Not tested

Signature and fee-payer relationships are not observable unauthenticated

Basis: public economic-security prior art · Oct 9, 2026, 6:20 PM UTC

https_transport

Tested — pass

HTTPS fetch completed with platform certificate validation

Basis: platform TLS validation · Oct 9, 2026, 6:20 PM UTC

method_fallback_policy

Not tested

Scanner does not select, downgrade, or execute payment methods

Basis: public economic-security prior art · Oct 9, 2026, 6:20 PM UTC

price_debit_consistency

Not tested

Requires a completed paid interaction outside scanner scope

Basis: public economic-security prior art · Oct 9, 2026, 6:20 PM UTC

redirect_policy

Tested — pass

0 redirects; every hop passed URL and DNS validation

Basis: harmless scanner · Oct 9, 2026, 6:20 PM UTC

replay_idempotency_scope

Not tested

Scanner never replays signed credentials

Basis: public advisory and protocol prior art · Prior art: https://github.com/advisories/GHSA-fxc9-7j2w-vx54 · Oct 9, 2026, 6:20 PM UTC

ssrf_target_validation

Tested — pass

1 hop(s) resolved twice to stable public addresses

Basis: scanner URL, DNS and redirect policy · Oct 9, 2026, 6:20 PM UTC

openapi_parse

Tested — pass

64 payment offer(s) accepted

Basis: harmless discovery response · Oct 9, 2026, 12:22 PM UTC

authorization_delivery_settlement

Not tested

Requires paid or state-changing behavior outside scanner scope

Basis: Tempo Aug 24 research class · Prior art: https://github.com/wevm/mppx/pull/510#discussion_r3377899233 · Oct 9, 2026, 6:23 AM UTC

bounded_response

Tested — pass

1482 bytes within scanner limit

Basis: harmless scanner · Oct 9, 2026, 6:23 AM UTC

challenge_parse

Tested — pass

1 Payment challenge(s) observed on HTTP 402; all required fields decoded and validated

Basis: unauthenticated HTTP response · Oct 9, 2026, 6:23 AM UTC

channel_lifecycle_binding

Not tested

Channel and settlement lifecycle require credentials or payments

Basis: public economic-security prior art · Oct 9, 2026, 6:23 AM UTC

concurrency_single_winner

Not tested

Concurrency and paid state changes are prohibited

Basis: public economic-security prior art · Oct 9, 2026, 6:23 AM UTC

credential_replay

Not tested

Scanner never sends credentials or payments

Basis: methodology · Prior art: https://github.com/advisories/GHSA-fxc9-7j2w-vx54 · Oct 9, 2026, 6:23 AM UTC

economic_exposure_metadata

Unknown

[{"method":"tempo","intent":"charge","deposit":null,"authorizationWindow":null,"depositWindowRatio":null,"observableAuthorizationExposure":null,"note":"unknown: session authorization inputs not observable"}]

Basis: observable challenge values only · Oct 9, 2026, 6:23 AM UTC

fee_payer_cosigner_binding

Not tested

Signature and fee-payer relationships are not observable unauthenticated

Basis: public economic-security prior art · Oct 9, 2026, 6:23 AM UTC

https_transport

Tested — pass

HTTPS fetch completed with platform certificate validation

Basis: platform TLS validation · Oct 9, 2026, 6:23 AM UTC

method_fallback_policy

Not tested

Scanner does not select, downgrade, or execute payment methods

Basis: public economic-security prior art · Oct 9, 2026, 6:23 AM UTC

price_debit_consistency

Not tested

Requires a completed paid interaction outside scanner scope

Basis: public economic-security prior art · Oct 9, 2026, 6:23 AM UTC

redirect_policy

Tested — pass

0 redirects; every hop passed URL and DNS validation

Basis: harmless scanner · Oct 9, 2026, 6:23 AM UTC

replay_idempotency_scope

Not tested

Scanner never replays signed credentials

Basis: public advisory and protocol prior art · Prior art: https://github.com/advisories/GHSA-fxc9-7j2w-vx54 · Oct 9, 2026, 6:23 AM UTC

ssrf_target_validation

Tested — pass

1 hop(s) resolved twice to stable public addresses

Basis: scanner URL, DNS and redirect policy · Oct 9, 2026, 6:23 AM UTC

authorization_delivery_settlement

Not tested

Requires paid or state-changing behavior outside scanner scope

Basis: Tempo Aug 24 research class · Prior art: https://github.com/wevm/mppx/pull/510#discussion_r3377899233 · Oct 9, 2026, 6:20 AM UTC

bounded_response

Tested — pass

1478 bytes within scanner limit

Basis: harmless scanner · Oct 9, 2026, 6:20 AM UTC

challenge_parse

Tested — pass

1 Payment challenge(s) observed on HTTP 402; all required fields decoded and validated

Basis: unauthenticated HTTP response · Oct 9, 2026, 6:20 AM UTC

channel_lifecycle_binding

Not tested

Channel and settlement lifecycle require credentials or payments

Basis: public economic-security prior art · Oct 9, 2026, 6:20 AM UTC

concurrency_single_winner

Not tested

Concurrency and paid state changes are prohibited

Basis: public economic-security prior art · Oct 9, 2026, 6:20 AM UTC

credential_replay

Not tested

Scanner never sends credentials or payments

Basis: methodology · Prior art: https://github.com/advisories/GHSA-fxc9-7j2w-vx54 · Oct 9, 2026, 6:20 AM UTC

economic_exposure_metadata

Unknown

[{"method":"tempo","intent":"charge","deposit":null,"authorizationWindow":null,"depositWindowRatio":null,"observableAuthorizationExposure":null,"note":"unknown: session authorization inputs not observable"}]

Basis: observable challenge values only · Oct 9, 2026, 6:20 AM UTC

fee_payer_cosigner_binding

Not tested

Signature and fee-payer relationships are not observable unauthenticated

Basis: public economic-security prior art · Oct 9, 2026, 6:20 AM UTC

https_transport

Tested — pass

HTTPS fetch completed with platform certificate validation

Basis: platform TLS validation · Oct 9, 2026, 6:20 AM UTC

method_fallback_policy

Not tested

Scanner does not select, downgrade, or execute payment methods

Basis: public economic-security prior art · Oct 9, 2026, 6:20 AM UTC

price_debit_consistency

Not tested

Requires a completed paid interaction outside scanner scope

Basis: public economic-security prior art · Oct 9, 2026, 6:20 AM UTC

redirect_policy

Tested — pass

0 redirects; every hop passed URL and DNS validation

Basis: harmless scanner · Oct 9, 2026, 6:20 AM UTC

replay_idempotency_scope

Not tested

Scanner never replays signed credentials

Basis: public advisory and protocol prior art · Prior art: https://github.com/advisories/GHSA-fxc9-7j2w-vx54 · Oct 9, 2026, 6:20 AM UTC

ssrf_target_validation

Tested — pass

1 hop(s) resolved twice to stable public addresses

Basis: scanner URL, DNS and redirect policy · Oct 9, 2026, 6:20 AM UTC

authorization_delivery_settlement

Not tested

Requires paid or state-changing behavior outside scanner scope

Basis: Tempo Aug 24 research class · Prior art: https://github.com/wevm/mppx/pull/510#discussion_r3377899233 · Oct 1, 2026, 6:22 AM UTC

bounded_response

Tested — pass

35185 bytes within scanner limit

Basis: harmless scanner · Oct 1, 2026, 6:22 AM UTC

challenge_parse

Unknown

No MPP Payment challenge observed

Basis: unauthenticated HTTP response · Oct 1, 2026, 6:22 AM UTC

channel_lifecycle_binding

Not tested

Channel and settlement lifecycle require credentials or payments

Basis: public economic-security prior art · Oct 1, 2026, 6:22 AM UTC

concurrency_single_winner

Not tested

Concurrency and paid state changes are prohibited

Basis: public economic-security prior art · Oct 1, 2026, 6:22 AM UTC

credential_replay

Not tested

Scanner never sends credentials or payments

Basis: methodology · Prior art: https://github.com/advisories/GHSA-fxc9-7j2w-vx54 · Oct 1, 2026, 6:22 AM UTC

economic_exposure_metadata

Unknown

No current Payment challenge exposes session or authorization inputs

Basis: observable challenge values only · Oct 1, 2026, 6:22 AM UTC

fee_payer_cosigner_binding

Not tested

Signature and fee-payer relationships are not observable unauthenticated

Basis: public economic-security prior art · Oct 1, 2026, 6:22 AM UTC

https_transport

Tested — pass

HTTPS fetch completed with platform certificate validation

Basis: platform TLS validation · Oct 1, 2026, 6:22 AM UTC

method_fallback_policy

Not tested

Scanner does not select, downgrade, or execute payment methods

Basis: public economic-security prior art · Oct 1, 2026, 6:22 AM UTC

price_debit_consistency

Not tested

Requires a completed paid interaction outside scanner scope

Basis: public economic-security prior art · Oct 1, 2026, 6:22 AM UTC

redirect_policy

Tested — pass

0 redirects; every hop passed URL and DNS validation

Basis: harmless scanner · Oct 1, 2026, 6:22 AM UTC

replay_idempotency_scope

Not tested

Scanner never replays signed credentials

Basis: public advisory and protocol prior art · Prior art: https://github.com/advisories/GHSA-fxc9-7j2w-vx54 · Oct 1, 2026, 6:22 AM UTC

ssrf_target_validation

Tested — pass

1 hop(s) resolved twice to stable public addresses

Basis: scanner URL, DNS and redirect policy · Oct 1, 2026, 6:22 AM UTC

History

Service changes

Showing the latest 50 of 518 changes. Continue in the changes API view.

— security-property-changed

security:bounded_response: {"state":"tested-pass","evidence":"90497 bytes within scanner limit","basis":"harmless scanner"} → {"state":"tested-pass","evidence":"33344 bytes within scanner limit","basis":"harmless scanner"}

Evidence: Repeated harmless observation changed the modeled property

— endpoint-updated

description: generate with Veo 3.1 Fast Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is co… → Veo 3.1 Fast video generation

Evidence: clock-guarded source update

— endpoint-updated

description: generate with Veo 3.1 Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is complet… → Veo 3.1 video generation

Evidence: clock-guarded source update

— endpoint-updated

description: i2v with Wan 2.6 Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is complete or … → Wan 2.6 image-to-video

Evidence: clock-guarded source update

— endpoint-updated

description: t2v with Seedance 2 Fast Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is comp… → Seedance Fast text-to-video

Evidence: clock-guarded source update

— endpoint-updated

description: i2v with Seedance 2 Fast Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is comp… → Seedance Fast image-to-video

Evidence: clock-guarded source update

— endpoint-updated

description: edit with GPT Image 1.5 Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is compl… → GPT Image 1.5 editing

Evidence: clock-guarded source update

— endpoint-updated

description: i2v with Seedance 2 Pro Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is compl… → Seedance image-to-video

Evidence: clock-guarded source update

— endpoint-updated

description: t2v with Wan 2.6 Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is complete or … → Wan 2.6 text-to-video

Evidence: clock-guarded source update

— endpoint-updated

description: generate with GPT Image 1.5 Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is c… → GPT Image 1.5 generation

Evidence: clock-guarded source update

— endpoint-updated

description: generate with Nano Banana Pro Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is… → Nano Banana Pro image generation (up to 4K)

Evidence: clock-guarded source update

— endpoint-updated

description: generate with Nano Banana Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is com… → Nano Banana image generation

Evidence: clock-guarded source update

— endpoint-updated

description: generate with Sora 2 Pro Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is comp… → Sora 2 Pro video generation

Evidence: clock-guarded source update

— endpoint-updated

description: edit with Flux 2 Pro Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is complete… → Flux 2 Pro image editing

Evidence: clock-guarded source update

— endpoint-updated

description: edit with Nano Banana Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is complet… → Nano Banana image editing

Evidence: clock-guarded source update

— endpoint-updated

description: generate with Grok Video Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is comp… → Grok video generation

Evidence: clock-guarded source update

— endpoint-updated

description: generate with Sora 2 Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is complete… → Sora 2 video generation

Evidence: clock-guarded source update

— endpoint-updated

description: edit with Grok Image Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is complete… → Grok image editing

Evidence: clock-guarded source update

— endpoint-updated

description: Get a client token for direct upload to Vercel Blob → Upload image for editing or image-to-video

Evidence: clock-guarded source update

— endpoint-updated

description: generate with Flux 2 Pro Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is comp… → Flux 2 Pro image generation

Evidence: clock-guarded source update

— endpoint-updated

description: edit with Nano Banana Pro Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is com… → Nano Banana Pro image editing (up to 4K)

Evidence: clock-guarded source update

— endpoint-updated

description: t2v with Seedance 2 Pro Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is compl… → Seedance text-to-video

Evidence: clock-guarded source update

— endpoint-updated

description: generate with Grok Image Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is comp… → Grok image generation

Evidence: clock-guarded source update

— endpoint-updated

description: Nano Banana image editing → edit with Nano Banana Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is complet…

Evidence: clock-guarded source update

— endpoint-updated

description: Seedance Fast text-to-video → t2v with Seedance 2 Fast Returns an async job with a pollUrl. Poll the returned pollUrl with SIWX until the job is comp…

Evidence: clock-guarded source update