---
id: link-specification-read
title: "Read a link specification"
description: "Read a link specification"
sidebar_label: "Read a link specification"
hide_title: true
hide_table_of_contents: true
api: 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
sidebar_class_name: "get api-method"
info_path: docs/api/nullplatform-api
custom_edit_url: null
---

import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
import ParamsDetails from "@theme/ParamsDetails";
import RequestSchema from "@theme/RequestSchema";
import StatusCodes from "@theme/StatusCodes";
import OperationTabs from "@theme/OperationTabs";
import TabItem from "@theme/TabItem";
import Heading from "@theme/Heading";

<Heading
  as={"h1"}
  className={"openapi__heading"}
  children={"Read a link specification"}
>
</Heading>

<MethodEndpoint
  method={"get"}
  path={"/link_specification/{id}"}
  context={"endpoint"}
>
  
</MethodEndpoint>



Read a link specification

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

<ParamsDetails
  parameters={[{"schema":{"type":"string","format":"uuid"},"in":"query","name":"service_id","required":false,"description":"Service ID for dynamic additional properties"},{"schema":{"type":"string","format":"uuid"},"in":"query","name":"link_id","required":false,"description":"Link ID for dynamic additional properties"},{"schema":{"type":"integer"},"in":"query","name":"application_id","required":false,"description":"Application ID for dynamic additional properties"},{"schema":{"type":"integer"},"in":"query","name":"scope_id","required":false,"description":"Scope ID for dynamic additional properties"},{"schema":{"type":"string","pattern":"^(?:[a-zA-Z0-9_-]+:[a-zA-Z0-9_-]+(?:,[a-zA-Z0-9_-]+:[a-zA-Z0-9_-]+)*)?$"},"in":"query","name":"dimensions","required":false,"description":"Dimension key-value pairs used for dynamic additional properties"},{"schema":{"type":"string","format":"uuid"},"in":"query","name":"package_revision_id","required":false,"description":"Package revision to resolve the specification against. The response is the snapshot this revision pins instead of the live specification, and the request fails when the revision does not include the specification. Useful before an instance exists, for example to render a create form"},{"schema":{"title":"Id","type":"string","format":"uuid","description":"Unique identifier for the entity represented as a UUID"},"in":"path","name":"id","required":true}]}
>
  
</ParamsDetails>

<RequestSchema
  title={"Body"}
  body={undefined}
>
  
</RequestSchema>

