Every API 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 apis
7 MCP tools reach this
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.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/amazon-step-functions-x-amz-target-awsstepfunctions-createstatemachine-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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.
openapi: 3.2.0
info:
version: '2016-11-23'
x-release: v4
title: 'AWS Step Functions #X Amz Target=AWSStepFunctions.CreateStateMachine API'
description: <fullname>Step Functions</fullname> <p>Step Functions is a service that lets you coordinate the components of distributed applications and microservices using visual workflows.</p> <p>You can use Step Functions to build applications from individual components, each of which performs a discrete function, or <i>task</i>, allowing you to scale and change applications quickly. Step Functions provides a console that helps visualize the components of your application as a series of steps. Step Functions automatically triggers and tracks each step, and retries steps when there are errors, so your application executes predictably and in the right order every time. Step Functions logs the state of each step, so you can quickly diagnose and debug any issues.</p> <p>Step Functions manages operations and underlying infrastructure to ensure your application is available at any scale. You can run tasks on Amazon Web Services, your own servers, or any system that has access to Amazon Web Services. You can access and use Step Functions using the console, the Amazon Web Services SDKs, or an HTTP API. For more information about Step Functions, see the <i> <a href="https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html">Step Functions Developer Guide</a> </i>.</p>
x-logo:
url: https://twitter.com/awscloud/profile_image?size=original
backgroundColor: '#FFFFFF'
termsOfService: https://aws.amazon.com/service-terms/
contact:
name: Mike Ralphson
email: mike.ralphson@gmail.com
url: https://github.com/mermade/aws2openapi
x-twitter: PermittedSoc
license:
name: Apache 2.0 License
url: http://www.apache.org/licenses/
x-providerName: amazonaws.com
x-serviceName: states
x-origin:
- contentType: application/json
url: https://raw.githubusercontent.com/aws/aws-sdk-js/master/apis/states-2016-11-23.normal.json
converter:
url: https://github.com/mermade/aws2openapi
version: 1.0.0
x-apisguru-driver: external
x-apiClientRegistration:
url: https://portal.aws.amazon.com/gp/aws/developer/registration/index.html?nc2=h_ct
x-apisguru-categories:
- cloud
x-preferred: true
servers:
- url: http://states.{region}.amazonaws.com
variables:
region:
description: The AWS region
enum:
- us-east-1
- us-east-2
- us-west-1
- us-west-2
- us-gov-west-1
- us-gov-east-1
- ca-central-1
- eu-north-1
- eu-west-1
- eu-west-2
- eu-west-3
- eu-central-1
- eu-south-1
- af-south-1
- ap-northeast-1
- ap-northeast-2
- ap-northeast-3
- ap-southeast-1
- ap-southeast-2
- ap-east-1
- ap-south-1
- sa-east-1
- me-south-1
default: us-east-1
description: The AWS SFN multi-region endpoint
- url: https://states.{region}.amazonaws.com
variables:
region:
description: The AWS region
enum:
- us-east-1
- us-east-2
- us-west-1
- us-west-2
- us-gov-west-1
- us-gov-east-1
- ca-central-1
- eu-north-1
- eu-west-1
- eu-west-2
- eu-west-3
- eu-central-1
- eu-south-1
- af-south-1
- ap-northeast-1
- ap-northeast-2
- ap-northeast-3
- ap-southeast-1
- ap-southeast-2
- ap-east-1
- ap-south-1
- sa-east-1
- me-south-1
default: us-east-1
description: The AWS SFN multi-region endpoint
- url: http://states.{region}.amazonaws.com.cn
variables:
region:
description: The AWS region
enum:
- cn-north-1
- cn-northwest-1
default: cn-north-1
description: The AWS SFN endpoint for China (Beijing) and China (Ningxia)
- url: https://states.{region}.amazonaws.com.cn
variables:
region:
description: The AWS region
enum:
- cn-north-1
- cn-northwest-1
default: cn-north-1
description: The AWS SFN endpoint for China (Beijing) and China (Ningxia)
security:
- hmac: []
tags:
- name: '#X Amz Target=AWSStepFunctions.CreateStateMachine'
paths:
/#X-Amz-Target=AWSStepFunctions.CreateStateMachine:
parameters:
- $ref: '#/components/parameters/X-Amz-Content-Sha256'
- $ref: '#/components/parameters/X-Amz-Date'
- $ref: '#/components/parameters/X-Amz-Algorithm'
- $ref: '#/components/parameters/X-Amz-Credential'
- $ref: '#/components/parameters/X-Amz-Security-Token'
- $ref: '#/components/parameters/X-Amz-Signature'
- $ref: '#/components/parameters/X-Amz-SignedHeaders'
post:
operationId: CreateStateMachine
description: <p>Creates a state machine. A state machine consists of a collection of states that can do work (<code>Task</code> states), determine to which states to transition next (<code>Choice</code> states), stop an execution with an error (<code>Fail</code> states), and so on. State machines are specified using a JSON-based, structured language. For more information, see <a href="https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html">Amazon States Language</a> in the Step Functions User Guide.</p> <p>If you set the <code>publish</code> parameter of this API action to <code>true</code>, it publishes version <code>1</code> as the first revision of the state machine.</p> <note> <p>This operation is eventually consistent. The results are best effort and may not reflect very recent updates and changes.</p> </note> <note> <p> <code>CreateStateMachine</code> is an idempotent API. Subsequent requests won’t create a duplicate resource if it was already created. <code>CreateStateMachine</code>'s idempotency check is based on the state machine <code>name</code>, <code>definition</code>, <code>type</code>, <code>LoggingConfiguration</code>, and <code>TracingConfiguration</code>. The check is also based on the <code>publish</code> and <code>versionDescription</code> parameters. If a following request has a different <code>roleArn</code> or <code>tags</code>, Step Functions will ignore these differences and treat it as an idempotent request of the previous. In this case, <code>roleArn</code> and <code>tags</code> will not be updated, even if they are different.</p> </note>
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/CreateStateMachineOutput'
examples:
CreateStateMachine200Example:
summary: Default CreateStateMachine 200
x-microcks-default: true
value:
stateMachineArn: arn:aws:service:us-east-1:123456789012:resource/example
creationDate: example-value
stateMachineVersionArn: arn:aws:service:us-east-1:123456789012:resource/example
'480':
description: InvalidArn
content:
application/json:
schema:
$ref: '#/components/schemas/InvalidArn'
examples:
CreateStateMachine480Example:
summary: Default CreateStateMachine 480
x-microcks-default: true
value: example-value
'481':
description: InvalidDefinition
content:
application/json:
schema:
$ref: '#/components/schemas/InvalidDefinition'
examples:
CreateStateMachine481Example:
summary: Default CreateStateMachine 481
x-microcks-default: true
value: example-value
'482':
description: InvalidName
content:
application/json:
schema:
$ref: '#/components/schemas/InvalidName'
examples:
CreateStateMachine482Example:
summary: Default CreateStateMachine 482
x-microcks-default: true
value: example-value
'483':
description: InvalidLoggingConfiguration
content:
application/json:
schema:
$ref: '#/components/schemas/InvalidLoggingConfiguration'
examples:
CreateStateMachine483Example:
summary: Default CreateStateMachine 483
x-microcks-default: true
value: example-value
'484':
description: InvalidTracingConfiguration
content:
application/json:
schema:
$ref: '#/components/schemas/InvalidTracingConfiguration'
examples:
CreateStateMachine484Example:
summary: Default CreateStateMachine 484
x-microcks-default: true
value: example-value
'485':
description: StateMachineAlreadyExists
content:
application/json:
schema:
$ref: '#/components/schemas/StateMachineAlreadyExists'
examples:
CreateStateMachine485Example:
summary: Default CreateStateMachine 485
x-microcks-default: true
value: example-value
'486':
description: StateMachineDeleting
content:
application/json:
schema:
$ref: '#/components/schemas/StateMachineDeleting'
examples:
CreateStateMachine486Example:
summary: Default CreateStateMachine 486
x-microcks-default: true
value: example-value
'487':
description: StateMachineLimitExceeded
content:
application/json:
schema:
$ref: '#/components/schemas/StateMachineLimitExceeded'
examples:
CreateStateMachine487Example:
summary: Default CreateStateMachine 487
x-microcks-default: true
value: example-value
'488':
description: StateMachineTypeNotSupported
content:
application/json:
schema:
$ref: '#/components/schemas/StateMachineTypeNotSupported'
examples:
CreateStateMachine488Example:
summary: Default CreateStateMachine 488
x-microcks-default: true
value: example-value
'489':
description: TooManyTags
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyTags'
examples:
CreateStateMachine489Example:
summary: Default CreateStateMachine 489
x-microcks-default: true
value: example-value
'490':
description: ValidationException
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationException'
examples:
CreateStateMachine490Example:
summary: Default CreateStateMachine 490
x-microcks-default: true
value: example-value
'491':
description: ConflictException
content:
application/json:
schema:
$ref: '#/components/schemas/ConflictException'
examples:
CreateStateMachine491Example:
summary: Default CreateStateMachine 491
x-microcks-default: true
value: example-value
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateStateMachineInput'
examples:
CreateStateMachineRequestExample:
summary: Default CreateStateMachine request
x-microcks-default: true
value:
name: MyResource
definition: example-value
roleArn: arn:aws:service:us-east-1:123456789012:resource/example
type: example-value
loggingConfiguration: example-value
tags: example-value
tracingConfiguration: example-value
publish: example-value
versionDescription: example-value
parameters:
- name: X-Amz-Target
in: header
required: true
schema:
type: string
enum:
- AWSStepFunctions.CreateStateMachine
summary: Amazon Create State Machine
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
tags:
- '#X Amz Target=AWSStepFunctions.CreateStateMachine'
components:
schemas:
TagList:
type: array
items:
$ref: '#/components/schemas/Tag'
Name:
type: string
minLength: 1
maxLength: 80
Arn:
type: string
minLength: 1
maxLength: 256
LoggingConfiguration:
type: object
properties:
level:
allOf:
- $ref: '#/components/schemas/LogLevel'
- description: Defines which category of execution history events are logged.
includeExecutionData:
allOf:
- $ref: '#/components/schemas/IncludeExecutionData'
- description: Determines whether execution data is included in your log. When set to <code>false</code>, data is excluded.
destinations:
allOf:
- $ref: '#/components/schemas/LogDestinationList'
- description: An array of objects that describes where your execution history events will be logged. Limited to size 1. Required, if your log level is not set to <code>OFF</code>.
description: The <code>LoggingConfiguration</code> data type is used to set CloudWatch Logs options.
Timestamp:
type: string
format: date-time
TooManyTags: {}
StateMachineDeleting: {}
StateMachineTypeNotSupported: {}
InvalidName: {}
CloudWatchLogsLogGroup:
type: object
properties:
logGroupArn:
allOf:
- $ref: '#/components/schemas/Arn'
- description: 'The ARN of the the CloudWatch log group to which you want your logs emitted to. The ARN must end with <code>:*</code> '
description: <p/>
Enabled:
type: boolean
ConflictException: {}
StateMachineType:
type: string
enum:
- STANDARD
- EXPRESS
IncludeExecutionData:
type: boolean
InvalidArn: {}
CreateStateMachineOutput:
type: object
required:
- stateMachineArn
- creationDate
properties:
stateMachineArn:
allOf:
- $ref: '#/components/schemas/Arn'
- description: The Amazon Resource Name (ARN) that identifies the created state machine.
creationDate:
allOf:
- $ref: '#/components/schemas/Timestamp'
- description: The date the state machine is created.
stateMachineVersionArn:
allOf:
- $ref: '#/components/schemas/Arn'
- description: The Amazon Resource Name (ARN) that identifies the created state machine version. If you do not set the <code>publish</code> parameter to <code>true</code>, this field returns null value.
Publish:
type: boolean
StateMachineLimitExceeded: {}
ValidationException: {}
TagValue:
type: string
minLength: 0
maxLength: 256
TagKey:
type: string
minLength: 1
maxLength: 128
LogDestinationList:
type: array
items:
$ref: '#/components/schemas/LogDestination'
InvalidLoggingConfiguration: {}
CreateStateMachineInput:
type: object
required:
- name
- definition
- roleArn
title: CreateStateMachineInput
properties:
name:
allOf:
- $ref: '#/components/schemas/Name'
- description: '<p>The name of the state machine. </p> <p>A name must <i>not</i> contain:</p> <ul> <li> <p>white space</p> </li> <li> <p>brackets <code>< > { } [ ]</code> </p> </li> <li> <p>wildcard characters <code>? *</code> </p> </li> <li> <p>special characters <code>" # % \ ^ | ~ ` $ & , ; : /</code> </p> </li> <li> <p>control characters (<code>U+0000-001F</code>, <code>U+007F-009F</code>)</p> </li> </ul> <p>To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.</p>'
definition:
allOf:
- $ref: '#/components/schemas/Definition'
- description: The Amazon States Language definition of the state machine. See <a href="https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html">Amazon States Language</a>.
roleArn:
allOf:
- $ref: '#/components/schemas/Arn'
- description: The Amazon Resource Name (ARN) of the IAM role to use for this state machine.
type:
allOf:
- $ref: '#/components/schemas/StateMachineType'
- description: Determines whether a Standard or Express state machine is created. The default is <code>STANDARD</code>. You cannot update the <code>type</code> of a state machine once it has been created.
loggingConfiguration:
allOf:
- $ref: '#/components/schemas/LoggingConfiguration'
- description: <p>Defines what execution history events are logged and where they are logged.</p> <note> <p>By default, the <code>level</code> is set to <code>OFF</code>. For more information see <a href="https://docs.aws.amazon.com/step-functions/latest/dg/cloudwatch-log-level.html">Log Levels</a> in the Step Functions User Guide.</p> </note>
tags:
allOf:
- $ref: '#/components/schemas/TagList'
- description: '<p>Tags to be added when creating a state machine.</p> <p>An array of key-value pairs. For more information, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Using Cost Allocation Tags</a> in the <i>Amazon Web Services Billing and Cost Management User Guide</i>, and <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_iam-tags.html">Controlling Access Using IAM Tags</a>.</p> <p>Tags may only contain Unicode letters, digits, white space, or these symbols: <code>_ . : / = + - @</code>.</p>'
tracingConfiguration:
allOf:
- $ref: '#/components/schemas/TracingConfiguration'
- description: Selects whether X-Ray tracing is enabled.
publish:
allOf:
- $ref: '#/components/schemas/Publish'
- description: Set to <code>true</code> to publish the first version of the state machine during creation. The default is <code>false</code>.
versionDescription:
allOf:
- $ref: '#/components/schemas/VersionDescription'
- description: Sets description about the state machine version. You can only set the description if the <code>publish</code> parameter is set to <code>true</code>. Otherwise, if you set <code>versionDescription</code>, but <code>publish</code> to <code>false</code>, this API action throws <code>ValidationException</code>.
InvalidDefinition: {}
StateMachineAlreadyExists: {}
TracingConfiguration:
type: object
properties:
enabled:
allOf:
- $ref: '#/components/schemas/Enabled'
- description: When set to <code>true</code>, X-Ray tracing is enabled.
description: 'Selects whether or not the state machine''s X-Ray tracing is enabled. Default is <code>false</code> '
InvalidTracingConfiguration: {}
LogLevel:
type: string
enum:
- ALL
- ERROR
- FATAL
- 'OFF'
VersionDescription:
type: string
maxLength: 256
format: password
Definition:
type: string
minLength: 1
maxLength: 1048576
format: password
Tag:
type: object
properties:
key:
allOf:
- $ref: '#/components/schemas/TagKey'
- description: The key of a tag.
value:
allOf:
- $ref: '#/components/schemas/TagValue'
- description: The value of a tag.
description: '<p>Tags are key-value pairs that can be associated with Step Functions state machines and activities.</p> <p>An array of key-value pairs. For more information, see <a href="https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html">Using Cost Allocation Tags</a> in the <i>Amazon Web Services Billing and Cost Management User Guide</i>, and <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_iam-tags.html">Controlling Access Using IAM Tags</a>.</p> <p>Tags may only contain Unicode letters, digits, white space, or these symbols: <code>_ . : / = + - @</code>.</p>'
LogDestination:
type: object
properties:
cloudWatchLogsLogGroup:
allOf:
- $ref: '#/components/schemas/CloudWatchLogsLogGroup'
- description: An object describing a CloudWatch log group. For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html">AWS::Logs::LogGroup</a> in the CloudFormation User Guide.
description: <p/>
parameters:
X-Amz-Security-Token:
name: X-Amz-Security-Token
in: header
schema:
type: string
required: false
X-Amz-Signature:
name: X-Amz-Signature
in: header
schema:
type: string
required: false
X-Amz-Credential:
name: X-Amz-Credential
in: header
schema:
type: string
required: false
X-Amz-Date:
name: X-Amz-Date
in: header
schema:
type: string
required: false
X-Amz-SignedHeaders:
name: X-Amz-SignedHeaders
in: header
schema:
type: string
required: false
X-Amz-Content-Sha256:
name: X-Amz-Content-Sha256
in: header
schema:
type: string
required: false
X-Amz-Algorithm:
name: X-Amz-Algorithm
in: header
schema:
type: string
required: false
securitySchemes:
hmac:
type: apiKey
name: Authorization
in: header
description: Amazon Signature authorization v4
x-amazon-apigateway-authtype: awsSigv4
externalDocs:
description: Amazon Web Services documentation
url: https://docs.aws.amazon.com/states/
x-hasEquivalentPaths: true