Amazon Cloud Map Instances API

Operations for registering and discovering service instances

GitHub OpenAPI

Operations 5

POST /#DeregisterInstance Deregister Instance #
POST /#GetInstance Get Instance #
POST /#ListInstances List Instances #
POST /#RegisterInstance Register Instance #
POST /#DiscoverInstances Discover Instances #

Documentation

Specifications

Schemas & Data

Other Resources

Work with this as data

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-cloud-map:amazon-cloud-map-instances-api"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

amazon-cloud-map-instances-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: AWS Cloud Map Instances API
  version: '2017-03-14'
  description: Generated from AWS's published Smithy model for AWS Cloud Map. 5 operation(s).
  contact:
    name: Amazon Web Services
    url: https://aws.amazon.com/contact-us/
  license:
    name: Apache 2.0
    identifier: Apache-2.0
    url: https://github.com/aws/api-models-aws/blob/main/LICENSE
servers:
- url: https://servicediscovery.{region}.amazonaws.com
  variables:
    region:
      default: us-east-1
security:
- sigv4: []
paths:
  /#DeregisterInstance:
    post:
      operationId: DeregisterInstance
      summary: Deregister Instance
      description: Deletes the Amazon Route 53 DNS records and health check, if any, that Cloud Map created for the specified
        instance.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/DeregisterInstanceResponse'
              example:
                OperationId: 4yejorelbukcjzpnr6tlmrghsjwpngf4-k98rnaiq
        '409':
          description: DuplicateRequest; ResourceInUse
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/DuplicateRequest'
        '404':
          description: InstanceNotFound; ServiceNotFound
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InstanceNotFound'
        '400':
          description: InvalidInput
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InvalidInput'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - Route53AutoNaming_v20170314.DeregisterInstance
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/DeregisterInstanceRequest'
            example:
              ServiceId: srv-p5zdwlg5uvvzjita
              InstanceId: myservice-53
      tags:
      - Instances
  /#GetInstance:
    post:
      operationId: GetInstance
      summary: Get Instance
      description: Gets information about a specified instance.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/GetInstanceResponse'
              example:
                ResourceOwner: '123456789012'
                Instance:
                  Id: i-abcd1234
                  Attributes:
                    AWS_INSTANCE_IPV4: 192.0.2.44
                    AWS_INSTANCE_PORT: '80'
                    color: green
                    region: us-west-2
                    stage: beta
                  CreatedByAccount: '123456789012'
        '404':
          description: InstanceNotFound; ServiceNotFound
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InstanceNotFound'
        '400':
          description: InvalidInput
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InvalidInput'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - Route53AutoNaming_v20170314.GetInstance
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/GetInstanceRequest'
            example:
              InstanceId: i-abcd1234
              ServiceId: srv-e4anhexample0004
      tags:
      - Instances
  /#ListInstances:
    post:
      operationId: ListInstances
      summary: List Instances
      description: Lists summary information about the instances that you registered by using a specified service.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/ListInstancesResponse'
              example:
                Instances:
                - Attributes:
                    AWS_INSTANCE_IPV4: 172.2.1.3
                    AWS_INSTANCE_PORT: '808'
                  Id: i-06bdabbae60f65a4e
        '400':
          description: InvalidInput
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InvalidInput'
        '404':
          description: ServiceNotFound
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/ServiceNotFound'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - Route53AutoNaming_v20170314.ListInstances
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/ListInstancesRequest'
            example:
              ServiceId: srv-qzpwvt2tfqcegapy
      tags:
      - Instances
  /#RegisterInstance:
    post:
      operationId: RegisterInstance
      summary: Register Instance
      description: 'Creates or updates one or more records and, optionally, creates a health check based on the settings in
        a specified service. When you submit a RegisterInstance request, the following occurs: For each DNS record that you
        define in the service that''s specified by ServiceId, a record is created or updated in the hosted zone that''s associated
        with the corresponding namespace. If the service includes HealthCheckConfig, a health check is created based on the
        settings in the health check configuration. The health check, if any, is associated with each of the new or updated
        records. One RegisterInstance request must complete before you can submit another request and specify the same service
        ID and instance ID. For more information, see CreateService. When Cloud Map receives a DNS query for the specified
        DNS name, it returns the applicable value: If the health check is healthy: returns all the records If the health check
        is unhealthy: returns the applicable value for the last healthy instance If you didn''t specify a health check configuration:
        returns all the records For the current quota on the number of instances that you can register using the same namespace
        and using the same service, s'
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/RegisterInstanceResponse'
              example:
                OperationId: 4yejorelbukcjzpnr6tlmrghsjwpngf4-k95yg2u7
        '409':
          description: DuplicateRequest; ResourceInUse
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/DuplicateRequest'
        '400':
          description: InvalidInput; ResourceLimitExceeded
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InvalidInput'
        '404':
          description: ServiceNotFound
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/ServiceNotFound'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - Route53AutoNaming_v20170314.RegisterInstance
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/RegisterInstanceRequest'
            example:
              ServiceId: srv-p5zdwlg5uvvzjita
              InstanceId: myservice-53
              Attributes:
                AWS_INSTANCE_IPV4: 172.2.1.3
                AWS_INSTANCE_PORT: '808'
              CreatorRequestId: 7a48a98a-72e6-4849-bfa7-1a458e030d7b
      tags:
      - Instances
  /#DiscoverInstances:
    post:
      operationId: DiscoverInstances
      summary: Discover Instances
      description: Discovers registered instances for a specified namespace and service. You can use DiscoverInstances to
        discover instances for any type of namespace. DiscoverInstances returns a randomized list of instances allowing customers
        to distribute traffic evenly across instances. For public and private DNS namespaces, you can also use DNS queries
        to discover instances.
      responses:
        '200':
          description: Success
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/DiscoverInstancesResponse'
              example:
                Instances:
                - InstanceId: i-abcd1234xmpl5678
                  NamespaceName: example-shared-namespace
                  ServiceName: shared-service
                  HealthStatus: HEALTHY
                  Attributes:
                    AWS_INSTANCE_IPV4: 192.0.2.44
                    AWS_INSTANCE_PORT: '80'
                - InstanceId: i-efgh5678xmpl9012
                  NamespaceName: example-shared-namespace
                  ServiceName: shared-service
                  HealthStatus: HEALTHY
                  Attributes:
                    AWS_INSTANCE_IPV4: 192.0.2.45
                    AWS_INSTANCE_PORT: '80'
        '400':
          description: InvalidInput
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/InvalidInput'
        '404':
          description: NamespaceNotFound; ServiceNotFound
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/NamespaceNotFound'
        '429':
          description: RequestLimitExceeded
          content:
            application/x-amz-json-1.1:
              schema:
                $ref: '#/components/schemas/RequestLimitExceeded'
      parameters:
      - name: X-Amz-Target
        in: header
        required: true
        schema:
          type: string
          enum:
          - Route53AutoNaming_v20170314.DiscoverInstances
      requestBody:
        required: true
        content:
          application/x-amz-json-1.1:
            schema:
              $ref: '#/components/schemas/DiscoverInstancesRequest'
            example:
              NamespaceName: example-shared-namespace
              ServiceName: shared-namespace-service
              OwnerAccount: '123456789012'
      tags:
      - Instances
