---
title: "Get solution by ID"
method: GET
path: "/v1/projects/{project_id}/solutions/{id}"
tags: ["Solution"]
---

# Get solution by ID

`GET /v1/projects/{project_id}/solutions/{id}`

## Request

- Base URL: `https://api.telerivet.com`
- URL: `https://api.telerivet.com/v1/projects/{project_id}/solutions/{id}`
- Auth: one of:
  - HTTP basic
  - OAuth 2 (authorization code, authorization URL `https://telerivet.com/oauth/authorize`, token URL `https://api.telerivet.com/oauth/token`)

Retrieves the solution with the given ID, including summaries of up to 50 of each of the services, data tables, contact groups, campaigns, message templates, and dashboards that belong to it. If the `truncated` property lists a member type, use the corresponding query method with the `solution_id` filter (e.g. project.queryServices) to retrieve all members of that type.

## Path parameters

- `project_id` string, required
- `id` string, required

## Response `200`

Successful response

- Solution: Represents a solution: a named group of related services, data tables, contact groups, campaigns, message templates, and dashboards within a project that together implement a particular use case (for example, a "Text to Win" contest). Solutions make it easy to find all of the objects that were created for a particular purpose. A solution may optionally be an instance of a solution template from Telerivet's Skillbook (see `skillbook_slug`). To add an object to a solution, set its `solution_id` field when creating or updating the object. Each object can belong to at most one solution.
  - `id` string: ID of the solution
  - `name` string: Name of the solution, which must be unique within the project
  - `description` string, nullable: Description of the solution
  - `skillbook_slug` string, nullable: Slug of the Skillbook solution template that this solution is an instance of, if applicable
  - `services` object[]: Summaries of up to 50 services that belong to this solution. Only returned when retrieving a single solution by ID; if `truncated` includes `services`, the solution has more services than are listed here.
    - `id` string: ID of the service
    - `name` string: Name of the service
    - `service_type` string: Type of the service
    - `active` boolean: Whether the service is active
    - `url` string: URL to the service in the Telerivet web app
  - `tables` object[]: Summaries of up to 50 data tables that belong to this solution. Only returned when retrieving a single solution by ID; if `truncated` includes `tables`, the solution has more data tables than are listed here.
    - `id` string: ID of the data table
    - `name` string: Name of the data table
    - `url` string: URL to the data table in the Telerivet web app
  - `groups` object[]: Summaries of up to 50 contact groups that belong to this solution. Only returned when retrieving a single solution by ID; if `truncated` includes `groups`, the solution has more contact groups than are listed here.
    - `id` string: ID of the group
    - `name` string: Name of the group
    - `dynamic` boolean: Whether this is a dynamic or normal group
    - `url` string: URL to the group in the Telerivet web app
  - `campaigns` object[]: Summaries of up to 50 campaigns that belong to this solution. Only returned when retrieving a single solution by ID; if `truncated` includes `campaigns`, the solution has more campaigns than are listed here.
    - `id` string: ID of the campaign
    - `name` string: Name of the campaign
    - `campaign_type` string: Type of the campaign
    - `status` string: Current status of the campaign
    - `url` string: URL to the campaign in the Telerivet web app
  - `message_templates` object[]: Summaries of up to 50 message templates that belong to this solution. Only returned when retrieving a single solution by ID; if `truncated` includes `message_templates`, the solution has more message templates than are listed here.
    - `id` string: ID of the message template
    - `name` string: Name of the message template
    - `readonly` boolean: True if the template was synchronized from a WhatsApp Business Account and cannot be modified via the API
  - `dashboards` object[]: Summaries of up to 50 dashboards that belong to this solution. Only returned when retrieving a single solution by ID; if `truncated` includes `dashboards`, the solution has more dashboards than are listed here.
    - `id` string: ID of the dashboard
    - `name` string: Name of the dashboard
    - `url` string: URL to the dashboard in the Telerivet web app
  - `truncated` string[]: List of member types (`services`, `tables`, `groups`, `campaigns`, `message_templates`, `dashboards`) for which the solution has more members than are included in this response (more than 50). To list all members of a type, query that type with the `solution_id` filter (e.g. project.queryServices). Only returned when retrieving a single solution by ID.
  - `vars` object: Custom variables stored for this solution. Variable names may be up to 32 characters in length and can contain the characters a-z, A-Z, 0-9, and _. Values may be strings, numbers, or boolean (true/false). String values may be up to 4096 bytes in length when encoded as UTF-8. Up to 100 variables are supported per object. Setting a variable to null will delete the variable.
  - `time_created` integer: Time the solution was created in Telerivet
  - `time_updated` integer: Time the solution was last updated in Telerivet
  - `project_id` string: ID of the project this solution belongs to

## Other responses

- `400`: Invalid request parameters
- `401`: Invalid or missing API key or Bearer token
- `404`: Resource not found

---

[API](https://skmtc.dev/telerivet/apis/telerivet-api.md) · [All operations](https://skmtc.dev/telerivet/apis/telerivet-api/llms.txt) · [OpenAPI document](https://skmtc.dev/telerivet/apis/telerivet-api/revisions/4e14b1c8d917?raw)
