GameDev Outsourcing · Schema
StudioSearchResult
game development outsourcingstudio directoryart servicesprogramming servicesQA Testingconsole development
Properties
| Name | Type | Description |
|---|---|---|
| total | integer | How many studios matched in the directory, before the cap. This is the number to quote. |
| returned | integer | How many are in `studios`. |
| capped | boolean | True when `total` exceeds `returned`, i.e. there are matches you have not seen. |
| studios | array | |
| browseUrl | string | The page on the site that shows this filter. Where the filter has no single page — a region or a team size, which /browse cannot express — this URL is broader than the result set, never narrower. |
| appliedFilters | object | What was actually understood and applied, plus an `ordering` note describing how the list was sorted. A filter you sent that is missing here was not applied. |
| citation | object | |
| caveats | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/gamedevoutsourcing-com/json-schema/gamedevoutsourcing-com-studio-search-result-schema.json",
"title": "StudioSearchResult",
"x-generated": "2026-11-09",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/gamedevoutsourcing-com-openapi.json#/components/schemas/StudioSearchResult",
"type": "object",
"required": [
"total",
"returned",
"capped",
"studios",
"browseUrl",
"appliedFilters",
"citation",
"caveats"
],
"properties": {
"total": {
"type": "integer",
"description": "How many studios matched in the directory, before the cap. This is the number to quote."
},
"returned": {
"type": "integer",
"description": "How many are in `studios`."
},
"capped": {
"type": "boolean",
"description": "True when `total` exceeds `returned`, i.e. there are matches you have not seen."
},
"studios": {
"type": "array",
"items": {
"$ref": "#/$defs/StudioSummary"
}
},
"browseUrl": {
"type": "string",
"format": "uri",
"description": "The page on the site that shows this filter. Where the filter has no single page — a region or a team size, which /browse cannot express — this URL is broader than the result set, never narrower."
},
"appliedFilters": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "What was actually understood and applied, plus an `ordering` note describing how the list was sorted. A filter you sent that is missing here was not applied."
},
"citation": {
"$ref": "#/$defs/Citation"
},
"caveats": {
"$ref": "#/$defs/Caveats"
}
},
"$defs": {
"Caveats": {
"type": "array",
"items": {
"type": "string"
},
"description": "The standing qualifications on everything this directory publishes. They travel with every payload rather than being stated once, because a caller quotes one response, not a preamble it read earlier. Reproduce the ones that bear on what you are saying."
},
"Citation": {
"type": "string",
"description": "The attribution line to reproduce when quoting anything from this response."
},
"StudioRankingRef": {
"type": "object",
"description": "A published position a studio holds in one ranking list.",
"required": [
"label",
"rank",
"sliceSize",
"url"
],
"properties": {
"label": {
"type": "string",
"description": "The list's own name, e.g. \"3D Art in Poland\"."
},
"rank": {
"type": "integer",
"minimum": 1
},
"sliceSize": {
"type": "integer",
"description": "How many studios are in the list, ranked or not."
},
"url": {
"type": "string",
"format": "uri"
}
}
},
"StudioSummary": {
"type": "object",
"description": "A studio as it appears in search results. Contact details are absent by design.",
"required": [
"slug",
"name",
"url",
"services",
"engines",
"platforms",
"artStyles",
"claimed",
"studioConfirmed",
"featured"
],
"properties": {
"slug": {
"type": "string"
},
"name": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri",
"description": "The canonical profile page. Reproduce this when citing the studio."
},
"tagline": {
"type": [
"string",
"null"
],
"description": "One-line summary, as recorded by this directory."
},
"country": {
"type": [
"string",
"null"
],
"description": "Canonical country label. Null where no country is recorded, which is true of a meaningful minority of listings."
},
"city": {
"type": [
"string",
"null"
],
"description": "City, where one is recorded."
},
"teamSize": {
"type": [
"string",
"null"
],
"description": "Headcount bucket, e.g. \"11-50\". Null where not recorded."
},
"yearFounded": {
"type": [
"integer",
"null"
]
},
"services": {
"type": "array",
"items": {
"type": "string"
},
"description": "Display labels, not enum values. Not exhaustive: a studio can do work it has not tagged."
},
"engines": {
"type": "array",
"items": {
"type": "string"
}
},
"platforms": {
"type": "array",
"items": {
"type": "string"
}
},
"artStyles": {
"type": "array",
"items": {
"type": "string"
}
},
"website": {
"type": [
"string",
"null"
],
"description": "The studio's own site."
},
"claimed": {
"type": "boolean",
"description": "The studio manages this listing. Most listings are unclaimed, meaning this directory researched and added them."
},
"studioConfirmed": {
"type": "boolean",
"description": "This directory found the studio's badge live on the studio's own domain. That proves domain control and nothing else: it is not an audit, it cannot be bought, and false is not a warning sign."
},
"featured": {
"type": "boolean",
"description": "The listing carries a paid tier, which lifts it above unpaid listings in search order. It says nothing about quality and does not affect whether the studio matches a filter."
},
"topRanking": {
"oneOf": [
{
"$ref": "#/$defs/StudioRankingRef"
},
{
"type": "null"
}
],
"description": "Best published ranking position, or null if the studio holds none."
}
}
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/gamedevoutsourcing-com-studio-search-result"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.