Roboflow Sam API
The Sam API from Roboflow — 2 operation(s) for sam.
The Sam API from Roboflow — 2 operation(s) for sam.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.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.curl "https://apis.io/api/v1/apis/roboflow-sam-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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.
openapi: 3.2.0
info:
title: Roboflow Sam API
version: 1.3.8
contact:
name: Roboflow Inc.
url: https://roboflow.com/contact
email: help@roboflow.com
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
termsOfService: https://roboflow.com/terms
description: 'Operations tagged Sam across 2 of this provider''s published API definitions: roboflow-inference-openapi.json, roboflow-sam-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://serverless.roboflow.com
description: Base URL declared by the provider in apis.yml (roadmap#122).
tags:
- name: Sam
paths:
/sam/embed_image:
post:
summary: SAM Image Embeddings
description: Run the Meta AI Segmant Anything Model to embed image data.
operationId: sam_embed_image_sam_embed_image_post
parameters:
- name: api_key
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Roboflow API Key that will be passed to the model during initialization for artifact retrieval
title: Api Key
description: Roboflow API Key that will be passed to the model during initialization for artifact retrieval
- name: countinference
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
title: Countinference
- name: service_secret
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Service Secret
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SamEmbeddingRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/SamEmbeddingResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Sam
/sam/segment_image:
post:
summary: SAM Image Segmentation
description: Run the Meta AI Segmant Anything Model to generate segmenations for image data.
operationId: sam_segment_image_sam_segment_image_post
parameters:
- name: api_key
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Roboflow API Key that will be passed to the model during initialization for artifact retrieval
title: Api Key
description: Roboflow API Key that will be passed to the model during initialization for artifact retrieval
- name: countinference
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
title: Countinference
- name: service_secret
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Service Secret
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SamSegmentationRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/SamSegmentationResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
tags:
- Sam
components:
schemas:
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
type: object
required:
- loc
- msg
- type
title: ValidationError
SamEmbeddingRequest:
properties:
id:
type: string
title: Id
api_key:
anyOf:
- type: string
- type: 'null'
title: Api Key
description: Roboflow API Key that will be passed to the model during initialization for artifact retrieval
usage_billable:
type: boolean
title: Usage Billable
default: true
start:
anyOf:
- type: number
- type: 'null'
title: Start
source:
anyOf:
- type: string
- type: 'null'
title: Source
source_info:
anyOf:
- type: string
- type: 'null'
title: Source Info
stream_pipeline_context_id:
anyOf:
- type: string
- type: 'null'
title: Stream Pipeline Context Id
description: Internal stream-pipeline frame pairing id. Not part of the public API.
disable_model_monitoring:
anyOf:
- type: boolean
- type: 'null'
title: Disable Model Monitoring
description: If true, disables model monitoring for this request
default: false
sam_version_id:
anyOf:
- type: string
- type: 'null'
title: Sam Version Id
description: The version ID of SAM to be used for this request. Must be one of vit_h, vit_l, or vit_b.
default: vit_h
examples:
- vit_h
model_id:
anyOf:
- type: string
- type: 'null'
title: Model Id
image:
anyOf:
- $ref: '#/components/schemas/InferenceRequestImage'
- type: 'null'
description: The image to be embedded
image_id:
anyOf:
- type: string
- type: 'null'
title: Image Id
description: The ID of the image to be embedded used to cache the embedding.
examples:
- image_id
format:
anyOf:
- type: string
- type: 'null'
title: Format
description: The format of the response. Must be one of json or binary. If binary, embedding is returned as a binary numpy array.
default: json
examples:
- json
type: object
required:
- id
title: SamEmbeddingRequest
description: "SAM embedding request.\n\nAttributes:\n image (Optional[inference.core.entities.requests.inference.InferenceRequestImage]): The image to be embedded.\n image_id (Optional[str]): The ID of the image to be embedded used to cache the embedding.\n format (Optional[str]): The format of the response. Must be one of json or binary."
InferenceRequestImage:
properties:
type:
type: string
title: Type
description: The type of image data provided, one of 'url', 'base64', or 'numpy'
examples:
- url
value:
anyOf:
- {}
- type: 'null'
title: Value
description: Image data corresponding to the image type, if type = 'url' then value is a string containing the url of an image, else if type = 'base64' then value is a string containing base64 encoded image data, else if type = 'numpy' then value is binary numpy data serialized using pickle.dumps(); array should 3 dimensions, channels last, with values in the range [0,255].
examples:
- http://www.example-image-url.com
type: object
required:
- type
title: InferenceRequestImage
description: "Image data for inference request.\n\nAttributes:\n type (str): The type of image data provided, one of 'url', 'base64', or 'numpy'.\n value (Optional[Any]): Image data corresponding to the image type."
SamSegmentationResponse:
properties:
masks:
anyOf:
- items:
items:
items:
type: integer
type: array
type: array
type: array
- {}
title: Masks
description: The set of output masks. If request format is json, masks is a list of polygons, where each polygon is a list of points, where each point is a tuple containing the x,y pixel coordinates of the point. If request format is binary, masks is a list of binary numpy arrays. The dimensions of each mask are the same as the dimensions of the input image.
low_res_masks:
anyOf:
- items:
items:
items:
type: integer
type: array
type: array
type: array
- {}
title: Low Res Masks
description: The set of output masks. If request format is json, masks is a list of polygons, where each polygon is a list of points, where each point is a tuple containing the x,y pixel coordinates of the point. If request format is binary, masks is a list of binary numpy arrays. The dimensions of each mask are 256 x 256
time:
type: number
title: Time
description: The time in seconds it took to produce the segmentation including preprocessing
type: object
required:
- masks
- low_res_masks
- time
title: SamSegmentationResponse
description: "SAM segmentation response.\n\nAttributes:\n masks (Union[List[List[List[int]]], Any]): The set of output masks.\n low_res_masks (Union[List[List[List[int]]], Any]): The set of output low-resolution masks.\n time (float): The time in seconds it took to produce the segmentation including preprocessing."
SamSegmentationRequest:
properties:
id:
type: string
title: Id
api_key:
anyOf:
- type: string
- type: 'null'
title: Api Key
description: Roboflow API Key that will be passed to the model during initialization for artifact retrieval
usage_billable:
type: boolean
title: Usage Billable
default: true
start:
anyOf:
- type: number
- type: 'null'
title: Start
source:
anyOf:
- type: string
- type: 'null'
title: Source
source_info:
anyOf:
- type: string
- type: 'null'
title: Source Info
stream_pipeline_context_id:
anyOf:
- type: string
- type: 'null'
title: Stream Pipeline Context Id
description: Internal stream-pipeline frame pairing id. Not part of the public API.
disable_model_monitoring:
anyOf:
- type: boolean
- type: 'null'
title: Disable Model Monitoring
description: If true, disables model monitoring for this request
default: false
sam_version_id:
anyOf:
- type: string
- type: 'null'
title: Sam Version Id
description: The version ID of SAM to be used for this request. Must be one of vit_h, vit_l, or vit_b.
default: vit_h
examples:
- vit_h
model_id:
anyOf:
- type: string
- type: 'null'
title: Model Id
embeddings:
anyOf:
- items:
items:
items:
items:
type: number
type: array
type: array
type: array
type: array
- {}
- type: 'null'
title: Embeddings
description: The embeddings to be decoded. The dimensions of the embeddings are 1 x 256 x 64 x 64. If embeddings is not provided, image must be provided.
examples:
- '[[[[0.1, 0.2, 0.3, ...] ...] ...]]'
embeddings_format:
anyOf:
- type: string
- type: 'null'
title: Embeddings Format
description: The format of the embeddings. Must be one of json or binary. If binary, embeddings are expected to be a binary numpy array.
default: json
examples:
- json
format:
anyOf:
- type: string
- type: 'null'
title: Format
description: The format of the response. Must be one of json or binary. If binary, masks are returned as binary numpy arrays. If json, masks are converted to polygons, then returned as json.
default: json
examples:
- json
image:
anyOf:
- $ref: '#/components/schemas/InferenceRequestImage'
- type: 'null'
description: The image to be segmented. Only required if embeddings are not provided.
image_id:
anyOf:
- type: string
- type: 'null'
title: Image Id
description: The ID of the image to be segmented used to retrieve cached embeddings. If an embedding is cached, it will be used instead of generating a new embedding. If no embedding is cached, a new embedding will be generated and cached.
examples:
- image_id
has_mask_input:
anyOf:
- type: boolean
- type: 'null'
title: Has Mask Input
description: Whether or not the request includes a mask input. If true, the mask input must be provided.
default: false
examples:
- true
mask_input:
anyOf:
- items:
items:
items:
type: number
type: array
type: array
type: array
- {}
- type: 'null'
title: Mask Input
description: The set of output masks. If request format is json, masks is a list of polygons, where each polygon is a list of points, where each point is a tuple containing the x,y pixel coordinates of the point. If request format is binary, masks is a list of binary numpy arrays. The dimensions of each mask are 256 x 256. This is the same as the output, low resolution mask from the previous inference.
mask_input_format:
anyOf:
- type: string
- type: 'null'
title: Mask Input Format
description: The format of the mask input. Must be one of json or binary. If binary, mask input is expected to be a binary numpy array.
default: json
examples:
- json
orig_im_size:
anyOf:
- items:
type: integer
type: array
- type: 'null'
title: Orig Im Size
description: The original size of the image used to generate the embeddings. This is only required if the image is not provided.
examples:
- - 640
- 320
point_coords:
anyOf:
- items:
items:
type: number
type: array
type: array
- type: 'null'
title: Point Coords
description: The coordinates of the interactive points used during decoding. Each point (x,y pair) corresponds to a label in point_labels.
default:
- - 0.0
- 0.0
examples:
- - - 10.0
- 10.0
point_labels:
anyOf:
- items:
type: number
type: array
- type: 'null'
title: Point Labels
description: The labels of the interactive points used during decoding. A 1 represents a positive point (part of the object to be segmented). A -1 represents a negative point (not part of the object to be segmented). Each label corresponds to a point in point_coords.
default:
- -1
examples:
- - 1
use_mask_input_cache:
anyOf:
- type: boolean
- type: 'null'
title: Use Mask Input Cache
description: Whether or not to use the mask input cache. If true, the mask input cache will be used if it exists. If false, the mask input cache will not be used.
default: true
examples:
- true
type: object
required:
- id
title: SamSegmentationRequest
description: "SAM segmentation request.\n\nAttributes:\n embeddings (Optional[Union[List[List[List[List[float]]]], Any]]): The embeddings to be decoded.\n embeddings_format (Optional[str]): The format of the embeddings.\n format (Optional[str]): The format of the response.\n image (Optional[InferenceRequestImage]): The image to be segmented.\n image_id (Optional[str]): The ID of the image to be segmented used to retrieve cached embeddings.\n has_mask_input (Optional[bool]): Whether or not the request includes a mask input.\n mask_input (Optional[Union[List[List[List[float]]], Any]]): The set of output masks.\n mask_input_format (Optional[str]): The format of the mask input.\n orig_im_size (Optional[List[int]]): The original size of the image used to generate the embeddings.\n point_coords (Optional[List[List[float]]]): The coordinates of the interactive points used during decoding.\n point_labels (Optional[List[float]]): The labels of the interactive points used during decoding.\n use_mask_input_cache (Optional[bool]): Whether or not to use the mask input cache."
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
SamEmbeddingResponse:
properties:
embeddings:
anyOf:
- items:
items:
items:
items:
type: number
type: array
type: array
type: array
type: array
- {}
title: Embeddings
description: If request format is json, embeddings is a series of nested lists representing the SAM embedding. If request format is binary, embeddings is a binary numpy array. The dimensions of the embedding are 1 x 256 x 64 x 64.
examples:
- '[[[[0.1, 0.2, 0.3, ...] ...] ...]]'
time:
type: number
title: Time
description: The time in seconds it took to produce the embeddings including preprocessing
type: object
required:
- embeddings
- time
title: SamEmbeddingResponse
description: "SAM embedding response.\n\nAttributes:\n embeddings (Union[List[List[List[List[float]]]], Any]): The SAM embedding.\n time (float): The time in seconds it took to produce the embeddings including preprocessing."
x-refined-from:
- roboflow-inference-openapi.json
- roboflow-sam-api-openapi.yml