GET/api/buildssession
List your builds.
Response
{ builds: Build[] }POST/api/buildssession
Create a build.
Parameters
namereq- string · Build name
Response
{ id, name, createdAt }GET/api/builds/[id]open
One build with its parts. Public builds are readable by anyone; a private build returns 403 to everyone but its owner.
Response
{ id, name, parts: BuildPart[], isPublic }PUT/api/builds/[id]session
Update a build's name, description or visibility. Owner only.
DELETE/api/builds/[id]session
Delete a build. Owner only.
GET/api/tiktok/connectopen
Post to TikTok (beta): start connecting your own TikTok account. Redirects to TikTok's consent screen and back to the page you came from; signed out, it redirects to sign in instead.
DELETE/api/tiktok/connectsession
Forget your connected TikTok account.
GET/api/share/tiktoksession
What the TikTok share page needs for one of your builds: your connected TikTok, the audiences and settings TikTok offers you, the latest video for the build and a suggested caption.
Parameters
buildreq- string · Build id
Response
{ available, account, options, video, caption }POST/api/share/tiktoksession
Start drawing a video of one of your builds. Poll /api/share/tiktok/[id] for it.
Parameters
buildIdreq- string · Build id
GET/api/share/tiktok/[id]session
One build video's progress. Owner only.
Response
{ id, status, error }GET/api/share/tiktok/[id]/videosession
The rendered build video, for the preview before posting. Owner only.
POST/api/share/tiktok/[id]/postsession
Post a previewed build video to your own TikTok with the audience and settings you chose. A post with no privacy level is refused; nothing is chosen for you.
Parameters
privacyreq- string · One of the levels GET /api/share/tiktok offered
Response
{ ok, publishId }POST/api/builds/[id]/partssession
Add a part to a build.
Parameters
productIdreq- string · Product to add
DELETE/api/builds/[id]/partssession
Remove a part from a build.
Parameters
partIdreq- string · Build part id
GET/api/builds/[id]/alertsession
The build's total price alert, its current total and a suggested target. Owner only.
Response
{ alert, total, complete, suggested }POST/api/builds/[id]/alertsession
Set or change the alert on the build's total. Every part needs a current in-stock price, and the target must be under today's total.
Parameters
targetTotalreq- number · Total in pounds to alert at
DELETE/api/builds/[id]/alertsession
Remove the build's total alert.
GET/api/builds/[id]/check-compatsession
Compatibility verdict for the build as it stands.
Response
{ issues: { severity, message }[] }GET/api/builds/[id]/bottlenecksession
CPU/GPU bottleneck estimate for the build.
Response
{ verdict, cpuScore, gpuScore }GET/api/builds/[id]/suggestionssession
Parts that would improve the build most for the money: the upgrade advisor run on the build's processor, card, memory and supply, the limiting side first. Public builds need no session.
Response
{ ok, limit, why, options: [{ kind, cost, speed, notes, parts: [{ slot, productId, slug, name, imageUrl, price, retailer }] }] }GET/api/builds/[id]/compatiblesession
Products that fit a given slot on this build.
Parameters
slotreq- string · cpu | gpu | motherboard | ram | ssd | psu | case | cooler
q- string · Search term
limit- number · Results
Response
{ products: Product[] }GET/api/builds/[id]/commentsopen
Comments on a public build, oldest first (up to 200), each with its author and whether you may delete it. 404 for a private build.
Response
{ comments: [{ id, body, createdAt, byOwner, canDelete, author }], canPost, signedIn }POST/api/builds/[id]/commentssession
Comment on a public build. Plain text up to 2,000 characters; at most 5 comments in 10 minutes.
Parameters
bodyreq- string · The comment
DELETE/api/builds/[id]/commentssession
Delete a comment (?comment=<id>): its author, the build's owner, or a moderator.
Parameters
commentreq- string · Comment id (query)
POST/api/builds/[id]/votesession
Upvote a public build, or take your upvote back if you had given one. Not your own build (403); a private build is 404. At most 30 votes a minute. The count shows on /builds, whose Most upvoted row lists up to 8 public builds with at least one vote, and on the build page.
GET/api/builds/[id]/photossession
Photos of your finished build, each with its review status (pending, approved or rejected). Your own builds only.
Response
{ photos: [{ id, url, width, height, caption, status, createdAt }], max }POST/api/builds/[id]/photossession
Add a photo of your finished build (multipart form). JPEG, PNG or WebP up to 8 MB; at most 4 per build and 12 a day. Location and camera data are removed. Shown on /builds/gallery once staff approve it and while the build is public.
Parameters
imagereq- file · The photo
caption- string · Up to 200 characters
Response
{ ok: true, photo }DELETE/api/builds/[id]/photossession
Remove one of your build's photos (?photo=<id>), and its file.
Parameters
photoreq- string · Photo id (query)
POST/api/fps-reportssession
Send a frame rate measured on your own PC for /what-will-it-run. Held until staff approve it, and shown only as the median of a game, chip, resolution and preset with at least 3 approved results. At most 10 a day.
Parameters
gamereq- string · A game slug from the page's list, e.g. cyberpunk-2077
resolutionreq- string · 1080p | 1440p | 4k
presetreq- string · low | medium | high | ultra
upscaling- boolean · DLSS, FSR or XeSS on
avgFpsreq- number · Average fps, 1 to 1000
lowFps- number · 1% lows, no higher than the average
productreq- string · Your graphics card's product id
cpu- string · Your processor, up to 100 characters
Response
{ ok: true, report: { id, status } }GET/api/builds/share/[code]open
Read a build by its share code.