# Read a concept

> One concept by name.

`GET https://api.refabric.com/v1/concepts/{name}`

**Authentication.** No key: the reference is the same for every reader and shows nothing of an account.

**Common use cases**

- Show what a word in a task's schema means.

**Conflicts.** An unknown name answers `404`.

**See also**

- `GET /v1/concepts`

Authentication: none — this operation needs no key.

## Path parameters

- `name` (string, _required_)

## Header parameters

- `Refabric-Version` (string, _optional_, format: date) — The contract version you wrote against (a date). Absent: the current version.
- `X-Request-ID` (string, _optional_, max length 128) — Your own id for this request; we answer it back under X-Client-Request-ID.

## Response 200

Done: the answer is in the body.

- `name` (string, _required_) — The concept's name.
  Example: `moodboard`
- `short` (string, _required_) — What it is, in one line.
  Example: `A set of images.`
- `long` (string, _required_) — What it is, in full.
  Example: `A moodboard collects …`
- `related` (array<string>, _required_) — Concepts next to it.
  Example: `["brand_kit"]`
- `produced_by` (array<string>, _required_) — The tasks that make it.
  Example: `["moodboard.create"]`
- `used_by` (array<string>, _required_) — The tasks that take it as an input.
  Example: `["image.generate"]`

```json
{
  "name": "moodboard",
  "short": "A set of images.",
  "long": "A moodboard collects …",
  "related": [
    "brand_kit"
  ],
  "produced_by": [
    "moodboard.create"
  ],
  "used_by": [
    "image.generate"
  ]
}
```

## Response 401

No valid API key was sent.

```json
{
  "error": {
    "code": "string",
    "type": "invalid_request",
    "message": "string",
    "field": "string",
    "retryable": true,
    "docs": "string",
    "request_id": "string",
    "ctx": {
      "required": 0,
      "balance": 0,
      "retry_after": 0
    },
    "input": null,
    "job_id": "string",
    "required": 0,
    "balance": 0
  }
}
```

## Response 403

Your key or your plan does not allow this.

```json
{
  "error": {
    "code": "string",
    "type": "invalid_request",
    "message": "string",
    "field": "string",
    "retryable": true,
    "docs": "string",
    "request_id": "string",
    "ctx": {
      "required": 0,
      "balance": 0,
      "retry_after": 0
    },
    "input": null,
    "job_id": "string",
    "required": 0,
    "balance": 0
  }
}
```

## Response 404

Nothing has this address.

```json
{
  "error": {
    "code": "string",
    "type": "invalid_request",
    "message": "string",
    "field": "string",
    "retryable": true,
    "docs": "string",
    "request_id": "string",
    "ctx": {
      "required": 0,
      "balance": 0,
      "retry_after": 0
    },
    "input": null,
    "job_id": "string",
    "required": 0,
    "balance": 0
  }
}
```

## Response 429

Too many requests: wait for the number of seconds in the Retry-After header.

```json
{
  "error": {
    "code": "string",
    "type": "invalid_request",
    "message": "string",
    "field": "string",
    "retryable": true,
    "docs": "string",
    "request_id": "string",
    "ctx": {
      "required": 0,
      "balance": 0,
      "retry_after": 0
    },
    "input": null,
    "job_id": "string",
    "required": 0,
    "balance": 0
  }
}
```

## Response 500

Something went wrong on our side; retry, and quote the request id if it keeps happening.

```json
{
  "error": {
    "code": "string",
    "type": "invalid_request",
    "message": "string",
    "field": "string",
    "retryable": true,
    "docs": "string",
    "request_id": "string",
    "ctx": {
      "required": 0,
      "balance": 0,
      "retry_after": 0
    },
    "input": null,
    "job_id": "string",
    "required": 0,
    "balance": 0
  }
}
```

## Request

```python
import requests

url = "https://api.refabric.com/v1/concepts/{name}"

response = requests.get(url)

print(response.json())
```

```javascript
const url = 'https://api.refabric.com/v1/concepts/{name}';
const options = {method: 'GET'};

try {
    const response = await fetch(url, options);
    const data = await response.json();
    console.log(data);
} catch (error) {
    console.error(error);
}
```

```bash
curl --request GET \
    --url https://api.refabric.com/v1/concepts/{name}
```
