# Sources

## List Sources

> Retrieve review source metadata available for project reviews.

```json
{"openapi":"3.0.3","info":{"title":"MGR Project API","version":"1.0.0"},"tags":[{"name":"Sources"}],"servers":[{"url":"https://api.moregoodreviews.com/project"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"http","scheme":"bearer","bearerFormat":"ApiKey"}},"schemas":{"SpriteClass":{"type":"string","maxLength":50,"pattern":"^(fab|fad|fak|fal|far|fas|fat)\\s+fa-[a-z0-9]+(?:-[a-z0-9]+)*$","description":"Font Awesome icon: two CSS class names as used with Font Awesome Web Fonts / classic CSS (not SVG/React props).\nFormat is a style prefix (`fab`, `fad`, `fak`, `fal`, `far`, `fas`, or `fat`), one ASCII space, then an icon slug\nstarting with `fa-` (lowercase letters and digits, hyphen-separated words). Examples: `fab fa-google`, `fas fa-star`.\nOn write, omit, send null, or whitespace-only to clear. Font Awesome 6 semantic pairs such as `fa-solid fa-star`\nare not accepted; use `fas fa-star` instead."}}},"paths":{"/sources":{"get":{"tags":["Sources"],"summary":"List Sources","operationId":"listSources","description":"Retrieve review source metadata available for project reviews.","responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","description":"Object containing response data for this resource.","properties":{"success":{"type":"boolean","description":"Indicates whether the request completed successfully."},"code":{"type":"integer","description":"Short code or application-level status code for this resource."},"data":{"type":"array","description":"Response payload for the request.","items":{"type":"object","description":"Response payload for the request.","properties":{"id":{"type":"integer","description":"Unique numeric identifier for this resource."},"uuid":{"type":"string","description":"Stable UUID for this resource."},"name":{"type":"string","description":"Display name for this resource."},"slug":{"type":"string","description":"URL-friendly identifier for this resource."},"sprite":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/SpriteClass"}]},"color":{"type":"string","description":"Hex color associated with the resource."},"icon":{"type":"string","description":"Icon for this resource.","nullable":true}}}}}}}}}}}}}}
```

## Create Source

> Create a review source with a display name. The slug is generated from the name. Optional color and sprite class apply when no custom icon image is configured for this source.

```json
{"openapi":"3.0.3","info":{"title":"MGR Project API","version":"1.0.0"},"tags":[{"name":"Sources"}],"servers":[{"url":"https://api.moregoodreviews.com/project"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"http","scheme":"bearer","bearerFormat":"ApiKey"}},"schemas":{"SpriteClass":{"type":"string","maxLength":50,"pattern":"^(fab|fad|fak|fal|far|fas|fat)\\s+fa-[a-z0-9]+(?:-[a-z0-9]+)*$","description":"Font Awesome icon: two CSS class names as used with Font Awesome Web Fonts / classic CSS (not SVG/React props).\nFormat is a style prefix (`fab`, `fad`, `fak`, `fal`, `far`, `fas`, or `fat`), one ASCII space, then an icon slug\nstarting with `fa-` (lowercase letters and digits, hyphen-separated words). Examples: `fab fa-google`, `fas fa-star`.\nOn write, omit, send null, or whitespace-only to clear. Font Awesome 6 semantic pairs such as `fa-solid fa-star`\nare not accepted; use `fas fa-star` instead."}}},"paths":{"/sources":{"post":{"tags":["Sources"],"summary":"Create Source","operationId":"createSource","description":"Create a review source with a display name. The slug is generated from the name. Optional color and sprite class apply when no custom icon image is configured for this source.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Request body for creating a review source.","properties":{"name":{"type":"string","maxLength":30,"description":"Display name for this source."},"color":{"type":"string","nullable":true,"maxLength":30,"description":"Hex color badge for this source."},"sprite":{"nullable":true,"description":"Font Awesome icon CSS classes for this source when no custom icon image is set.","allOf":[{"$ref":"#/components/schemas/SpriteClass"}]}},"required":["name"]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","description":"Object containing response data for this resource.","properties":{"success":{"type":"boolean","description":"Indicates whether the request completed successfully."},"code":{"type":"integer","description":"Short code or application-level status code for this resource."},"data":{"type":"object","description":"Review source metadata.","properties":{"id":{"type":"integer","description":"Unique numeric identifier for this resource."},"uuid":{"type":"string","description":"Stable UUID for this resource."},"name":{"type":"string","description":"Display name for this resource."},"slug":{"type":"string","description":"URL-friendly identifier for this resource."},"sprite":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/SpriteClass"}]},"color":{"type":"string","description":"Hex color associated with the resource."},"icon":{"type":"string","nullable":true,"description":"Icon for this resource."}}}}}}}}}}}}}
```

