---
id: scope-type-create
title: Create a scope type
description: Enable scope types for your applications.
sidebar_label: Create a scope type
hide_title: true
hide_table_of_contents: true
api: >-
  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
sidebar_class_name: post api-method
info_path: docs/api/nullplatform-api
custom_edit_url: null
canonical: 'https://docs.nullplatform.com/docs/api/scope-type-create'
---
<Heading
  as={"h1"}
  className={"openapi__heading"}
  children={"Create a scope type"}
>
</Heading>

<MethodEndpoint
  method={"post"}
  path={"/scope_type"}
  context={"endpoint"}
>

</MethodEndpoint>

Enable scope types for your applications.

<Heading
  id={"request"}
  as={"h2"}
  className={"openapi-tabs__heading"}
  children={"Request"}
>
</Heading>

<ParamsDetails
  parameters={undefined}
>

</ParamsDetails>

<RequestSchema
  title={"Body"}
  body={{"content":{"application/json":{"schema":{"properties":{"nrn":{"type":"string","description":"NRN (at or below) where the scope type applies.","example":"organization=1:account=2:namespace=3:application=4"},"type":{"type":"string","enum":["custom"],"description":"Defines the kind of scope you create.\n\nℹ️ **Note:**\n• **Agent-backed scopes:** Use `custom` to create a scope managed by your installed agent.  \n  This is the recommended and most flexible option for new scopes.","example":"custom"},"name":{"type":"string","minLength":1,"maxLength":60,"description":"The display name shown to developers to identify the scope type.","example":"EKS CronJob"},"description":{"type":"string","minLength":1,"maxLength":60,"description":"Short description of how the scope type works or what it does.","example":"Deploy periodic jobs in kubernetes"},"status":{"type":"string","enum":["active","inactive"],"default":"active","description":"Whether this scope type is enabled to be used.","example":"active"},"provider_type":{"type":"string","enum":["service"],"description":"Defines the source entity that implements the scope type.","example":"service"},"provider_id":{"type":"string","format":"uuid","description":"The ID of the provider that powers this scope.\n\nℹ️ **Note:**\n• **Agent-backed scopes:** The **UUID** of the scope specification you created.  \n  This UUID is returned when you define a new scope specification and acts as your provider ID.","example":"9e84a5c3-6c2e-4f15-90b0-1c67fd37f6e8"}},"title":"ScopeTypeRequest"}}}}}
>

</RequestSchema>

<StatusCodes
  id={undefined}
  label={undefined}
  responses={{"200":{"description":"The operation was successful.","content":{"application/json":{"schema":{"properties":{"id":{"type":"number","description":"The ID of the scope type.","example":12345},"nrn":{"type":"string","description":"NRN (at or below) where the the scope type applies.","example":"organization=1:account=2:namespace=3:application=4"},"type":{"type":"string","enum":["custom"],"description":"The type of scope type.","example":"custom"},"name":{"type":"string","description":"The name displayed to the developers to identify the type scope.","example":"EKS CronJob"},"description":{"type":"string","description":"Short description of how the scope type works or what it does.","example":"Deploy periodic jobs in kubernetes"},"status":{"type":"string","enum":["active","inactive"],"description":"Whether this scope type is enabled to be used.","example":"active"},"provider_type":{"type":"string","enum":["service"],"description":"Defines the source entity that implements the scope type.","example":"service"},"provider_id":{"type":"string","format":"uuid","description":"The ID of the provider that powers this scope.\n\nℹ️ **Note:**\n• **Agent-backed scopes:** The **UUID** of the scope specification you created.  \n  This UUID is returned when you define a new scope specification and acts as your provider ID.","example":"9e84a5c3-6c2e-4f15-90b0-1c67fd37f6e8"},"available":{"type":"boolean","description":"Whether the scope type can be used for the requested NRN. Only present when `include` contains `available`.","example":true},"capabilities":{"type":"object","description":"Capabilities supported by this scope type. Only present when `include` contains `capabilities`.","example":{"asset_type":"docker-image","custom_domains":{"enabled":true}}},"parameters":{"type":"object","description":"The JSON schema of the values a scope of this type accepts, under `schema`. Only present when `include` contains `capabilities`."},"created_at":{"type":"string","format":"date-time","description":"The ISO-8601 UTC timestamp of when the scope type was created.","example":"2025-01-02T00:00:00Z"},"updated_at":{"type":"string","format":"date-time","description":"The ISO-8601 UTC timestamp of when the scope type was last updated.","example":"2025-01-02T00:00:00Z"}},"title":"ScopeTypeResponse"}}}},"4XX":{"description":"The request couldn't be processed. For example, a parameter is invalid, the resource doesn't exist, or you don't have permission. The body is a problem details object (RFC 9457).","content":{"application/problem+json":{"schema":{"type":"object","description":"Describes what went wrong, following the RFC 9457 problem details format.","required":["type","title","status"],"properties":{"type":{"type":"string","description":"A URI that identifies the kind of problem. It's an identifier, not a link, and it's the same every time this problem occurs.","example":"urn:nullplatform:error:routes-helper:invalid-params"},"title":{"type":"string","description":"A short, human-readable summary of the problem.","example":"There are invalid parameters on the request"},"status":{"type":"integer","description":"The HTTP status code of the response.","example":400},"code":{"type":"string","description":"A stable, machine-readable error code. Use it to handle specific errors in your integrations.","example":"ROUTES_HELPER.INVALID_PARAMS"},"detail":{"type":"string","nullable":true,"description":"More information about what went wrong in this request, when available.","example":null},"errors":{"type":"array","description":"One entry per invalid field or parameter. Only present on validation errors.","items":{"type":"object","properties":{"field":{"type":"string","description":"The name of the invalid field or parameter.","example":"application_id"},"in":{"type":"string","description":"Where the field was sent: `body`, `query`, or `params` (path parameters).","example":"query"},"issue":{"type":"string","description":"What's wrong with the field, such as `required` or `invalid`.","example":"invalid"},"value":{"description":"The value that was sent, when relevant.","example":"not-a-number"},"message":{"type":"string","description":"A human-readable explanation of the issue."}}}},"message":{"type":"string","deprecated":true,"description":"Same value as `title`, kept for backward compatibility. Use `title` or `code` instead.","example":"There are invalid parameters on the request"},"traceId":{"type":"string","description":"An identifier for this request, when available. Include it when you contact nullplatform support."}}}}}},"5XX":{"description":"Something went wrong on nullplatform's side. The body is a problem details object (RFC 9457).","content":{"application/problem+json":{"schema":{"type":"object","description":"Describes what went wrong, following the RFC 9457 problem details format.","required":["type","title","status"],"properties":{"type":{"type":"string","description":"A URI that identifies the kind of problem. It's an identifier, not a link, and it's the same every time this problem occurs.","example":"about:blank"},"title":{"type":"string","description":"A short, human-readable summary of the problem.","example":"Oops.. there was an internal error"},"status":{"type":"integer","description":"The HTTP status code of the response.","example":500},"code":{"type":"string","description":"A stable, machine-readable error code. Use it to handle specific errors in your integrations."},"detail":{"type":"string","nullable":true,"description":"More information about what went wrong in this request, when available.","example":null},"message":{"type":"string","deprecated":true,"description":"Same value as `title`, kept for backward compatibility. Use `title` or `code` instead.","example":"Oops.. there was an internal error"},"traceId":{"type":"string","description":"An identifier for this request, when available. Include it when you contact nullplatform support."}}}}}}}}
>

</StatusCodes>

