{"files":{"SKILL.md":"---\nname: custom-vision-training-client\ndescription: \"Custom Vision Training Client API skill. Use when working with Custom Vision Training Client for domains, projects. Covers 48 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# Custom Vision Training Client\nAPI version: 3.2\n\n## Auth\nApiKey Training-Key in header\n\n## Base URL\nhttps://southcentralus.api.cognitive.microsoft.com/customvision/v3.2/training\n\n## Setup\n1. Set your API key in the appropriate header\n2. GET /domains -- get a list of the available domains.\n3. POST /projects -- create first project\n\n## Endpoints\n48 endpoints across 2 groups. See references/api-spec.lap for full details.\n\n### Domains\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /domains | Get a list of the available domains. |\n| GET | /domains/{domainId} | Get information about a specific domain. |\n\n### Projects\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /projects | Get your projects. |\n| POST | /projects | Create a project. |\n| GET | /projects/{projectId} | Get a specific project. |\n| DELETE | /projects/{projectId} | Delete a specific project. |\n| PATCH | /projects/{projectId} | Update a specific project. |\n| GET | /projects/{projectId}/export | Exports a project. |\n| POST | /projects/{projectId}/images | This API accepts body content as multipart/form-data and application/octet-stream. When using multipart |\n| DELETE | /projects/{projectId}/images | Delete images from the set of training images. |\n| POST | /projects/{projectId}/images/{imageId}/regionproposals | This API will get region proposals for an image along with confidences for the region. It returns an empty array if no proposals are found. |\n| POST | /projects/{projectId}/images/files | This API accepts a batch of files, and optionally tags, to create images. There is a limit of 64 images and 20 tags. |\n| GET | /projects/{projectId}/images/id | This API will return a set of Images for the specified tags and optionally iteration. If no iteration is specified the |\n| POST | /projects/{projectId}/images/predictions | This API creates a batch of images from predicted images specified. There is a limit of 64 images and 20 tags. |\n| POST | /projects/{projectId}/images/regions | This API accepts a batch of image regions, and optionally tags, to update existing images with region information. |\n| DELETE | /projects/{projectId}/images/regions | Delete a set of image regions. |\n| POST | /projects/{projectId}/images/suggested | This API will fetch untagged images filtered by suggested tags Ids. It returns an empty array if no images are found. |\n| POST | /projects/{projectId}/images/suggested/count | This API takes in tagIds to get count of untagged images per suggested tags for a given threshold. |\n| GET | /projects/{projectId}/images/tagged | This API supports batching and range selection. By default it will only return first 50 images matching images. |\n| GET | /projects/{projectId}/images/tagged/count | The filtering is on an and/or relationship. For example, if the provided tag ids are for the \"Dog\" and |\n| POST | /projects/{projectId}/images/tags | Associate a set of images with a set of tags. |\n| DELETE | /projects/{projectId}/images/tags | Remove a set of tags from a set of images. |\n| GET | /projects/{projectId}/images/untagged | This API supports batching and range selection. By default it will only return first 50 images matching images. |\n| GET | /projects/{projectId}/images/untagged/count | This API returns the images which have no tags for a given project and optionally an iteration. If no iteration is specified the |\n| POST | /projects/{projectId}/images/urls | This API accepts a batch of urls, and optionally tags, to create images. There is a limit of 64 images and 20 tags. |\n| GET | /projects/{projectId}/iterations | Get iterations for the project. |\n| GET | /projects/{projectId}/iterations/{iterationId} | Get a specific iteration. |\n| DELETE | /projects/{projectId}/iterations/{iterationId} | Delete a specific iteration of a project. |\n| PATCH | /projects/{projectId}/iterations/{iterationId} | Update a specific iteration. |\n| GET | /projects/{projectId}/iterations/{iterationId}/export | Get the list of exports for a specific iteration. |\n| POST | /projects/{projectId}/iterations/{iterationId}/export | Export a trained iteration. |\n| GET | /projects/{projectId}/iterations/{iterationId}/performance | Get detailed performance information about an iteration. |\n| GET | /projects/{projectId}/iterations/{iterationId}/performance/images | This API supports batching and range selection. By default it will only return first 50 images matching images. |\n| GET | /projects/{projectId}/iterations/{iterationId}/performance/images/count | The filtering is on an and/or relationship. For example, if the provided tag ids are for the \"Dog\" and |\n| POST | /projects/{projectId}/iterations/{iterationId}/publish | Publish a specific iteration. |\n| DELETE | /projects/{projectId}/iterations/{iterationId}/publish | Unpublish a specific iteration. |\n| DELETE | /projects/{projectId}/predictions | Delete a set of predicted images and their associated prediction results. |\n| POST | /projects/{projectId}/predictions/query | Get images that were sent to your prediction endpoint. |\n| POST | /projects/{projectId}/quicktest/image | Quick test an image. |\n| POST | /projects/{projectId}/quicktest/url | Quick test an image url. |\n| GET | /projects/{projectId}/tags | Get the tags for a given project and iteration. |\n| POST | /projects/{projectId}/tags | Create a tag for the project. |\n| GET | /projects/{projectId}/tags/{tagId} | Get information about a specific tag. |\n| DELETE | /projects/{projectId}/tags/{tagId} | Delete a tag from the project. |\n| PATCH | /projects/{projectId}/tags/{tagId} | Update a tag. |\n| POST | /projects/{projectId}/tagsandregions/suggestions | This API will get suggested tags and regions for an array/batch of untagged images along with confidences for the tags. It returns an empty array if no tags are found. |\n| POST | /projects/{projectId}/train | Queues project for training. |\n| POST | /projects/import | Imports a project. |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"List all domains?\" -> GET /domains\n- \"Get domain details?\" -> GET /domains/{domainId}\n- \"List all projects?\" -> GET /projects\n- \"Create a project?\" -> POST /projects\n- \"Get project details?\" -> GET /projects/{projectId}\n- \"Delete a project?\" -> DELETE /projects/{projectId}\n- \"Partially update a project?\" -> PATCH /projects/{projectId}\n- \"List all export?\" -> GET /projects/{projectId}/export\n- \"Create a image?\" -> POST /projects/{projectId}/images\n- \"Create a regionproposal?\" -> POST /projects/{projectId}/images/{imageId}/regionproposals\n- \"Create a file?\" -> POST /projects/{projectId}/images/files\n- \"List all id?\" -> GET /projects/{projectId}/images/id\n- \"Create a prediction?\" -> POST /projects/{projectId}/images/predictions\n- \"Create a region?\" -> POST /projects/{projectId}/images/regions\n- \"Create a suggested?\" -> POST /projects/{projectId}/images/suggested\n- \"Create a count?\" -> POST /projects/{projectId}/images/suggested/count\n- \"List all tagged?\" -> GET /projects/{projectId}/images/tagged\n- \"List all count?\" -> GET /projects/{projectId}/images/tagged/count\n- \"Create a tag?\" -> POST /projects/{projectId}/images/tags\n- \"List all untagged?\" -> GET /projects/{projectId}/images/untagged\n- \"Create a url?\" -> POST /projects/{projectId}/images/urls\n- \"List all iterations?\" -> GET /projects/{projectId}/iterations\n- \"Get iteration details?\" -> GET /projects/{projectId}/iterations/{iterationId}\n- \"Delete a iteration?\" -> DELETE /projects/{projectId}/iterations/{iterationId}\n- \"Partially update a iteration?\" -> PATCH /projects/{projectId}/iterations/{iterationId}\n- \"Create a export?\" -> POST /projects/{projectId}/iterations/{iterationId}/export\n- \"List all performance?\" -> GET /projects/{projectId}/iterations/{iterationId}/performance\n- \"List all images?\" -> GET /projects/{projectId}/iterations/{iterationId}/performance/images\n- \"Create a publish?\" -> POST /projects/{projectId}/iterations/{iterationId}/publish\n- \"Create a query?\" -> POST /projects/{projectId}/predictions/query\n- \"List all tags?\" -> GET /projects/{projectId}/tags\n- \"Get tag details?\" -> GET /projects/{projectId}/tags/{tagId}\n- \"Delete a tag?\" -> DELETE /projects/{projectId}/tags/{tagId}\n- \"Partially update a tag?\" -> PATCH /projects/{projectId}/tags/{tagId}\n- \"Create a suggestion?\" -> POST /projects/{projectId}/tagsandregions/suggestions\n- \"Create a train?\" -> POST /projects/{projectId}/train\n- \"Create a import?\" -> POST /projects/import\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Create/update endpoints return the modified resource on success\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Custom Vision Training Client\n@base https://southcentralus.api.cognitive.microsoft.com/customvision/v3.2/training\n@version 3.2\n@auth ApiKey Training-Key in header\n@endpoints 48\n@hint download_for_search\n@toc domains(2), projects(46)\n\n@group domains\n@endpoint GET /domains\n@desc Get a list of the available domains.\n@returns(200) OK\n\n@endpoint GET /domains/{domainId}\n@desc Get information about a specific domain.\n@required {domainId: any # The id of the domain to get information about.}\n@returns(200) OK\n\n@endgroup\n\n@group projects\n@endpoint GET /projects\n@desc Get your projects.\n@returns(200) OK\n\n@endpoint POST /projects\n@desc Create a project.\n@required {name: any # Name of the project.}\n@optional {description: any # The description of the project., domainId: any # The id of the domain to use for this project. Defaults to General., classificationType: any # The type of classifier to create for this project., targetExportPlatforms: any # List of platforms the trained model is intending exporting to.}\n@returns(200) OK\n\n@endpoint GET /projects/{projectId}\n@desc Get a specific project.\n@required {projectId: any # The id of the project to get.}\n@returns(200) OK\n\n@endpoint DELETE /projects/{projectId}\n@desc Delete a specific project.\n@required {projectId: any # The project id.}\n@returns(204) No Content\n\n@endpoint PATCH /projects/{projectId}\n@desc Update a specific project.\n@required {projectId: any # The id of the project to update., updatedProject: map # The updated project model.}\n@returns(200) OK\n\n@endpoint GET /projects/{projectId}/export\n@desc Exports a project.\n@required {projectId: any # The project id of the project to export.}\n@returns(200) OK\n\n@endpoint POST /projects/{projectId}/images\n@desc This API accepts body content as multipart/form-data and application/octet-stream. When using multipart\n@required {projectId: any # The project id., imageData: any # Binary image data. Supported formats are JPEG, GIF, PNG, and BMP. Supports images up to 6MB.}\n@optional {tagIds: any # The tags ids with which to tag each image. Limited to 20.}\n@returns(200) OK\n\n@endpoint DELETE /projects/{projectId}/images\n@desc Delete images from the set of training images.\n@required {projectId: any # The project id.}\n@optional {imageIds: any # Ids of the images to be deleted. Limited to 256 images per batch., allImages: any # Flag to specify delete all images, specify this flag or a list of images. Using this flag will return a 202 response to indicate the images are being deleted., allIterations: any # Removes these images from all iterations, not just the current workspace. Using this flag will return a 202 response to indicate the images are being deleted.}\n@returns(202) Accepted\n@returns(204) No Content\n\n@endpoint POST /projects/{projectId}/images/{imageId}/regionproposals\n@desc This API will get region proposals for an image along with confidences for the region. It returns an empty array if no proposals are found.\n@required {projectId: any # The project id., imageId: any # The image id.}\n@returns(200) OK\n\n@endpoint POST /projects/{projectId}/images/files\n@desc This API accepts a batch of files, and optionally tags, to create images. There is a limit of 64 images and 20 tags.\n@required {projectId: any # The project id., batch: map # The batch of image files to add. Limited to 64 images and 20 tags per batch.}\n@returns(200) OK\n\n@endpoint GET /projects/{projectId}/images/id\n@desc This API will return a set of Images for the specified tags and optionally iteration. If no iteration is specified the\n@required {projectId: any # The project id.}\n@optional {imageIds: any # The list of image ids to retrieve. Limited to 256., iterationId: any # The iteration id. Defaults to workspace.}\n@returns(200) OK\n\n@endpoint POST /projects/{projectId}/images/predictions\n@desc This API creates a batch of images from predicted images specified. There is a limit of 64 images and 20 tags.\n@required {projectId: any # The project id., batch: map # Image and tag ids. Limited to 64 images and 20 tags per batch.}\n@returns(200) OK\n\n@endpoint POST /projects/{projectId}/images/regions\n@desc This API accepts a batch of image regions, and optionally tags, to update existing images with region information.\n@required {projectId: any # The project id., batch: map # Batch of image regions which include a tag and bounding box. Limited to 64.}\n@returns(200) OK\n\n@endpoint DELETE /projects/{projectId}/images/regions\n@desc Delete a set of image regions.\n@required {projectId: any # The project id., regionIds: any # Regions to delete. Limited to 64.}\n@returns(204) No Content\n\n@endpoint POST /projects/{projectId}/images/suggested\n@desc This API will fetch untagged images filtered by suggested tags Ids. It returns an empty array if no images are found.\n@required {projectId: any # The project id., iterationId: any # IterationId to use for the suggested tags and regions., query: map # Contains properties we need to query suggested images.}\n@returns(200) OK\n\n@endpoint POST /projects/{projectId}/images/suggested/count\n@desc This API takes in tagIds to get count of untagged images per suggested tags for a given threshold.\n@required {projectId: any # The project id., iterationId: any # IterationId to use for the suggested tags and regions., query: map # Model that contains tagIds, threshold and projectType to query by.}\n@returns(200) OK\n\n@endpoint GET /projects/{projectId}/images/tagged\n@desc This API supports batching and range selection. By default it will only return first 50 images matching images.\n@required {projectId: any # The project id.}\n@optional {iterationId: any # The iteration id. Defaults to workspace., tagIds: any # A list of tags ids to filter the images. Defaults to all tagged images when null. Limited to 20., orderBy: any # The ordering. Defaults to newest., take: any # Maximum number of images to return. Defaults to 50, limited to 256., skip: any # Number of images to skip before beginning the image batch. Defaults to 0.}\n@returns(200) OK\n\n@endpoint GET /projects/{projectId}/images/tagged/count\n@desc The filtering is on an and/or relationship. For example, if the provided tag ids are for the \"Dog\" and\n@required {projectId: any # The project id.}\n@optional {iterationId: any # The iteration id. Defaults to workspace., tagIds: any # A list of tags ids to filter the images to count. Defaults to all tags when null.}\n@returns(200) OK\n\n@endpoint POST /projects/{projectId}/images/tags\n@desc Associate a set of images with a set of tags.\n@required {projectId: any # The project id., batch: map # Batch of image tags. Limited to 128 tags per batch.}\n@returns(200) OK\n\n@endpoint DELETE /projects/{projectId}/images/tags\n@desc Remove a set of tags from a set of images.\n@required {projectId: any # The project id., imageIds: any # Image ids. Limited to 64 images., tagIds: any # Tags to be deleted from the specified images. Limited to 20 tags.}\n@returns(204) No Content\n\n@endpoint GET /projects/{projectId}/images/untagged\n@desc This API supports batching and range selection. By default it will only return first 50 images matching images.\n@required {projectId: any # The project id.}\n@optional {iterationId: any # The iteration id. Defaults to workspace., orderBy: any # The ordering. Defaults to newest., take: any # Maximum number of images to return. Defaults to 50, limited to 256., skip: any # Number of images to skip before beginning the image batch. Defaults to 0.}\n@returns(200) OK\n\n@endpoint GET /projects/{projectId}/images/untagged/count\n@desc This API returns the images which have no tags for a given project and optionally an iteration. If no iteration is specified the\n@required {projectId: any # The project id.}\n@optional {iterationId: any # The iteration id. Defaults to workspace.}\n@returns(200) OK\n\n@endpoint POST /projects/{projectId}/images/urls\n@desc This API accepts a batch of urls, and optionally tags, to create images. There is a limit of 64 images and 20 tags.\n@required {projectId: any # The project id., batch: map # Image urls and tag ids. Limited to 64 images and 20 tags per batch.}\n@returns(200) OK\n\n@endpoint GET /projects/{projectId}/iterations\n@desc Get iterations for the project.\n@required {projectId: any # The project id.}\n@returns(200) OK\n\n@endpoint GET /projects/{projectId}/iterations/{iterationId}\n@desc Get a specific iteration.\n@required {projectId: any # The id of the project the iteration belongs to., iterationId: any # The id of the iteration to get.}\n@returns(200) OK\n\n@endpoint DELETE /projects/{projectId}/iterations/{iterationId}\n@desc Delete a specific iteration of a project.\n@required {projectId: any # The project id., iterationId: any # The iteration id.}\n@returns(204) No Content\n\n@endpoint PATCH /projects/{projectId}/iterations/{iterationId}\n@desc Update a specific iteration.\n@required {projectId: any # Project id., iterationId: any # Iteration id., updatedIteration: map # The updated iteration model.}\n@returns(200) OK\n\n@endpoint GET /projects/{projectId}/iterations/{iterationId}/export\n@desc Get the list of exports for a specific iteration.\n@required {projectId: any # The project id., iterationId: any # The iteration id.}\n@returns(200) OK\n\n@endpoint POST /projects/{projectId}/iterations/{iterationId}/export\n@desc Export a trained iteration.\n@required {projectId: any # The project id., iterationId: any # The iteration id., platform: any # The target platform.}\n@optional {flavor: any # The flavor of the target platform.}\n@returns(200) OK\n\n@endpoint GET /projects/{projectId}/iterations/{iterationId}/performance\n@desc Get detailed performance information about an iteration.\n@required {projectId: any # The id of the project the iteration belongs to., iterationId: any # The id of the iteration to get.}\n@optional {threshold: any # The threshold used to determine true predictions., overlapThreshold: any # If applicable, the bounding box overlap threshold used to determine true predictions.}\n@returns(200) OK\n\n@endpoint GET /projects/{projectId}/iterations/{iterationId}/performance/images\n@desc This API supports batching and range selection. By default it will only return first 50 images matching images.\n@required {projectId: any # The project id., iterationId: any # The iteration id. Defaults to workspace.}\n@optional {tagIds: any # A list of tags ids to filter the images. Defaults to all tagged images when null. Limited to 20., orderBy: any # The ordering. Defaults to newest., take: any # Maximum number of images to return. Defaults to 50, limited to 256., skip: any # Number of images to skip before beginning the image batch. Defaults to 0.}\n@returns(200) OK\n\n@endpoint GET /projects/{projectId}/iterations/{iterationId}/performance/images/count\n@desc The filtering is on an and/or relationship. For example, if the provided tag ids are for the \"Dog\" and\n@required {projectId: any # The project id., iterationId: any # The iteration id. Defaults to workspace.}\n@optional {tagIds: any # A list of tags ids to filter the images to count. Defaults to all tags when null.}\n@returns(200) OK\n\n@endpoint POST /projects/{projectId}/iterations/{iterationId}/publish\n@desc Publish a specific iteration.\n@required {projectId: any # The project id., iterationId: any # The iteration id., publishName: any # The name to give the published iteration., predictionId: any # The id of the prediction resource to publish to.}\n@returns(200) OK\n\n@endpoint DELETE /projects/{projectId}/iterations/{iterationId}/publish\n@desc Unpublish a specific iteration.\n@required {projectId: any # The project id., iterationId: any # The iteration id.}\n@returns(204) No Content\n\n@endpoint DELETE /projects/{projectId}/predictions\n@desc Delete a set of predicted images and their associated prediction results.\n@required {projectId: any # The project id., ids: any # The prediction ids. Limited to 64.}\n@returns(204) No Content\n\n@endpoint POST /projects/{projectId}/predictions/query\n@desc Get images that were sent to your prediction endpoint.\n@required {projectId: any # The project id., query: map # Parameters used to query the predictions. Limited to combining 2 tags.}\n@returns(200) OK\n\n@endpoint POST /projects/{projectId}/quicktest/image\n@desc Quick test an image.\n@required {projectId: any # The project id., imageData: any # Binary image data. Supported formats are JPEG, GIF, PNG, and BMP. Supports images up to 6MB.}\n@optional {iterationId: any # Optional. Specifies the id of a particular iteration to evaluate against.\r             The default iteration for the project will be used when not specified., store: any # Optional. Specifies whether or not to store the result of this prediction. The default is true, to store.}\n@returns(200) OK\n\n@endpoint POST /projects/{projectId}/quicktest/url\n@desc Quick test an image url.\n@required {projectId: any # The project to evaluate against., imageUrl: map # An ImageUrl that contains the url of the image to be evaluated.}\n@optional {iterationId: any # Optional. Specifies the id of a particular iteration to evaluate against.\r             The default iteration for the project will be used when not specified., store: any # Optional. Specifies whether or not to store the result of this prediction. The default is true, to store.}\n@returns(200) OK\n\n@endpoint GET /projects/{projectId}/tags\n@desc Get the tags for a given project and iteration.\n@required {projectId: any # The project id.}\n@optional {iterationId: any # The iteration id. Defaults to workspace.}\n@returns(200) OK\n\n@endpoint POST /projects/{projectId}/tags\n@desc Create a tag for the project.\n@required {projectId: any # The project id., name: any # The tag name.}\n@optional {description: any # Optional description for the tag., type: any # Optional type for the tag.}\n@returns(200) OK\n\n@endpoint GET /projects/{projectId}/tags/{tagId}\n@desc Get information about a specific tag.\n@required {projectId: any # The project this tag belongs to., tagId: any # The tag id.}\n@optional {iterationId: any # The iteration to retrieve this tag from. Optional, defaults to current training set.}\n@returns(200) OK\n\n@endpoint DELETE /projects/{projectId}/tags/{tagId}\n@desc Delete a tag from the project.\n@required {projectId: any # The project id., tagId: any # Id of the tag to be deleted.}\n@returns(204) No Content\n\n@endpoint PATCH /projects/{projectId}/tags/{tagId}\n@desc Update a tag.\n@required {projectId: any # The project id., tagId: any # The id of the target tag., updatedTag: map # The updated tag model.}\n@returns(200) OK\n\n@endpoint POST /projects/{projectId}/tagsandregions/suggestions\n@desc This API will get suggested tags and regions for an array/batch of untagged images along with confidences for the tags. It returns an empty array if no tags are found.\n@required {projectId: any # The project id., iterationId: any # IterationId to use for tag and region suggestion., imageIds: any # Array of image ids tag suggestion are needed for. Use GetUntaggedImages API to get imageIds.}\n@returns(200) OK\n\n@endpoint POST /projects/{projectId}/train\n@desc Queues project for training.\n@required {projectId: any # The project id.}\n@optional {trainingType: any # The type of training to use to train the project (default: Regular)., reservedBudgetInHours: any # The number of hours reserved as budget for training (if applicable)., forceTrain: any # Whether to force train even if dataset and configuration does not change (default: false)., notificationEmailAddress: any # The email address to send notification to when training finishes (default: null)., trainingParameters: map # Additional training parameters passed in to control how the project is trained.}\n@returns(200) OK\n\n@endpoint POST /projects/import\n@desc Imports a project.\n@required {token: any # Token generated from the export project call.}\n@returns(200) OK\n\n@endgroup\n\n@end\n"}}