## Update Source

> Update display name, slug, color, or sprite class for an existing review source. Sending a sprite while a custom icon image is set returns an error.

```json
{"openapi":"3.0.3","info":{"title":"MGR Project API","version":"1.0.0"},"tags":[{"name":"Sources"}],"servers":[{"url":"https://api.moregoodreviews.com/project"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"http","scheme":"bearer","bearerFormat":"ApiKey"}},"schemas":{"SpriteClass":{"type":"string","maxLength":50,"pattern":"^(fab|fad|fak|fal|far|fas|fat)\\s+fa-[a-z0-9]+(?:-[a-z0-9]+)*$","description":"Font Awesome icon: two CSS class names as used with Font Awesome Web Fonts / classic CSS (not SVG/React props).\nFormat is a style prefix (`fab`, `fad`, `fak`, `fal`, `far`, `fas`, or `fat`), one ASCII space, then an icon slug\nstarting with `fa-` (lowercase letters and digits, hyphen-separated words). Examples: `fab fa-google`, `fas fa-star`.\nOn write, omit, send null, or whitespace-only to clear. Font Awesome 6 semantic pairs such as `fa-solid fa-star`\nare not accepted; use `fas fa-star` instead."}}},"paths":{"/sources/{id}":{"put":{"tags":["Sources"],"summary":"Update Source","operationId":"updateSource","description":"Update display name, slug, color, or sprite class for an existing review source. Sending a sprite while a custom icon image is set returns an error.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Request body for updating a review source.","properties":{"name":{"type":"string","maxLength":30,"description":"Display name for this source."},"slug":{"type":"string","nullable":true,"maxLength":30,"description":"URL-friendly identifier unique among sources in this project."},"color":{"type":"string","nullable":true,"maxLength":30,"description":"Hex color badge for this source."},"sprite":{"nullable":true,"description":"Font Awesome icon CSS classes for this source when no custom icon image is set.","allOf":[{"$ref":"#/components/schemas/SpriteClass"}]}},"required":["name"]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","description":"Object containing response data for this resource.","properties":{"success":{"type":"boolean","description":"Indicates whether the request completed successfully."},"code":{"type":"integer","description":"Short code or application-level status code for this resource."},"data":{"type":"object","description":"Review source metadata.","properties":{"id":{"type":"integer","description":"Unique numeric identifier for this resource."},"uuid":{"type":"string","description":"Stable UUID for this resource."},"name":{"type":"string","description":"Display name for this resource."},"slug":{"type":"string","description":"URL-friendly identifier for this resource."},"sprite":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/SpriteClass"}]},"color":{"type":"string","description":"Hex color associated with the resource."},"icon":{"type":"string","nullable":true,"description":"Icon for this resource."}}}}}}}}}}}}}
```

## Delete Source

> Soft-delete a review source when it is no longer used for ingestion or display.

```json
{"openapi":"3.0.3","info":{"title":"MGR Project API","version":"1.0.0"},"tags":[{"name":"Sources"}],"servers":[{"url":"https://api.moregoodreviews.com/project"}],"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"http","scheme":"bearer","bearerFormat":"ApiKey"}}},"paths":{"/sources/{id}":{"delete":{"tags":["Sources"],"summary":"Delete Source","operationId":"deleteSource","description":"Soft-delete a review source when it is no longer used for ingestion or display.","responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","description":"Object confirming the source was deleted.","properties":{"success":{"type":"boolean","description":"Indicates whether the request completed successfully."},"code":{"type":"integer","description":"Application-level status code returned by this API."}}}}}}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.moregoodreviews.com/platform/api-reference/sources.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