<StatusCodes
  id={undefined}
  label={undefined}
  responses={{"2XX":{"description":"Object representing link specifications","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"title":"Id","type":"string","format":"uuid","description":"Unique identifier for the entity represented as a UUID"},"name":{"type":"string","minLength":1,"not":{"enum":[null]},"description":"Name of the entity. Must be a non-empty string and not equal to null"},"slug":{"type":"string","minLength":1,"not":{"enum":[null]},"description":"Slug of the specification. Automatically generated from \"name\""},"created_at":{"type":"string","format":"date"},"updated_at":{"type":"string","format":"date"},"visible_to":{"title":"Visibility","type":"array","description":"Array representing visibility settings for the entity. Specifies what/who can see this entity","items":{"title":"NRN","type":"string","pattern":"^organization=[0-9*]+(:account=[0-9*]+)?(:namespace=[0-9*]+)?(:application=[0-9*]+)?(:scope=[0-9*]+)?$","description":"Nullplatform Resource Name (NRN) representing a hierarchical identifier for nullplatform resources"}},"unique":{"type":"boolean","description":"Indicates whether the service can be linked only once by an instance of this link specification"},"specification_id":{"title":"Id","type":"string","format":"uuid","description":"Unique identifier for the entity represented as a UUID"},"dimensions":{"title":"Specification Dimension","type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"required":{"type":"boolean"},"values":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"required":["required"]}},"scopes":{"title":"Specification Scope","type":"object","properties":{"provider":{"type":"object","properties":{"values":{"type":"array","items":{"oneOf":[{"type":"string","enum":["AWS:SERVERLESS:LAMBDA","AWS:WEB_POOL:EC2INSTANCES","AWS:WEB_POOL:EKS","AZURE:WEB_POOL:AKS","GOOGLE:WEB_POOL:GKE","OCI:WEB_POOL:OKE"]},{"type":"string","format":"uuid","description":"UUID of a scope specification"}]},"minItems":1}},"additionalProperties":false,"required":["values"]}},"additionalProperties":false},"assignable_to":{"type":"string","enum":["any","dimension","scope"],"description":"Specifies if the service can be assigned to any entity, only dimensions, or only scopes."},"attributes":{"title":"Attribute","type":"object","properties":{"schema":{"type":"object","default":{},"description":"Specification of the attribute schema. Must be a valid JSON Schema"},"values":{"type":"object","default":{},"description":"Values associated with the attribute. Must validate against provided schema"}},"required":["schema","values"],"propertyNames":{"enum":["schema","values"],"description":"Allowed property names"},"additionalProperties":false,"description":"Object representing an attribute with a schema and associated values"},"selectors":{"title":"Selector","type":"object","properties":{"imported":{"type":"boolean","default":false},"provider":{"type":"string","minLength":1,"maxLength":100,"default":"any"},"category":{"type":"string","minLength":1,"maxLength":100,"default":"any"},"sub_category":{"type":"string","minLength":1,"maxLength":100,"default":"any"}},"additionalProperties":{"anyOf":[{"type":"string","minLength":1,"maxLength":100},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"description":"Key-value object representing instance selectors"},"use_default_actions":{"type":"boolean","description":"Specifies if the link specification should autogenerate its create, update, and delete actions from the attributes schema. Defaults to true for new specifications"},"use_default_naming":{"type":"boolean","description":"When true, the link name is optional and generated by nullplatform or taken from the schema's `name` property. When false, a caller-provided name is required. Defaults to true for new specifications"},"external":{"title":"External","type":"object","nullable":true,"properties":{"action":{"type":"string","minLength":1,"description":"Action to send to the agent for resolving external data"},"output_schema":{"type":"object","description":"JSON Schema to validate the agent response against"}},"additionalProperties":false,"required":["action","output_schema"],"description":"Configuration for resolving external context data via the nullplatform agent"},"external_resolution":{"type":"object","description":"Status of the external context resolution when the link specification was read","properties":{"status":{"type":"string","description":"Resolution outcome. One of: success, no_channel, agent_error, timeout, auth_error, service_unavailable, invalid_response"},"error":{"type":"string","description":"Human-readable error detail when status is not success"},"notification_id":{"type":"string","description":"ID of the notification sent to the agent. Present on error statuses to facilitate debugging"}},"required":["status"]}},"description":"Object representing link specifications","additionalProperties":false,"title":"LinkSpecification","example":{"name":"my-link-specification","specification_id":"eb0b880a-b7e4-42b8-98f9-40c262c59a23","unique":true,"dimensions":{"environment":{"required":true,"values":["production","staging"]}},"scopes":{"provider":{"values":["AWS:SERVERLESS:LAMBDA","AWS:WEB_POOL:EC2INSTANCES","uuid-of-a-specific-scope-specification"]}},"assignable_to":"any","attributes":{"schema":{"type":"object","properties":{"my_string_property":{"type":"string"},"my_number_property":{"type":"number","default":0}},"required":["my_string_property"]},"values":{}}}}}}},"4XX":{"description":"Format for representing errors during API interactions","content":{"application/json":{"schema":{"title":"Error","type":"object","properties":{"statusCode":{"type":"number","description":"HTTP status code indicating the error"},"code":{"type":"string","description":"Unique error code for reference and categorization"},"error":{"type":"string","description":"Short, human-readable error type or category"},"message":{"type":"string","description":"Detailed error message providing additional context"}},"description":"Format for representing errors during API interactions","required":["statusCode","error","message"]}}}},"5XX":{"description":"Format for representing errors during API interactions","content":{"application/json":{"schema":{"title":"Error","type":"object","properties":{"statusCode":{"type":"number","description":"HTTP status code indicating the error"},"code":{"type":"string","description":"Unique error code for reference and categorization"},"error":{"type":"string","description":"Short, human-readable error type or category"},"message":{"type":"string","description":"Detailed error message providing additional context"}},"description":"Format for representing errors during API interactions","required":["statusCode","error","message"]}}}}}}
>
  
</StatusCodes>


      