GET https://emailoctopus.com/api/1.6/campaigns/:campaignId

Get details of a campaign.

### Parameters
| Parameters     |
|----------------|
| api_key (string) | Your API key. |

### 200 (success) returns
|                  |                  |
|------------------|------------------|
| id (string)      | The identifier of the campaign. |
| status (string)  | The status of the campaign (DRAFT/SENDING/SENT/ERROR). |
| name (string)    | The name of the campaign. |
| subject (string) | The subject of the campaign. |
| to (array)      | The ids of the lists the campaign was sent to. |
| from (struct)    | The sender of the campaign:
|                  |                  |
| name (string)    | The name the campaign was sent from. |
| email_address (string) | The email address the campaign was sent from. |
| content (struct) | The content of the campaign:
|                  |                  |
| html (string)    | The campaign's HTML content. |
| plain_text (string) | The campaign's plain text content. |
| created_at (string) | When the campaign was created, in ISO 8601 format. |
| sent_at (string) | When the campaign was sent, in ISO 8601 format. |

### Non-200 (error) returns
|                   |                   |
|-------------------|-------------------|
| code (string)     | The error code. |
| message (string)  | A description of the error. |

### Method-specific error codes
|                   |
|-------------------|
| CAMPAIGN_NOT_FOUND | The campaign could not be found. |

### API-wide error codes
|                   |
|-------------------|
| INVALID_PARAMETERS | Parameters are missing or invalid. |
| API_KEY_INVALID   | Your API key is invalid. |
| UNAUTHORISED      | You're not authorised to perform that action. |
| NOT_FOUND         | The requested endpoint does not exist. |
| UNKNOWN           | An unknown error has occurred. |

### Example request
|                              |
|------------------------------|
| /api/1.6/campaigns/00000000-0000-0000-0000-000000000000?api_key=00000000-0000-0000-0000-000000000000 |

### Example response
```js
{
    "id": "00000000-0000-0000-0000-000000000000",
    "status": "SENT",
    "name": "Foo",
    "subject": "Bar",
    "to": [
        "00000000-0000-0000-0000-000000000001",
        "00000000-0000-0000-0000-000000000002"
    ],
    "from": {
        "name": "John Doe",
        "email_address": "john.doe@gmail.com"
    },
    "content": {
        "html": "<html>Foo Bar<html>",
        "plain_text": "Foo Bar"
    },
    "created_at": "2026-06-13T08:27:41+00:00",
    "sent_at": "2026-06-14T08:27:41+00:00"
}
```

### Code sample
#### cURL
```bash
curl -X GET \
    https://emailoctopus.com/api/1.6/campaigns/00000000-0000-0000-0000-000000000000?api_key=00000000-0000-0000-0000-000000000000
```

```php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://emailoctopus.com/api/1.6/campaigns/00000000-0000-0000-0000-000000000000?api_key=00000000-0000-0000-0000-000000000000');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close($ch);
```

```python
import requests
params = (
    ('api_key', '00000000-0000-0000-0000-000000000000'),
)
response = requests.get('https://emailoctopus.com/api/1.6/campaigns/00000000-0000-0000-0000-000000000000', params=params)
```

```javascript
var https = require('https');
var options = {
    hostname: 'emailoctopus.com',
    port: 443,
    path: '/api/1.6/campaigns/00000000-0000-0000-0000-000000000000?api_key=00000000-0000-0000-0000-000000000000',
    method: 'GET',
};
var req = https.request(options);
req.end();
```

```go
package main
import (
    "io/ioutil"
    "log"
    "net/http"
)
func main() {
    client := &http.Client{}
    req, err := http.NewRequest("GET", "https://emailoctopus.com/api/1.6/campaigns/00000000-0000-0000-0000-000000000000?api_key=00000000-0000-0000-0000-000000000000", nil)
    if err != nil {
        log.Fatal(err)
    }
    resp, err := client.Do(req)
    if err != nil {
        log.Fatal(err)
    }
    bodyText, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        log.Fatal(err)
    }
}
```
