{"openapi":"3.1.0","info":{"title":"Planet Data (BYOK) API","version":"0.1.0","description":"Planet Data (BYOK) lets an AI assistant read your own Planet Data data through the Planet Data API with a key you supply (Planet API key (Account > My Settings)). Read-only: 7 tools (list_item_types, list_asset_types, search_scenes, count_scenes_over_time, get_scene, list_saved_searches, run_saved_search). The BYOK key travels with each request, is used for that one call only and is never stored,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-planet-data.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-planet-data/docs"},"termsOfService":"https://connectorbay.com/byok-planet-data/terms"},"servers":[{"url":"https://byok-planet-data.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-planet-data/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_item_types":{"post":{"operationId":"list_item_types","summary":"List the Planet imagery item types (for example PlanetScope, SkySat, RapidEye) with a description and the asset types ea","description":"List the Planet imagery item types (for example PlanetScope, SkySat, RapidEye) with a description and the asset types each supports. Use for \"Which imagery types does the Planet catalog offer\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_item_typesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_asset_types":{"post":{"operationId":"list_asset_types","summary":"List the Planet asset types (downloadable products such as visual or analytic imagery) with names and descriptions. Use ","description":"List the Planet asset types (downloadable products such as visual or analytic imagery) with names and descriptions. Use for \"What asset types does Planet provide\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_asset_typesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/search_scenes":{"post":{"operationId":"search_scenes","summary":"Search Planet imagery scenes of one item type that cover a point and were captured within a time range, up to a cloud co","description":"Search Planet imagery scenes of one item type that cover a point and were captured within a time range, up to a cloud cover limit; returns scene ids with capture time, cloud cover and resolution. The first page only; no imagery is downloaded. Use for \"Find clear PlanetScope scenes over San Francisco in June 2024\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"item_type":{"description":"Item type to search, for example 'PSScene'.","maxLength":60,"title":"Item Type","type":"string"},"lat":{"description":"Latitude of the point of interest in decimal degrees (-90 to 90).","maximum":90,"minimum":-90,"title":"Lat","type":"number"},"lon":{"description":"Longitude of the point of interest in decimal degrees (-180 to 180).","maximum":180,"minimum":-180,"title":"Lon","type":"number"},"start":{"description":"Earliest capture time, RFC 3339, for example 2024-06-01T00:00:00Z.","maxLength":30,"title":"Start","type":"string"},"end":{"description":"Latest capture time, RFC 3339, for example 2024-06-30T23:59:59Z.","maxLength":30,"title":"End","type":"string"},"max_cloud_cover":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}],"default":1.0,"description":"Maximum cloud cover as a fraction from 0 (clear) to 1.","title":"Max Cloud Cover"},"page_size":{"anyOf":[{"maximum":250,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items per page (1 to 250).","title":"Page Size"},"sort":{"anyOf":[{"enum":["acquired asc","acquired desc","published asc","published desc"],"type":"string"},{"type":"null"}],"default":"published desc","description":"Order of results: acquired asc, acquired desc, published asc or published desc.","title":"Sort"}},"required":["item_type","lat","lon","start","end"],"title":"search_scenesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/count_scenes_over_time":{"post":{"operationId":"count_scenes_over_time","summary":"Count Planet scenes of one item type over a point and time range, grouped into hour, day, week, month or year buckets. U","description":"Count Planet scenes of one item type over a point and time range, grouped into hour, day, week, month or year buckets. Use for \"How many PlanetScope scenes per week covered San Francisco in June 2024\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"item_type":{"description":"Item type to count, for example 'PSScene'.","maxLength":60,"title":"Item Type","type":"string"},"lat":{"description":"Latitude of the point of interest in decimal degrees (-90 to 90).","maximum":90,"minimum":-90,"title":"Lat","type":"number"},"lon":{"description":"Longitude of the point of interest in decimal degrees (-180 to 180).","maximum":180,"minimum":-180,"title":"Lon","type":"number"},"start":{"description":"Earliest capture time, RFC 3339, for example 2024-06-01T00:00:00Z.","maxLength":30,"title":"Start","type":"string"},"end":{"description":"Latest capture time, RFC 3339, for example 2024-06-30T23:59:59Z.","maxLength":30,"title":"End","type":"string"},"interval":{"description":"Bucket size: hour, day, week, month or year.","enum":["hour","day","week","month","year"],"title":"Interval","type":"string"},"max_cloud_cover":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}],"default":1.0,"description":"Maximum cloud cover as a fraction from 0 (clear) to 1.","title":"Max Cloud Cover"}},"required":["item_type","lat","lon","start","end","interval"],"title":"count_scenes_over_timeArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_scene":{"post":{"operationId":"get_scene","summary":"Get the metadata of one Planet scene (item): capture time, cloud cover, resolution, satellite, sun and view angles and u","description":"Get the metadata of one Planet scene (item): capture time, cloud cover, resolution, satellite, sun and view angles and usable data share. Use for \"What are the details of Planet scene 20240601_101010_1234\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"item_type_id":{"description":"Item type id, for example 'PSScene' (PlanetScope), 'SkySatCollect' or 'REOrthoTile'; list_item_types shows them.","maxLength":60,"title":"Item Type Id","type":"string"},"item_id":{"description":"Item (scene) id, for example '20240601_101010_1234'.","maxLength":100,"title":"Item Id","type":"string"}},"required":["item_type_id","item_id"],"title":"get_sceneArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_saved_searches":{"post":{"operationId":"list_saved_searches","summary":"List the saved searches of the key's Planet account with name, creation, update and last run times. Use for \"Which saved","description":"List the saved searches of the key's Planet account with name, creation, update and last run times. Use for \"Which saved searches do I have in Planet\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_size":{"anyOf":[{"maximum":250,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items per page (1 to 250).","title":"Page Size"},"search_type":{"anyOf":[{"enum":["any","saved","quick"],"type":"string"},{"type":"null"}],"default":"any","description":"Which searches to list: any, saved or quick.","title":"Search Type"},"sort":{"anyOf":[{"enum":["created desc","created asc"],"type":"string"},{"type":"null"}],"default":"created desc","description":"Order: created desc or created asc.","title":"Sort"}},"title":"list_saved_searchesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/run_saved_search":{"post":{"operationId":"run_saved_search","summary":"Run a saved Planet search by id and return the first page of matching scenes with capture time, cloud cover and resoluti","description":"Run a saved Planet search by id and return the first page of matching scenes with capture time, cloud cover and resolution. Use for \"Run my saved Planet search and show the newest scenes\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"search_id":{"description":"Saved search id, a 32 character id from list_saved_searches.","maxLength":40,"title":"Search Id","type":"string"},"page_size":{"anyOf":[{"maximum":250,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items per page (1 to 250).","title":"Page Size"},"sort":{"anyOf":[{"enum":["acquired asc","acquired desc","published asc","published desc"],"type":"string"},{"type":"null"}],"default":"published desc","description":"Order of results: acquired asc, acquired desc, published asc or published desc.","title":"Sort"}},"required":["search_id"],"title":"run_saved_searchArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}