[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [Resource](https://evolu.dev/docs/api-reference/common/Resource) › createSharedResourceByKey

## Call Signature

```ts
function createSharedResourceByKey<K, T, D>(
  create: (key: K) => Task<T, never, D>,
): Task<SharedResourceByKey<K, T, D>, never, D>;
```

Defined in: [packages/common/src/Resource.ts:415](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Resource.ts#L415)

Creates [SharedResourceByKey](https://evolu.dev/docs/api-reference/common/Resource/interfaces/SharedResourceByKey).

The `create` Task is scoped to one key. It must not fail, matching
[createSharedResource](https://evolu.dev/docs/api-reference/common/Resource/functions/createSharedResource).

## Call Signature

```ts
function createSharedResourceByKey<K, T, D, L>(
  create: (key: K) => Task<T, never, D>,
  options: SharedResourceByKeyOptions<K, L>,
): Task<SharedResourceByKey<K, T, D>, never, D>;
```

Defined in: [packages/common/src/Resource.ts:422](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Resource.ts#L422)

Creates [SharedResourceByKey](https://evolu.dev/docs/api-reference/common/Resource/interfaces/SharedResourceByKey).

The `create` Task is scoped to one key. It must not fail, matching
[createSharedResource](https://evolu.dev/docs/api-reference/common/Resource/functions/createSharedResource).