HashiCorp Nomad ACL API
Endpoints for managing Access Control List policies, tokens, and authentication methods.
Endpoints for managing Access Control List policies, tokens, and authentication methods.
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/nomad-acl-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: HashiCorp Nomad HTTP ACL API
description: The HashiCorp Nomad HTTP API provides programmatic access to all Nomad functionality including job scheduling, allocation management, node operations, deployments, services, evaluations, namespaces, ACL policies, and cluster status. All API routes are prefixed with /v1/ and the default port is 4646. The API is RESTful, responds to standard HTTP verbs, and supports ACL token authentication via the X-Nomad-Token header or Bearer scheme.
version: 1.9.0
contact:
name: HashiCorp Support
url: https://support.hashicorp.com
termsOfService: https://www.hashicorp.com/terms-of-service
license:
name: Business Source License 1.1
url: https://github.com/hashicorp/nomad/blob/main/LICENSE
servers:
- url: http://localhost:4646/v1
description: Local Nomad Agent
security:
- nomadToken: []
- bearerAuth: []
tags:
- name: ACL
description: Endpoints for managing Access Control List policies, tokens, and authentication methods.
paths:
/acl/policies:
get:
operationId: listACLPolicies
summary: List ACL policies
description: Lists all ACL policies in the system.
tags:
- ACL
parameters:
- $ref: '#/components/parameters/PrefixParam'
responses:
'200':
description: A list of ACL policies
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ACLPolicyListStub'
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/InternalError'
/acl/policy/{policyName}:
get:
operationId: readACLPolicy
summary: Read an ACL policy
description: Returns the details of the specified ACL policy.
tags:
- ACL
parameters:
- name: policyName
in: path
required: true
description: The name of the ACL policy.
schema:
type: string
responses:
'200':
description: ACL policy details
content:
application/json:
schema:
$ref: '#/components/schemas/ACLPolicy'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalError'
put:
operationId: upsertACLPolicy
summary: Create or update an ACL policy
description: Creates a new ACL policy or updates an existing one.
tags:
- ACL
parameters:
- name: policyName
in: path
required: true
description: The name of the ACL policy.
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ACLPolicy'
responses:
'200':
description: ACL policy upserted
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/InternalError'
delete:
operationId: deleteACLPolicy
summary: Delete an ACL policy
description: Deletes the specified ACL policy.
tags:
- ACL
parameters:
- name: policyName
in: path
required: true
description: The name of the ACL policy.
schema:
type: string
responses:
'200':
description: ACL policy deleted
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalError'
/acl/tokens:
get:
operationId: listACLTokens
summary: List ACL tokens
description: Lists all ACL tokens in the system.
tags:
- ACL
parameters:
- $ref: '#/components/parameters/PrefixParam'
responses:
'200':
description: A list of ACL tokens
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ACLTokenListStub'
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/InternalError'
/acl/token:
put:
operationId: createACLToken
summary: Create an ACL token
description: Creates a new ACL token.
tags:
- ACL
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ACLToken'
responses:
'200':
description: ACL token created
content:
application/json:
schema:
$ref: '#/components/schemas/ACLToken'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/InternalError'
/acl/token/self:
get:
operationId: readSelfACLToken
summary: Read own ACL token
description: Returns the details of the ACL token used to make the request.
tags:
- ACL
responses:
'200':
description: ACL token details
content:
application/json:
schema:
$ref: '#/components/schemas/ACLToken'
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/InternalError'
/acl/token/{tokenAccessorID}:
get:
operationId: readACLToken
summary: Read an ACL token
description: Returns the details of the specified ACL token by accessor ID.
tags:
- ACL
parameters:
- name: tokenAccessorID
in: path
required: true
description: The accessor ID of the ACL token.
schema:
type: string
responses:
'200':
description: ACL token details
content:
application/json:
schema:
$ref: '#/components/schemas/ACLToken'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalError'
delete:
operationId: deleteACLToken
summary: Delete an ACL token
description: Deletes the specified ACL token.
tags:
- ACL
parameters:
- name: tokenAccessorID
in: path
required: true
description: The accessor ID of the ACL token.
schema:
type: string
responses:
'200':
description: ACL token deleted
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalError'
components:
parameters:
PrefixParam:
name: prefix
in: query
description: Specifies a string to filter results based on an ID prefix.
schema:
type: string
schemas:
ACLToken:
type: object
description: An ACL token used for authentication and authorization.
properties:
AccessorID:
type: string
description: The public accessor ID of the token.
SecretID:
type: string
description: The secret ID used for API authentication.
Name:
type: string
description: A human-readable name for the token.
Type:
type: string
description: The type of token.
enum:
- client
- management
Policies:
type: array
items:
type: string
description: A list of ACL policy names associated with the token.
Global:
type: boolean
description: If true, the token is replicated across all regions.
CreateTime:
type: string
format: date-time
ExpirationTime:
type: string
format: date-time
CreateIndex:
type: integer
ModifyIndex:
type: integer
ACLPolicy:
type: object
description: An ACL policy defining permissions for Nomad resources.
properties:
Name:
type: string
description: The name of the ACL policy.
Description:
type: string
description: A human-readable description of the policy.
Rules:
type: string
description: The HCL or JSON policy rules specification.
CreateIndex:
type: integer
ModifyIndex:
type: integer
ACLTokenListStub:
type: object
description: A stub representation of an ACL token.
properties:
AccessorID:
type: string
Name:
type: string
Type:
type: string
Policies:
type: array
items:
type: string
Global:
type: boolean
CreateTime:
type: string
format: date-time
ExpirationTime:
type: string
format: date-time
CreateIndex:
type: integer
ModifyIndex:
type: integer
ACLPolicyListStub:
type: object
description: A stub representation of an ACL policy.
properties:
Name:
type: string
Description:
type: string
CreateIndex:
type: integer
ModifyIndex:
type: integer
responses:
Unauthorized:
description: Unauthorized - missing or invalid ACL token
content:
application/json:
schema:
type: object
properties:
message:
type: string
InternalError:
description: Internal server error
content:
application/json:
schema:
type: object
properties:
message:
type: string
NotFound:
description: Resource not found
content:
application/json:
schema:
type: object
properties:
message:
type: string
BadRequest:
description: Bad request
content:
application/json:
schema:
type: object
properties:
message:
type: string
securitySchemes:
nomadToken:
type: apiKey
name: X-Nomad-Token
in: header
description: ACL token passed via the X-Nomad-Token request header.
bearerAuth:
type: http
scheme: bearer
description: ACL token passed via the Authorization header with Bearer scheme.
externalDocs:
description: Nomad HTTP API Documentation
url: https://developer.hashicorp.com/nomad/api-docs