components:
  securitySchemes:
    sigv4:
      type: apiKey
      in: header
      name: Authorization
      description: AWS Signature Version 4. The Authorization header carries an AWS4-HMAC-SHA256 signature over the canonical
        request, with X-Amz-Date (and X-Amz-Security-Token for temporary credentials). Not a bearer token.
      x-aws-sigv4:
        signingName: servicediscovery
  schemas:
    DeregisterInstanceRequest:
      type: object
      properties:
        ServiceId:
          type: string
          description: The ID or Amazon Resource Name (ARN) of the service that the instance is associated with. If the namespace
            associated with the service is shared with your account, specify the service ARN. For more information about shared
            namespaces, see Cross-account Cloud Map namespace sharing in the Cloud Map Developer Guide.
        InstanceId:
          type: string
          description: The value that you specified for Id in the RegisterInstance request.
      required:
      - ServiceId
      - InstanceId
    DeregisterInstanceResponse:
      type: object
      properties:
        OperationId:
          type: string
          description: A value that you can use to determine whether the request completed successfully. To get the status
            of the operation, see GetOperation.
    DiscoverInstancesRequest:
      type: object
      properties:
        NamespaceName:
          type: string
          description: The HttpName name of the namespace. The HttpName is found in the HttpProperties member of the Properties
            member of the namespace. In most cases, Name and HttpName match. However, if you reuse Name for namespace creation,
            a generated hash is added to HttpName to distinguish the two.
        ServiceName:
          type: string
          description: The name of the service that you specified when you registered the instance.
        MaxResults:
          type: integer
          description: The maximum number of instances that you want Cloud Map to return in the response to a DiscoverInstances
            request. If you don't specify a value for MaxResults, Cloud Map returns up to 100 instances.
        QueryParameters:
          type: object
          additionalProperties:
            type: string
          description: Filters to scope the results based on custom attributes for the instance (for example, {version=v1,
            az=1a}). Only instances that match all the specified key-value pairs are returned.
        OptionalParameters:
          type: object
          additionalProperties:
            type: string
          description: Opportunistic filters to scope the results based on custom attributes. If there are instances that
            match both the filters specified in both the QueryParameters parameter and this parameter, all of these instances
            are returned. Otherwise, the filters are ignored, and only instances that match the filters that are specified
            in the QueryParameters parameter are returned.
        HealthStatus:
          type: string
          enum:
          - HEALTHY
          - UNHEALTHY
          - ALL
          - HEALTHY_OR_ELSE_ALL
          description: The health status of the instances that you want to discover. This parameter is ignored for services
            that don't have a health check configured, and all instances are returned. HEALTHY Returns healthy instances.
            UNHEALTHY Returns unhealthy instances. ALL Returns all instances. HEALTHY_OR_ELSE_ALL Returns healthy instances,
            unless none are reporting a healthy state. In that case, return all instances. This is also called failing open.
        OwnerAccount:
          type: string
          description: The ID of the Amazon Web Services account that owns the namespace associated with the instance, as
            specified in the namespace ResourceOwner field. For instances associated with namespaces that are shared with
            your account, you must specify an OwnerAccount.
      required:
      - NamespaceName
      - ServiceName
    DiscoverInstancesResponse:
      type: object
      properties:
        Instances:
          type: array
          items:
            $ref: '#/components/schemas/HttpInstanceSummary'
          description: A complex type that contains one HttpInstanceSummary for each registered instance.
        InstancesRevision:
          type: integer
          description: The increasing revision associated to the response Instances list. If a new instance is registered
            or deregistered, the InstancesRevision updates. The health status updates don't update InstancesRevision.
    DuplicateRequest:
      type: object
      properties:
        Message:
          type: string
        DuplicateOperationId:
          type: string
          description: The ID of the operation that's already in progress.
    GetInstanceRequest:
      type: object
      properties:
        ServiceId:
          type: string
          description: The ID or Amazon Resource Name (ARN) of the service that the instance is associated with. For services
            created in a shared namespace, specify the service ARN. For more information about shared namespaces, see Cross-account
            Cloud Map namespace sharing in the Cloud Map Developer Guide.
        InstanceId:
          type: string
          description: The ID of the instance that you want to get information about.
      required:
      - ServiceId
      - InstanceId
    GetInstanceResponse:
      type: object
      properties:
        ResourceOwner:
          type: string
          description: The ID of the Amazon Web Services account that created the namespace that contains the service that
            the instance is associated with. If this isn't your account ID, it's the ID of the account that shared the namespace
            with your account.
        Instance:
          $ref: '#/components/schemas/Instance'
    HttpInstanceSummary:
      type: object
      properties:
        InstanceId:
          type: string
          description: The ID of an instance that matches the values that you specified in the request.
        NamespaceName:
          type: string
          description: The HttpName name of the namespace. It's found in the HttpProperties member of the Properties member
            of the namespace.
        ServiceName:
          type: string
          description: The name of the service that you specified when you registered the instance.
        HealthStatus:
          type: string
          enum:
          - HEALTHY
          - UNHEALTHY
          - UNKNOWN
          description: If you configured health checking in the service, the current health status of the service instance.
        Attributes:
          type: object
          additionalProperties:
            type: string
          description: If you included any attributes when you registered the instance, the values of those attributes.
    Instance:
      type: object
      properties:
        Id:
          type: string
          description: 'An identifier that you want to associate with the instance. Note the following: If the service that''s
            specified by ServiceId includes settings for an SRV record, the value of InstanceId is automatically included
            as part of the value for the SRV record. For more information, see DnsRecord > Type. You can use this value to
            update an existing instance. To register a new instance, you must specify a value that''s unique among instances
            that you register by using the same service. If you specify an existing InstanceId and ServiceId, Cloud Map updates
            the existing DNS records. If there''s also an exis'
        CreatorRequestId:
          type: string
          description: A unique string that identifies the request and that allows failed RegisterInstance requests to be
            retried without the risk of executing the operation twice. You must use a unique CreatorRequestId string every
            time you submit a RegisterInstance request if you're registering additional instances for the same namespace and
            service. CreatorRequestId can be any unique string (for example, a date/time stamp).
        Attributes:
          type: object
          additionalProperties:
            type: string
          description: 'A string map that contains the following information for the service that you specify in ServiceId:
            The attributes that apply to the records that are defined in the service. For each attribute, the applicable value.
            Do not include sensitive information in the attributes if the namespace is discoverable by public DNS queries.
            Supported attribute keys include the following: AWS_ALIAS_DNS_NAME If you want Cloud Map to create a Route 53
            alias record that routes traffic to an Elastic Load Balancing load balancer, specify the DNS name that''s associated
            with the load balancer. For information about h'
        CreatedByAccount:
          type: string
          description: The ID of the Amazon Web Services account that registered the instance. If this isn't your account
            ID, it's the ID of the account that shared the namespace with your account or the ID of another account with which
            the namespace has been shared. For more information about shared namespaces, see Cross-account Cloud Map namespace
            sharing in the Cloud Map Developer Guide.
      required:
      - Id
    InstanceNotFound:
      type: object
      properties:
        Message:
          type: string
    InstanceSummary:
      type: object
      properties:
        Id:
          type: string
          description: The ID for an instance that you created by using a specified service.
        Attributes:
          type: object
          additionalProperties:
            type: string
          description: 'A string map that contains the following information: The attributes that are associated with the
            instance. For each attribute, the applicable value. Supported attribute keys include the following: AWS_ALIAS_DNS_NAME
            For an alias record that routes traffic to an Elastic Load Balancing load balancer, the DNS name that''s associated
            with the load balancer. AWS_EC2_INSTANCE_ID (HTTP namespaces only) The Amazon EC2 instance ID for the instance.
            When the AWS_EC2_INSTANCE_ID attribute is specified, then the AWS_INSTANCE_IPV4 attribute contains the primary
            private IPv4 address. AWS_INIT_HEALTH_STATUS '
        CreatedByAccount:
          type: string
          description: The ID of the Amazon Web Services account that registered the instance. If this isn't your account
            ID, it's the ID of the account that shared the namespace with your account or the ID of another account with which
            the namespace has been shared. For more information about shared namespaces, see Cross-account Cloud Map namespace
            sharing in the Cloud Map Developer Guide.
    InvalidInput:
      type: object
      properties:
        Message:
          type: string
    ListInstancesRequest:
      type: object
      properties:
        ServiceId:
          type: string
          description: The ID or Amazon Resource Name (ARN) of the service that you want to list instances for. For services
            created in a shared namespace, specify the service ARN. For more information about shared namespaces, see Cross-account
            Cloud Map namespace sharing in the Cloud Map Developer Guide.
        NextToken:
          type: string
          description: For the first ListInstances request, omit this value. If more than MaxResults instances match the specified
            criteria, you can submit another ListInstances request to get the next group of results. Specify the value of
            NextToken from the previous response in the next request.
        MaxResults:
          type: integer
          description: The maximum number of instances that you want Cloud Map to return in the response to a ListInstances
            request. If you don't specify a value for MaxResults, Cloud Map returns up to 100 instances.
      required:
      - ServiceId
    ListInstancesResponse:
      type: object
      properties:
        ResourceOwner:
          type: string
          description: The ID of the Amazon Web Services account that created the namespace that contains the specified service.
            If this isn't your account ID, it's the ID of the account that shared the namespace with your account.
        Instances:
          type: array
          items:
            $ref: '#/components/schemas/InstanceSummary'
          description: Summary information about the instances that are associated with the specified service.
        NextToken:
          type: string
          description: If more than MaxResults instances match the specified criteria, you can submit another ListInstances
            request to get the next group of results. Specify the value of NextToken from the previous response in the next
            request.
    NamespaceNotFound:
      type: object
      properties:
        Message:
          type: string
    RegisterInstanceRequest:
      type: object
      properties:
        ServiceId:
          type: string
          description: The ID or Amazon Resource Name (ARN) of the service that you want to use for settings for the instance.
            For services created in a shared namespace, specify the service ARN. For more information about shared namespaces,
            see Cross-account Cloud Map namespace sharing in the Cloud Map Developer Guide.
        InstanceId:
          type: string
          description: 'An identifier that you want to associate with the instance. Note the following: If the service that''s
            specified by ServiceId includes settings for an SRV record, the value of InstanceId is automatically included
            as part of the value for the SRV record. For more information, see DnsRecord > Type. You can use this value to
            update an existing instance. To register a new instance, you must specify a value that''s unique among instances
            that you register by using the same service. If you specify an existing InstanceId and ServiceId, Cloud Map updates
            the existing DNS records, if any. If there''s also'
        CreatorRequestId:
          type: string
          description: A unique string that identifies the request and that allows failed RegisterInstance requests to be
            retried without the risk of executing the operation twice. You must use a unique CreatorRequestId string every
            time you submit a RegisterInstance request if you're registering additional instances for the same namespace and
            service. CreatorRequestId can be any unique string (for example, a date/time stamp).
        Attributes:
          type: object
          additionalProperties:
            type: string
          description: 'A string map that contains the following information for the service that you specify in ServiceId:
            The attributes that apply to the records that are defined in the service. For each attribute, the applicable value.
            Do not include sensitive information in the attributes if the namespace is discoverable by public DNS queries.
            The following are the supported attribute keys. AWS_ALIAS_DNS_NAME If you want Cloud Map to create an Amazon Route
            53 alias record that routes traffic to an Elastic Load Balancing load balancer, specify the DNS name that''s associated
            with the load balancer. For information'
      required:
      - ServiceId
      - InstanceId
      - Attributes
    RegisterInstanceResponse:
      type: object
      properties:
        OperationId:
          type: string
          description: A value that you can use to determine whether the request completed successfully. To get the status
            of the operation, see GetOperation.
    RequestLimitExceeded:
      type: object
      properties:
        Message:
          type: string
    ServiceNotFound:
      type: object
      properties:
        Message:
          type: string
x-provenance:
  method: harvested
  publisher: Amazon Web Services
  source: https://raw.githubusercontent.com/aws/api-models-aws/3cd98287b471c106254abd89279cc87308d38bfd/models/servicediscovery/service/2017-03-14/servicediscovery-2017-03-14.json
  note: converted by smithy-to-openapi.py from AWS's Smithy model (roadmap#1001)